chore(release): 0.10.0 - #225
Merged
Merged
Conversation
Version bump, changelog heading, and the acceptance record for the release. Also the seven findings from the final acceptance pass, which returned CONDITIONAL: - The release notes declared `doctor --json` still printed text on a load failure. It does not; this same release fixed it. - PRs #223 and #224 had no changelog entries at all — eight user-visible changes, including doctor gaining a check that makes it exit 1 in an unbuilt checkout, and a lock sweep that runs before every job start. - The `usage` empty state and the doctor job-runner check were pinned by no test: removing both left the suite byte-identical at 1258 passed. - pruneDeadWorkspaceLocks deleted an unreadable lock on sight, measured at 25ms against the acquire path's deliberate 1018ms grace, while its docblock, its commit message and its test all asserted the two rules were the same. It now honours the grace. `wx` creation leaves a real empty-file window, and this runs before every job start, so losing that race deletes a live holder's lock and lets two dispatches edit one shared_locked workspace. - Removing the sweep's call from start.ts failed no test. - `--json` was honoured only for the exact token `--json`, and four error shapes bypassed the envelope entirely; `unknown command` printed the help block to stdout, so `frobnicate --json | jq` was fed usage text. All four emit the envelope now and usage moved to stderr, which also means main() throws for a missing prompt rather than returning 1. - The redaction sink inventory omitted result.md and both installOutputRedaction calls; removing the first left that file 20/20 green. Live dispatch on this build: cursor_cli returned pong; codex_cli refused as rate-limited, which costs nothing and counts as a refusal. npm run check: 1269 passed, 8 skipped, exit 0, green in one full run.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Version bump, changelog heading, and
acceptance/0.10.0.md.The final acceptance pass returned CONDITIONAL with two HIGH documentation findings and five smaller ones. All seven are fixed here, and the record marks them BUILDER — fixed after the reviewer went home, unreviewed.
What the pass caught
The release notes were wrong about this release. They declared
doctor --jsonstill printed text on a load failure; the same release fixed it. And PRs #223 and #224 contributed no changelog entries at all — eight user-visible changes missing, includingdoctorgaining a check that makes it exit 1 in an unbuilt checkout where it used to exit 0.Two behaviours were pinned by nothing. The pass deleted the
usageempty state and forced thedoctorjob-runner check to pass, simultaneously, and the suite came back byte-identical at 1258 passed. Both worked; neither was tested.The lock sweep was the "looser second rule" its own comment denied. Measured: the sweep deleted an unreadable lock after 25 ms; the acquire path waits out a deliberate 1018 ms grace for the same file. The docblock, the commit message and the test all claimed the two used the same rule.
wxcreation leaves a real empty-file window and the sweep runs before every job start, so losing that race deletes a live holder's lock and lets two dispatches edit oneshared_lockedworkspace. It honours the grace now.That is the same overclaiming habit four earlier passes caught — this time inside a comment written to deny it.
--jsonwas one spelling and four commands short.--json=truegot JSON on success and plain text on failure. An unknown command,authwith no subcommand, anddispatchwith no prompt bypassed the envelope entirely — and the first printed the help block to stdout, soharness-dispatch frobnicate --json | jqwas fed usage text, the exact pipe the envelope exists to serve. All four emit the envelope now; usage moved to stderr. Consequence worth noting:main()throws for a missing prompt rather than returning 1.The sink inventory was missing three entries —
result.mdand bothinstallOutputRedactioncalls. Removing the first left that file 20/20 green.Verification
npm run check: 1269 passed, 8 skipped, exit 0, green in one full run.cursor_cli→pong.codex_clirefused as rate-limited, which costs nothing and counts as a refusal.Open at ship time
Named in full in
acceptance/0.10.0.md. The substantive ones: MCP JSON-RPC error frames bypass the redaction sinks on the HTTP transport (structural, never demonstrated carrying a credential);stream-subprocesshas no backpressure and kills a healthy child on queue overflow; redaction is value-based, so anapi_keythat is an ordinary word mangles output; and a Windows git-spawn flake at roughly 1 full-suite run in 11.Merging this and pushing the tag publishes 0.10.0 to npm.