Repository navigation
chore(v0.21): sync audited dev fixes and QA runbook into release candidate - #430
Merged
Merged
Conversation
…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
This was referenced Oct 18, 2026
raiseCatError
added a commit
that referenced
this pull request
Oct 18, 2026
This was referenced Oct 18, 2026
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.
Purpose
Integrate the three release-audit PRs now merged into
dev, preserving the existing v0.21 release-metadata commit./editsecond-save fix for new files under symlinked directoriesllms.txtThis 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 plusverify:releaseon 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.