Real application evidence: file-index refresh contention

Environment: Linux x64 server, Chromium web client, 1280x800, light theme.
Each commit ran from its own checkout, with T3CODE_DEV_SEED=0 and its own fresh database.
Only synthetic repositories and the free replay provider were used.

Reproduction:
1. Use seed.py to create a 50-file git repository. Create an empty mount directory.
2. Start fuse-driver.py with arguments: repository, mount, server-pid-file, fuse-log.
   It uses direct_io and delays each read of slow* by 20 seconds only for the T3 server process,
   resolving FUSE caller thread IDs to their process ID. Git checkpoint processes remain fast.
3. Start T3CODE_DEV_SEED=0 T3CODE_AUTO_BOOTSTRAP_PROJECT_FROM_CWD=0 vp run dev.
   Put its actual server PID in server-pid-file.
4. Add the mount with the app CLI project add. Start a thread with --provider devReplay
   --model showcase --wait. Open and pair the real web client and navigate to that thread.
5. Type @f in the composer to open the path index, then Escape and clear the composer.
   Also call openContentIndex(mount) from open-content-index.js in the paired browser.
   This base commit separates path and content indexes; @f alone does not read file contents.
   Close thread details so environment labels stay out of captures.
6. Record the browser, then run run-probe.py with arguments: base|head, checkout, server-port, thread-id.
   It probes GET /.well-known/t3/environment every 100 ms for 75 seconds, sends a real replay turn
   after 2 seconds, and writes slow3.ts through the mount 4 seconds after sending the turn.
7. Compare latency.jsonl, the FUSE read intervals, and actual server finalization spans.
   The server's main thread must keep answering throughout the refresh, even when indexing waits.

The final comparison repeats the same interaction after preliminary calibration turns.
Before each final run, slow3.ts was removed through the mount. Other synthetic files are identical.
No test assertions or mocked FileFinder implementations are used as evidence.

Privacy: videos hide the conversation area for the first 12 seconds because replay tool activity
prints an internal workspace path. The sidebar status remains visible. No timing is sped up.
The transcript retains selected real spans and removes stack traces/attributes containing paths.
AI-assisted; verified with the tests and tools listed above.
