# Evidence repair — final source, issue 24041

PR [#24051](https://github.com/pingdotgg/t3code/pull/24051), issue [#24041](https://github.com/pingdotgg/t3code/issues/24041). This pass ran on 2026-10-23 approximately 17:44–17:57 UTC. It repairs web evidence only; it is not a new full suite or code review.

## Exact provenance and environment

All new captures ran from clean HEAD [9c7f68c](https://github.com/pingdotgg/t3code/commit/9c7f68c2a440c58c8e1c35b33aa004c8a61069b2), full SHA `9c7f68c2a440c58c8e1c35b33aa004c8a61069b2`, in `/home/ubuntu/wt/issue-24041`. Requested comparison base is [66ee628](https://github.com/pingdotgg/t3code/commit/66ee628e0875b2b735b199f42e6151e347833637), full SHA `66ee628e0875b2b735b199f42e6151e347833637`. No checkout, commit, source edit, fixture edit, git mutation, push, PR comment, or provider execution occurred. The committed synthetic fixture was retained and run unchanged.

Linux x86_64, app-owned collaborative Chromium web preview, 1280×800 CSS viewport, light theme. Encoded recording raster differs from CSS viewport (decoded endpoint is 2000×1250); do not infer CSS viewport from video raster. Isolated home `/home/ubuntu/wt/issue-24041/.t3/evidence-repair`, server15703/web7663, local direct connection. Started with `--no-seed`; no live-state snapshot. Initialized migrations, stopped server, ran committed `apps/server/scripts/seed-auto-settle-evidence.ts` against the isolated DB (exit0), restarted. Old thread is two days old, fresh thread is current; both created through EventSink, with null settlement state and no provider run. No direct projection edits or live database writes.

Only test state and `/tmp/issue-24041-repair/` artifacts changed. Browser instrumentation observes actual WebSocket sends/settingsUpdated notifications, never changes payloads or responses. Checkout caption identifies the route-selected path. The last core take adds a 500ms UTC/actual-DOM clock overlay to force fresh recording frames; it is capture instrumentation, not product UI or a performance benchmark. No settings component callbacks were mocked. Settings-file observations are read-only and contain only synthetic data.

The three affected product files (`AutoSettleDaysInput.tsx`, `SettingsPanels.tsx`, `useScopedSettings.ts`) have identical blob IDs at final HEAD and the earlier fixture-consolidation commit [6885669](https://github.com/pingdotgg/t3code/commit/68856692606045eaa8489cd5e35e0daf58c121a5). The seed script differs; fixture JSON is identical. This is not a claim that the whole repository is identical: intervening main changes exist. Relative to the requested current base, the PR changes seven files: fixture JSON and seed script; input and its browser test; SettingsPanels; useScopedSettings; the neighboring source-control browser test mock. No server runtime/provider/wire delta is introduced by this PR. Blob provenance is attached below; null means absent at that revision.

## Coverage repaired

| Matrix row | Result and evidence boundary |
|---|---|
| 1 web | Final-source continuous core recording plus exact sweep/focus/RPC/persistence observations. Saved14 → actual End+Backspace → focused1 survives confirmed periodic sweep → type30 → ordinary Enter saves30 once. The unannotated recording retains a stale focused30 endpoint; its blur is established separately by timestamped DOM focus BODY and endpoint screenshot. The clock-overlay take also decodes to an unfocused30 endpoint. No macOS Electron claim. |
| 2 | Visible Escape→Tab and empty→Tab rollback; unchanged Enter zero mutations; valid Enter45 exactly one successful settings mutation. Counts use real outgoing requests and successful server RPC spans, with actual settingsUpdated notifications and read-only persisted values. See precise windows below. |
| 6 | Actual checkout A override/save/clear and sibling B isolation, with route-scoped UI, real patches, settingsUpdated events and persisted override maps. Both are registered checkouts of the same logical repository in one isolated environment. |
| 9 | macOS Electron/native IME/composition explicitly unverified on Linux, accepted limitation. Earlier ArrowUp/Down evidence preserved, not rerun. |
| Other rows | Existing evidence/limitations retained with original provenance. No surrounding gate sweep, provider/mobile execution, new relay/tunnel claim, or full test suite. |

## Core chronology (UTC)

Primary unannotated continuous take: recording start17:50:23.926; saved14 observed17:50:23.214. Actual End+Backspace produces focused1 by17:50:33.774, still focused1 at17:51:00.680 and17:51:29.919. Periodic `ThreadSettlementServiceV2.sweep` span `023bafda777de97f` runs17:51:25.473810–17:51:25.478918, exits Success. At17:51:29.861 saved14, old/fresh both unsettled. Ordinary Enter submits30 at17:51:33.342; DOM17:51:33.479 input30 and focus BODY. Persisted17:51:33.676 saved30;17:51:39.499 saved30 and both unsettled. One corresponding successful server update RPC. Recording stop17:51:39.635, encoded70.000533s; do not map encoded time to UTC by assuming wall duration equals encoded duration.

Supplemental clock take: start17:54:18.350, focused1 observed17:54:25.494, still focused1 at17:54:30.745; saved14/both unsettled at17:55:11.073. Enter submits30 at17:55:11.180; DOM17:55:11.317 input30/focus BODY, persisted17:55:11.555 saved30. Decoded last frame explicitly reads UTC17:55:11.408 input30/focus BODY and shows no focused ring. Stop17:55:12.103, encoded53.881367s. Use the primary take's earlier focused observation for the unambiguous across-sweep interval; the supplemental take's first focused observation nearly coincides with its periodic sweep start. Neither video alone establishes settlement/persistence; the traces and read-only observations do.

## Cancellation and mutation counts (UTC)

Saved30 at start. Draft45 at17:46:38.334 sends no request. Escape17:46:41.079 restores30 while retaining focus; Tab17:46:45.121 moves focus to a button and keeps30. Empty focused draft17:46:45.832; Tab17:46:50.228 restores30. Unchanged Enter17:46:50.767 sends none. Valid45 Enter request17:46:55.630; server span `216cb795ba1cc7f6`17:46:55.633461 exits Success; persisted45 at17:46:55.782. DOM17:46:55.907 value45/focus BODY. Final valid endpoint is primarily trace/DOM/persistence proof, not inferred from a stale recording frame.

| Window | Successful server update RPCs | Persisted result |
|---|---:|---|
|17:46:38–17:46:45.300 Escape→Tab|0|30|
|17:46:45.300–17:46:50.400 empty→Tab|0|30|
|17:46:50.400–17:46:51 unchanged Enter|0|30|
|17:46:55–17:46:57 valid Enter45|1|45|

“Zero/once write” here means accepted settings mutations, not OS write syscalls. No filesystem syscall counter was installed. Two settingsUpdated notifications were received for some successful saves; notification count is not write count. Successful server RPC spans and outgoing request IDs are counted once. Early immediate trace observations can miss buffered spans; the attached final trace extraction after shutdown supplies the completed span for the valid45 mutation.

## Checkout chronology (UTC)

Fixture registration used real `projects.mutate` project.create RPCs17:47:24.114/.153, then normal repository enrichment grouped both under `git.cafe/pingdotgg/t3code`. This only registers existing directories in isolated state; it does not create/change either Git checkout. A is `/home/ubuntu/wt/issue-24041`, projectId `b81b577a-9a3c-4b22-89f0-6f7011e285ed`; B is `/home/ubuntu/t3code`, projectId `776e74c9-51a0-4575-ace3-c864a3a53921`. The latter's product source was not run: its directory is a destination record; the browser/server under test always run final-head source from A. Selection used the existing settings route's project/machine/checkout query parameters; no claim that a separate checkout picker was exercised.

Environment45. A saves30 at17:49:12.151; persisted map has only A30. B visibly inherits45 at17:49:22.303. B saves20 at17:49:27.130; persisted A30/B20/environment45. Revisit A17:49:30.651 still30. UI reset sends only A:null at17:49:39.050; persisted map removes A, retains B20, environment45; DOM A45 at17:49:39.449. Revisit B17:49:43.712 still20. The fast original clip does not hold every transition; separate endpoint stills and RPC/persistence observations establish those states.

Supplement after core changed environment to30: A40 save17:52:21.120, held visibly; UI reset17:52:36.384 clears only A, shows inherited30; B remains20 at17:52:56.088. Supplemental clip holds A40→clear30 longer. Do not mislabel this supplemental baseline as45. Final isolated settings: environment30, A no override, B20. Both seeded settlement threads remain unsettled.

## Recordings and traces

[final-core-continuous.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/20c964878c480145/final-core-continuous.mp4)

[final-core-rpc.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/400a6b3fcda954b6/final-core-rpc.json)

[core2-endpoint.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8d41814428fdb62a/core2-endpoint.png)

[final-core-clock.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2f6c5e8ebc716a4c/final-core-clock.mp4)

[final-core-clock-rpc.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dee1523967fc0512/final-core-clock-rpc.json)

[final-core-endpoint.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eb13969937beb5ae/final-core-endpoint.png)

[final-cancellation.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/49abb52a58889fe4/final-cancellation.mp4)

[cancellation-rpc.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/14d5af2f3c23a22f/cancellation-rpc.json)

[write-counts.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8902851affb545cf/write-counts.json)

[rpc-sweep-spans.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2a7d5c75dca215e5/rpc-sweep-spans.json)

[observations.jsonl](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c020aed1d216ef22/observations.jsonl)

[final-checkout.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7cbf680eeebbe25a/final-checkout.mp4)

[checkout-rpc.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f7a1d1d6eb42b1bc/checkout-rpc.json)

[checkout-persist.jsonl](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a2409fba411a8bbc/checkout-persist.jsonl)

[checkout-clear-supplement.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c21081fb0e8764f/checkout-clear-supplement.mp4)

[checkout-supplement-rpc.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6cd64bbf381083bd/checkout-supplement-rpc.json)

[supplement-B-observation.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0a3713caf3467ec8/supplement-B-observation.json)

[source-provenance.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/15c3d92de091123b/source-provenance.json)

[metadata.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ef532a264087c7c/metadata.json)

[recorder-results.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3021f5c122ceddd6/recorder-results.json)

[artifact-hashes.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d841d028c58d0fd5/artifact-hashes.json)

Earlier independent audit reproduction (earlier source/committed-fixture provenance, not final-head recapture): [reproduction.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9db8e67982ca12f9/reproduction.mp4)

After clearing A: ![Checkout A after clear inherits environment45](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f50856684b1d7a72/checkout-cleared45.png)

Sibling remains20: ![Sibling checkout B retains its20 override](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f370298c95f8e88e/sibling20.png)

## FRICTION — raw behavior and limitations

- First preview_status returned available:false; preview_open succeeded. No browser fallback.
- Initial navigation was followed by the deliberate server stop needed for seeding. The page reported `Failed to fetch dynamically imported module: http://localhost:7663/src/main.tsx` and `net::ERR_CONNECTION_REFUSED`. This was setup timing, not a product result.
- `preview_click` with locator `role=button[name="Continue",exact=true]` returned `Preview automation click received an invalid locator (39 characters).` Corrected to the snapshot aria-ref. Pairing completed with a fresh isolated token; private pairing logs remain local.
- Four core recording starts occurred, more than desirable for this evidence repair. First take moved too quickly through endpoints. Second and third decoded last frame retained focused30 although DOM focus was BODY and the separate screenshot showed unfocused30. Third take held the endpoint >20s and hovered the heading, yet the encoded duration was21.897633s for ~45s wall time and still ended focused30. Second encoded70.000533s for ~75.7s wall time. No tool error was returned by recording_stop. These are observed recorder behaviors, not a diagnosis. No clips were stitched, padded, retimed, or presented as a single new continuous recording. The fourth, already in progress when the user asked to stop equivalent captures, used a disclosed clock overlay and ended with a freshly decoded unfocused30 frame. No further captures followed that instruction.
- Checkout route transitions show real loading/splash frames. Original clip's brief A-clear transition is not enough alone; separate stills/traces plus the supplemental held clear transition supply it.
- The optional matched before/after cancellation pair was not captured. Historical before artifacts retain their older base attribution; no fresh browser result at requested base66ee628 is claimed.
- macOS Electron/native IME/composition remain explicitly unverified, as authorized. No product defect found in this scoped pass. Existing gate/transport limitations remain unchanged.

## Cleanup and handoff

Owned initial server session5566 stopped for seed; final session42451 stopped after capture. Seed session51985 completed exit0. No pattern kills. Ports15703/7663 verified not listening after shutdown. Own preview tab closed. HEAD unchanged and git status clean after verification. No PR watch, push, comment, or public forge write. Public ghdrop artifact uploads only were performed as expressly requested.

Only own `/tmp` cleanup root: `/tmp/issue-24041-repair/` (all scripts, sanitized evidence, decoded inspections, upload manifests, and private setup logs beneath it). Keep this directory for fresh proof review; `server-private.log`, `server2-private.log`, and `pair-private.txt` must remain private. Isolated state retained at `/home/ubuntu/wt/issue-24041/.t3/evidence-repair/`; DB/secrets/logs there are local-only. App-owned recording/screenshot return paths are listed in local `recorder-results.json`; do not delete unrelated live app attachments. No prior agent artifacts were changed or removed.

All 42 original artifact URLs follow verbatim. They retain the earlier report/audit provenance and limitations; preserving them does not recertify them at current base/head. Original matrix: [matrix](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c15314d3d45cd969/matrix.md).

## Original42 artifact URLs (preserved)

[baseCore.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d5bb03433056ae22/baseCore.mp4)
[branches.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0c200bae303faf49/branches.mp4)
[failure.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/afd9d2fc8a57be4e/failure.mp4)
[staleFailure.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/13ef57035ac811fa/staleFailure.mp4)
[externalFailure.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f1e6183222d2e3de/externalFailure.mp4)
[externalDraftSuccess.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b953e9b2434b0d04/externalDraftSuccess.mp4)
[partialSuccess.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0c0a8519d0f9aa66/partialSuccess.mp4)
[projectScope.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a76d1475793ebb2f/projectScope.mp4)
[gates.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4c4a8d715c07582c/gates.mp4)
[boundaries.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b27159764bc082ab/boundaries.mp4)
[adjacentDirectory.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4327baa314487f97/adjacentDirectory.mp4)
[adjacentWriting.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5d1d7c7b027c7f63/adjacentWriting.mp4)
[readonly.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/969a26671c475d1c/readonly.mp4)
![mixedScope.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/397ce7b7bd4b49a5/mixedScope.png)
[headCore.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e5de5f4403e8db68/headCore.mp4)
![base1440dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5fd34e627d009226/base1440dark.png)
![base1440light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/39f37725f2ec1024/base1440light.png)
![base390dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2bc26f2e677668a0/base390dark.png)
![base390light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fbe821c0f64c2f40/base390light.png)
![base800light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b843ead145a5f433/base800light.png)
![head1440dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/569307f9defdad6a/head1440dark.png)
![head1440light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/235851e936443212/head1440light.png)
![head390dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d3210450d4a88ebc/head390dark.png)
![head390light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/141b7e3322ccdbcf/head390light.png)
![head800light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/22e6ad1849e87648/head800light.png)
![1440dark-diff0-amplified8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/29ccc51c2624bd24/1440dark-diff0-amplified8.png)
![1440light-diff0-amplified8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ff5b9c52745cb092/1440light-diff0-amplified8.png)
![390dark-diff0-amplified8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7a6a189c64d5cc0f/390dark-diff0-amplified8.png)
![390light-diff0-amplified8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7f1e4125c0f68114/390light-diff0-amplified8.png)
![800light-diff0-amplified8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9040ed745f8a4826/800light-diff0-amplified8.png)
![1440dark-threshold10.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/90cb2dc993f4041c/1440dark-threshold10.png)
![1440dark-threshold32.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/83154efc8b1752c3/1440dark-threshold32.png)
![1440light-threshold10.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e48848ae187b336b/1440light-threshold10.png)
![1440light-threshold32.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c43a1a367c63e9b8/1440light-threshold32.png)
![390dark-threshold10.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0b60d80b89675908/390dark-threshold10.png)
![390dark-threshold32.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9139fddb36268825/390dark-threshold32.png)
![390light-threshold10.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/63b76b937314561a/390light-threshold10.png)
![390light-threshold32.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f7c4e93d5ef638f6/390light-threshold32.png)
![800light-threshold10.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a2fe742b9bb007f0/800light-threshold10.png)
![800light-threshold32.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/61c1b1374ec48299/800light-threshold32.png)
[diff-stats.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/107a1ebb13b64ba2/diff-stats.json)
[trace-excerpt.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/958f6effc81bd55c/trace-excerpt.json)
