# Rollback index-lock verification
PR: https://github.com/pingdotgg/t3code/pull/11340
Verified head: ba9232271f0535daa38784e030cdc6db153781fe
Base main: 5307c233b1f0ae72b8894dd39d94019aaf9e7cb8
Date: 2026-10-19, Linux x86_64, Node 24, Codex harness.

Before/after behavior:
- Temporarily restoring the three production files from base made two focused regressions fail with assertion mismatches: real Git restore returned "Process exited with a non-zero status." and final rollback dispatch returned the generic rollback message.
- With head restored, all 77 focused cases passed. Added cases reduced from 9 to 5 (81 -> 77 total cases).
- Scoped lint and server-only typecheck pass.

Live app, primary agent:
- Started isolated development server using this worktree's ignored .t3 state.
- Read-only import of existing data failed because the source migration history belonged to a different build; used new disposable state and a disposable Git repository instead.
- Added that project in the web client and started an isolated worktree thread.
- Ran two short real Codex turns that only replied with fixed fixture text.
- Edited fixture.txt to "edited\n" and created this test's index.lock containing "held-test-lock\n".
- Selected first message -> Edit from here -> Revert files too.
- Actual web DOM contained: "Git's index is locked. Wait for other Git operations to finish, then try again."
- Verified fixture.txt still contained "edited\n" and index.lock still contained "held-test-lock\n".
- Removed only the test-owned lock and retried Edit from here -> Revert files too.
- Actual web DOM returned to the empty conversation with the first prompt in composer and no lock error. fixture.txt again contained "baseline\n".

Screenshot limitation:
The built-in Chromium screenshot renders controls but no text on this Linux VM (text has zero-size glyph boxes). The screenshot was inspected and rejected as unreadable evidence. DOM inspection and real filesystem observations above are the live proof. The author's earlier screenshots in the PR body remain illustrative; production code is unchanged by this test-only takeover.

Independent full-diff review:
- Codex GPT-6 Sol: no findings.
- Claude Opus 5.5: no blocking findings. Existing provider-before-files rollback ordering is unchanged.
- One complete review round, no fixes needed.

Not exercised natively: Windows, macOS, Electron, iOS, Android. Windows Git diagnostics are unit-covered; mobile has no rollback UI.

Tests: GPT-6 Astra / Codex. Implementation: GPT-6.1 Sol / Codex. Reviews: Claude Opus 5.5 / Claude Code and GPT-6 Sol / Codex.
