Skip to content

test: add release-validation coverage for post-v0.8.7 merged PRs#952

Merged
anandgupta42 merged 1 commit into
mainfrom
test/release-validation-coverage
Jun 18, 2026
Merged

test: add release-validation coverage for post-v0.8.7 merged PRs#952
anandgupta42 merged 1 commit into
mainfrom
test/release-validation-coverage

Conversation

@anandgupta42

@anandgupta42 anandgupta42 commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

PINEAPPLE

What does this PR do?

Adds regression test coverage for the 8 PRs merged since v0.8.7, authored during pre-release validation. No source files are modified — tests only.

Two independent authoring passes intentionally overlap to maximize edge-case coverage:

  • *-codex.test.ts — codex CLI track
  • the matching release-validation/*.test.ts — Claude multi-agent track

opencode (packages/opencode/test/release-validation/):

dbt-tools (packages/dbt-tools/test/):

4 test.todo markers document real, pre-existing edge cases surfaced during review (do not block release): transcript path-traversal → 500, normalizeMcpConfig dropping updatedAt, install.ps1 missing archive checksum, execDbtCompile stale-manifest fallback.

Type of change

  • Tests

Issue for this PR

Closes #951

How did you verify your code works?

  • bun turbo typecheck — green (all 7 packages, forced/no-cache)
  • cd packages/opencode && bun test test/release-validation/172 pass / 3 todo / 0 fail (12 files)
  • cd packages/dbt-tools && bun test test/dbt-cli-extra-codex.test.ts test/dbt-cli-release-validation.test.ts18 pass / 1 todo / 0 fail
  • cd packages/dbt-tools && bun run test (full suite, regression check) — 82 pass / 0 fail
  • Branding leak audit — 0 leaks; marker guard — clean (no upstream-shared source files touched)

Checklist

  • Tests added/updated
  • Typecheck passes locally
  • No source files modified (tests only)
  • Documentation updated (n/a — tests only)
  • CHANGELOG updated (n/a — not user-facing)

Summary by cubic

Adds regression tests for the 8 PRs merged since v0.8.7 to strengthen release validation; no source files are changed. Addresses #951. Two overlapping tracks (*-codex.test.ts and release-validation/*.test.ts) maximize edge-case coverage.

  • Coverage
    • packages/opencode: non-interactive question tool env matrix and output contract; MCP/datamate config normalize/merge, discovery, and transport selection; session transcript API (query coercion, content negotiation, detail gating, error schema); serve startup upgrade check (scheduling, failure isolation, version compare) and trace-dir logging; provider SSE chunk-timeout default; Windows install.ps1 safety and native win32 upgrade dispatch.
    • packages/dbt-tools: dbt-cli error bubbling (malformed JSON, exit-code redaction, ANSI stripping, no-signal fallback) and result shape/--limit/inline-compile paths.

4 test.todo markers document known, pre-existing gaps and do not block the release.

Written for commit a8a08c6. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Tests
    • Added comprehensive regression test suites covering dbt-cli error handling, SSE chunk timeout behavior, MCP discovery and transport selection, question tool auto-answer functionality, session transcript endpoint generation, Windows installer validation, serve startup upgrade checks, and trace logging initialization.

Adds regression tests for the 8 PRs merged since `v0.8.7`, authored during
pre-release validation. Two independent authoring passes (suffix `-codex.test.ts`
from the codex CLI track, plus `release-validation/*.test.ts` from the Claude
multi-agent track) intentionally overlap to maximize edge-case coverage.

opencode (`packages/opencode/test/release-validation/`):
- `question-937*`            non-interactive question tool: `ALTIMATE_NON_INTERACTIVE`
                             / `ALTIMATE_FORCE_INTERACTIVE` / `ALTIMATE_AUTO_ANSWER`
                             matrix, output-text contract, `run.ts`/`bash.ts` env guards
- `mcp-datamate-893*`        MCP config normalize/merge, enabled-state persistence,
                             recursive `**/mcp.json` discovery, datamate transport selection
- `session-transcript-941*`  transcript REST endpoint: query coercion, content negotiation,
                             tool/thinking detail gating, error schema
- `serve-upgrade-940*`       headless `serve` startup upgrade check: scheduling, failure
                             isolation, version-compare boundaries
- `serve-trace-log-929*`     trace-directory startup logging
- `chunk-timeout-844*`       `DEFAULT_CHUNK_TIMEOUT` SSE watchdog behavior
- `windows-installer-930*`   `install.ps1` static analysis (HTTPS URLs, error handling,
                             PATH safety, idempotency, no secret leakage) + win32 dispatch

dbt-tools (`packages/dbt-tools/test/`):
- `dbt-cli-release-validation.test.ts`  #933 error-bubbling: malformed JSON, exit-code
                                         redaction, ANSI stripping, no-signal fallback
- `dbt-cli-extra-codex.test.ts`         result-shape, `--limit` boundaries, last-error
                                         selection, inline-compile error paths

All new tests pass and are typecheck-clean. 4 `test.todo` markers document real,
pre-existing edge cases surfaced during review (transcript path-traversal -> 500,
`normalizeMcpConfig` dropping `updatedAt`, `install.ps1` missing archive checksum,
`execDbtCompile` stale-manifest fallback). No source files are modified.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 18, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 27ce283a-346b-4ef2-b2d8-6a36dc053564

📥 Commits

Reviewing files that changed from the base of the PR and between 7039545 and a8a08c6.

📒 Files selected for processing (14)
  • packages/dbt-tools/test/dbt-cli-extra-codex.test.ts
  • packages/dbt-tools/test/dbt-cli-release-validation.test.ts
  • packages/opencode/test/release-validation/chunk-timeout-844.test.ts
  • packages/opencode/test/release-validation/mcp-datamate-893-codex.test.ts
  • packages/opencode/test/release-validation/mcp-datamate-893.test.ts
  • packages/opencode/test/release-validation/question-937-codex.test.ts
  • packages/opencode/test/release-validation/question-937.test.ts
  • packages/opencode/test/release-validation/serve-trace-log-929.test.ts
  • packages/opencode/test/release-validation/serve-upgrade-940-codex.test.ts
  • packages/opencode/test/release-validation/serve-upgrade-940.test.ts
  • packages/opencode/test/release-validation/session-transcript-941-codex.test.ts
  • packages/opencode/test/release-validation/session-transcript-941.test.ts
  • packages/opencode/test/release-validation/windows-installer-930-codex.test.ts
  • packages/opencode/test/release-validation/windows-installer-930.test.ts

Disabled knowledge base sources:

  • Jira integration is disabled

You can enable these sources in your CodeRabbit configuration.


📝 Walkthrough

Walkthrough

Adds thirteen new Bun test files as release-validation regression coverage for eight previously merged PRs (#844, #893, #929, #930, #933, #937, #940, #941). All changes are test-only; no source files are modified. Tests span dbt-cli error bubbling, SSE chunk timeouts, MCP/Datamate transport, QuestionTool non-interactive mode, serve startup tracing and upgrade, session transcript endpoint, and Windows PowerShell installer.

Changes

dbt-cli regression tests (PR #933)

Layer / File(s) Summary
dbt-cli extra regression coverage
packages/dbt-tools/test/dbt-cli-extra-codex.test.ts
Mocked execFile environment and temp dir setup; tests JSON/garbage parsing, --limit propagation, ANSI stripping, SQL redaction, configure() wiring, and install.ps1 Bun-standalone assertions.
dbt-cli release-validation error bubbling
packages/dbt-tools/test/dbt-cli-release-validation.test.ts
Focused regression tests for structured error selection, string-typed exit code SQL redaction, bare-failure fallback, ANSI stripping from stderr, and a test.todo for stale-manifest compiled_code bug.

Provider SSE chunk-timeout regression tests (PR #844)

Layer / File(s) Summary
SSE chunk-timeout watchdog, passthrough, and source guards
packages/opencode/test/release-validation/chunk-timeout-844.test.ts
Captures the real options.fetch wrapper from getSDK; asserts 300_000ms default delay, abort-on-chunk-gap, non-SSE/null-body passthrough, source-level guard conditionals, and per-request timeout precedence.

MCP/Datamate IDE-aware transport and config sync regression tests (PR #893)

Layer / File(s) Summary
MCP discovery normalization, Datamate transport selection, sync, and static safety
packages/opencode/test/release-validation/mcp-datamate-893-codex.test.ts
Isolated temp-home helpers; discovery normalization ignoring vendors/node_modules; Datamate transport url preference; altimate-code config sync via updatedAt; source-text redaction and install.ps1 safety assertions.
MCP config schema, JSONC resilience, and security gate
packages/opencode/test/release-validation/mcp-datamate-893.test.ts
Ten gap tests: updatedAt round-trips, strict-schema rejection, JSONC malformation resilience, non-object node safety, nested field preservation, removeMcpFromConfig return contract, findAllConfigPaths ordering, readDatamateTransportFromIde selection, syncDatamateUrlFromVscodeMcp change detection, concurrent-write race documentation, and forced enabled:false for discovered servers.

QuestionTool non-interactive and auto-answer regression tests (PR #937)

Layer / File(s) Summary
QuestionTool output contract, ALTIMATE_* env branching, and source env-plumbing
packages/opencode/test/release-validation/question-937-codex.test.ts
Tests interactive/non-interactive branching, Unanswered formatting, auto-answer first/last/label behavior, safety/leakage prevention, zero-question edge case, and source-text conditionals for ALTIMATE_NON_INTERACTIVE and ALTIMATE_AUTO_ANSWER.
QuestionTool auto-answer, BashTool env isolation, and run.ts guard contracts
packages/opencode/test/release-validation/question-937.test.ts
Strict empty-string non-interactive detection, multiple-question positional mapping, case-insensitive label matching, first keyword precedence, multiple:true answer shape, BashTool child-env stripping, and run.ts attach-guard and stdin null-safety contracts.

Serve startup tracing and upgrade-check regression tests (PRs #929, #940)

Layer / File(s) Summary
TraceConsumer.getTraceDirectory and subscribeTraceConsumer startup logging
packages/opencode/test/release-validation/serve-trace-log-929.test.ts
getTraceDirectory() resolution across FileExporter/HttpExporter/disabled configs, Config.get() rejection fallback with Log.Default.warn, and one-shot startup log assertion for subscribeTraceConsumer.
runStartupUpgradeCheck behavioral tests and serve handler source assertions
packages/opencode/test/release-validation/serve-upgrade-940-codex.test.ts
StartupUpgradeDeps fakes for single-run/error-swallowing/provider-failure tests; scheduleStartupUpgradeCheck delay and unref; source assertions confirming post-listener scheduling, no-bootstrap/dispose, real upgrade delegation, failure boundaries, version validation, and no-shell-exec safety.
Instance-context wrapping, timer semantics, non-Error rejection swallowing, and CWD capture
packages/opencode/test/release-validation/serve-upgrade-940.test.ts
Bus.publish requires Instance context; scheduleStartupUpgradeCheck synchronous return and single-fire semantics; runStartupUpgradeCheck swallows string/object/null rejections; run() scope ordering; runtime CWD capture across multiple calls.

Session transcript endpoint regression tests (PR #941)

Layer / File(s) Summary
Transcript endpoint end-to-end: helpers, query flags, and error paths
packages/opencode/test/release-validation/session-transcript-941-codex.test.ts
inProject helper and message/part builders; happy-path content-type/ordering; toolDetails/thinking/assistantMetadata query flags; synthetic part omission; 404/400 negative paths; OPTIONS preflight; OpenAPI schema assertion.
toolDetails, assistantMetadata, 400 validation, thinking coercion, and message ordering
packages/opencode/test/release-validation/session-transcript-941.test.ts
withoutWatcher helper; addUserMessage/addAssistantMessageWithReasoning/addAssistantMessageWithTool builders; five targeted tests: toolDetails rendering diff, assistantMetadata header format, invalid sessionID 400, thinking=0/FALSE truthy coercion, and separator count/ordering.

Windows PowerShell installer regression tests (PR #930)

Layer / File(s) Summary
install.ps1 static assertions: URL, download, idempotency, PATH, and wiring
packages/opencode/test/release-validation/windows-installer-930-codex.test.ts
HTTPS-only URL construction, filename derivation, version-tag HEAD probing, curl.exe/IWR failure handling, temp-dir extraction with finally cleanup, skip-if-already-installed, locked-executable move-aside, no-secrets, PATH registry (no setx), NoPathUpdate, and installation/index.ts win32 wiring.
Installation.upgrade platform dispatch, HEAD-probe failures, and result-shape consumption
packages/opencode/test/release-validation/windows-installer-930.test.ts
Stubs Process/Telemetry/fetch/platform; asserts win32 PowerShell path vs linux/darwin bash path; HEAD-probe 503 and DOMException failure messaging; UpgradeFailedError telemetry shape; static assertions for baseline selection, already-installed skip, PATH prepend, GITHUB_PATH guard, and extraction finally block.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • AltimateAI/altimate-code#929: The new serve-trace-log-929.test.ts directly covers TraceConsumer.getTraceDirectory() and subscribeTraceConsumer startup logging behavior introduced in this PR.
  • AltimateAI/altimate-code#930: The new windows-installer-930*.test.ts files statically inspect install.ps1 and installation/index.ts for PowerShell download/PATH/upgrade contracts introduced in this PR.
  • AltimateAI/altimate-code#933: The new dbt-cli-*.test.ts files directly validate execDbtShow/execDbtCompileInline error-bubbling, ANSI stripping, and SQL redaction logic implemented in this PR.

Suggested labels

contributor

Suggested reviewers

  • sahrizvi

Poem

🐇 Hop hop, the tests have arrived!
Thirteen suites, each carefully contrived.
From dbt's JSON woes to PowerShell's might,
MCP tokens and transcripts shining bright.
No source was touched, just coverage thrived! 🌟

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch test/release-validation-coverage

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@anandgupta42 anandgupta42 merged commit f8b3454 into main Jun 18, 2026
18 of 19 checks passed
@github-actions

Copy link
Copy Markdown

👋 This PR was automatically closed by our quality checks.

Common reasons:

  • New GitHub account with limited contribution history
  • PR description doesn't meet our guidelines
  • Contribution appears to be AI-generated without meaningful review

If you believe this was a mistake, please open an issue explaining your intended contribution and a maintainer will help you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add release-validation test coverage for post-v0.8.7 merged PRs

1 participant