Skip to content

chore(v0.21): sync audited dev fixes and QA runbook into release candidate - #430

Merged
raiseCatError merged 8 commits into
release/v0.21.0from
dev
Oct 18, 2026
Merged

raiseCatError merged 8 commits into
release/v0.21.0from
dev

Conversation

@raiseCatError

Copy link
Copy Markdown
Owner

Purpose

Integrate the three release-audit PRs now merged into dev, preserving the existing v0.21 release-metadata commit.

This is an integration-only merge into the release candidate branch, not into master. Do not tag, publish, or deploy from this PR. Physical Ghostty/Terminal.app QA and a clean CI dispatch plus verify:release on the exact final release candidate head are still required.

Expected changed files (against the current release branch): src/viewer/fileEdit.ts, tests/textEditor.test.ts, tests/inputOwnershipLive.test.ts, docs/development/v021-ledger.md, docs/development/v021-release-runbook.md, docs/testing/v021-physical-qa.md, llms.txt, scripts/qa/v021-fixtures.sh. Regular merge commit only.

raiseCatError and others added 8 commits October 18, 2026 20:51
…onflict

A path that did not exist yet kept its unresolved path as the file's real
path. After the first save, every later save compares realpath() of the path
as given with that real path, so in a folder reached through a symlink
(macOS /tmp and /var, or any linked project folder) the second save reported
"was replaced on disk since you opened it" and offered Overwrite or Reload.

The folder is now resolved when the file is opened, so the real path is the
one the file has once it exists. A file replaced after the first save is
still a conflict; the regression covers both, and fails on the old code.
…ompletes

The waiting-read test typed its follow-up command as soon as the answer's
output was on screen, and its "nothing was queued" check ran before that
follow-up had run. On a busy host the shell's prompt for the answered
command can arrive after the program's output; an Enter in that window
queues, as designed, so the check failed on the test's own follow-up
(seen on PR CI, Ubuntu, and locally under load). A diagnostic run recorded
the queued entry as `echo BACK-…` with queued: true and the queue empty
once it ran.

The test now waits for the answered command's journal record (zsh, Bash)
and for the shell to be back at its prompt (every shell), then waits for the
follow-up to complete before checking that the answer never ran as a
command and nothing is left queued. An answer that is itself queued still
fails the test, at the wait for the program's output (#426).
…nd runbook

The ledger records the merged state (#411–#424 on dev at 433af8f, each
merge commit), CI on that exact commit, the local gates, benchmarks, the
code review's findings (#425, #426, #427), the issue and PR disposition
(#403 and #394 closed) and the remaining release gates.

The physical QA checklist gains 3.9 (#425) and a walkthrough: three
sittings over the twelve passes, with what is unavailable on the QA Mac
and the coverage that exists instead. scripts/qa/v021-fixtures.sh builds
every fixture in one new folder, with a launcher that gives the QA build
its own configuration and session service.

The runbook follows the v0.20 release: release branch, merge into master,
tag on the merge commit, GitHub release, a manual tap PR, website sync and
the approved manual publish, then the post-release smoke and rollback.
The v0.20.0 release updated the other release pointers (README, ROADMAP,
AGENTS, SECURITY, CONTRIBUTING) but not this one.
Input ownership test: type the follow-up after the answered command completes
/edit: a new file in a symlinked folder saves again without a false conflict
v0.21 release audit: integrated state, verification, QA walkthrough and runbook
@raiseCatError
raiseCatError merged commit 86bb3a6 into release/v0.21.0 Oct 18, 2026
25 checks passed
raiseCatError added a commit that referenced this pull request Oct 18, 2026
#430 has merged dev into release/v0.21.0. A fix v0.21's physical QA needs
would reach the release the same way, so v0.22 work stays out of dev until
the release ships.

Refs #431
raiseCatError added a commit that referenced this pull request Oct 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant