Repository navigation
Commit exactly the staged changes from the Diff panel - #769
Merged
Merged
Conversation
sak0a
changed the base branch from
main
to
port/answered-questions-in-transcript
October 23, 2026 16:19
sak0a
force-pushed
the
port/answered-questions-in-transcript
branch
from
October 23, 2026 16:20
4436bd4 to
76d67b4
Compare
sak0a
force-pushed
the
fix/staged-only-commit
branch
from
October 23, 2026 16:20
496847e to
3159436
Compare
sak0a
added a commit
that referenced
this pull request
Oct 23, 2026
Rebased for the merge train as one commit on top of #769: this PR's commits, including its review fix where it had one, with conflicts resolved against the PRs merged before it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
sak0a
force-pushed
the
port/answered-questions-in-transcript
branch
from
October 23, 2026 16:58
76d67b4 to
749ed29
Compare
Rebased for the merge train as one commit on top of #772: this PR's commits, including its review fix where it had one, with conflicts resolved against the PRs merged before it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
sak0a
force-pushed
the
fix/staged-only-commit
branch
from
October 23, 2026 16:58
3159436 to
8b8c86d
Compare
sak0a
changed the base branch from
port/answered-questions-in-transcript
to
main
October 23, 2026 16:59
sak0a
added a commit
that referenced
this pull request
Oct 23, 2026
Rebased for the merge train as one commit on top of #769: this PR's commits, including its review fix where it had one, with conflicts resolved against the PRs merged before it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
sak0a
added a commit
that referenced
this pull request
Oct 23, 2026
Rebased for the merge train as one commit on top of #769: this PR's commits, including its review fix where it had one, with conflicts resolved against the PRs merged before it. Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
What Changed
git.runStackedActionacceptsstagedOnly: { expectedRevision }. The schema refuses it together withfilePaths. This path does not reset or re-add anything. It refuses an empty index and unmerged entries, and it runs commit hooks like the regular commit.vcs.readLocalChangesalso returns astagedRevision. It covers the worktree, branch, HEAD and the staged modes and object IDs. It leaves out the unstaged patch, so agent edits to working files do not invalidate it.stagedRevisionbefore it reads the commit-message context, and checks HEAD, branch and staged content again right beforegit commit. Agit add, commit or branch switch made after the review fails with the newGitStagedIndexChangedError, including one made while the message is being generated.commit.stagedOnlyCommit. The button only appears when the node has that flag, because older nodes dropstagedOnlyand would commit every change.Why
Commit and Ship ran
git resetplusgit add -A -- paths, orgit add -A, before committing. That threw away hunks a user had staged one by one in the Staged review. The panel said "Staging does not commit", and the docs told users to commit outside Ryco to keep their staging.Neither reference ships this. T3 Code's staged-only commit is an open PR (pingdotgg/t3code#22298, with pingdotgg/t3code#19703 and pingdotgg/t3code#19941). T3 Code main and Synara both re-stage before they commit. Ryco also binds the commit to the reviewed index, so later staging cannot slip in.
Testing
bun run --cwd packages/contracts test -- src/git.test.ts src/environment.test.ts: 23 passedcd apps/server && RYCO_TEST_MAX_WORKERS=4 bun run test -- src/vcs/GitIndexReview.test.ts: 19 passed. The new submodule-pointer test fails without the fix.cd apps/server && RYCO_TEST_MAX_WORKERS=4 bun run test -- src/git/GitManager.test.ts -t staged-only: 9 passed. The new submodule message-context test fails without the fix.cd apps/server && RYCO_TEST_MAX_WORKERS=4 bun run test -- src/git/GitManager.test.ts src/vcs/GitIndexReview.test.ts src/vcs/GitVcsDriverCore.test.ts src/environment/Layers/ServerEnvironment.test.ts src/agentControl/Mcp/hostedBoundaries.test.ts: 192 passed (before the review fixes)bun run --cwd packages/client-runtime test -- src/state/comparison/localChanges.test.ts: 5 passedbun run --cwd apps/web test:browser -- src/components/DiffPanel.staging.browser.tsx: 3 passed (after the rebase)bun run --cwd apps/web test:browser -- src/components/DiffPanel.browser.tsx src/components/DiffPanel.identity.browser.tsx src/components/DiffLineBlame.browser.tsx: 17 passed, 1 failed. The failure is the "keeps unchanged renderers mounted..." identity test, which is flaky under load and also fails on unmodified main.bun run check: format ok, 0 lint errors, typecheck:fast 12/12 ok (after the rebase)bun run check:changed: exit 0. Format/lint, typecheck (TS7 + Effect), related tests (10/10) and every read-from-disk phase ok (after the rebase)Follow-ups
readComparisononly compares one ref against HEAD.stagedOnly.createLocalChangesController.commitStaged, once mobile has a staged review screen.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.