You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Track the performance work from the 2026-09-04 audit. Each implementation PR has one concern, focused tests, and a review before merge.
The audit has measured findings and profiling targets. A target is complete only after a verified improvement, or a written decision that the change is not justified. Browser and device use is excluded at Theo's request.
Work
C1. Terminal output becomes full-buffer replay after 512 KiB.
C2. One shell change rebuilds environment-wide indexes and atom dependencies.
C3. Five-minute thread caches retain live subscriptions, not just values.
C4. Loaded image attachments each start an uncached signing RPC before row visibility.
C5. One relay token refresh blocks cache hits for other scopes.
S1. Terminal history repeatedly splits old output and has no byte cap.
S2. Session updates and command preparation read full conversation bodies.
S3. Fresh checkpoint indexes discard Git's clean-file stat cache.
S4. Every buffered assistant text event still causes three SQL reads.
S5. Slow-client stream queues have no retained-byte bound.
S6. OpenCode keeps unused versions of growing tool output.
S7. Chat search scans message bodies before applying its result limit.
S8. Self-hosted hashed web assets lack cache validators and immutable caching.
S9. Automatic checkpoint summaries build full patches just to count lines.
S10. Nine cursor writes run for every event, including inactive projectors.
S11. Each client repeats the same shell projection database reads.
S12. The light startup command model fills with message and activity bodies during uptime.
S13. Thread pages repeat all plans and checkpoint summary data.
40 audit PRs are merged. Browser and device verification is excluded at Theo's request. Normal merge-triggered workflows are authorized. No release versions or manual releases are part of this work.
C1, C2, S2, S6, S10, M4, M5, M6, M18, R1, and R2 retain separate follow-up work. The implementation state records remaining reactor reads, live session-map retention, narrower row writes, active Markdown parsing, raw review retention, file highlighting, and native visible-word processing.
M2 and the native M4 stage stay held for a compatible native release. M5 guards and readers are merged. Its file-backed writers stay held until both platforms have new native runtime fingerprints embedding these readers and guards. Rebuilding with the old fingerprint does not exclude old OTA JavaScript. Do not change fingerprint rules or labels to remove these holds.
C3 now closes unused live detail streams and keeps completed state/cursor snapshots for five idle minutes. S1 history byte bounds, S14 thread-scoped replay, W08 timeline reuse, W12 terminal-metadata indexing, M6 derived-review caching, M18 unused highlighter startup removal, R2 HTTP deadlines, S6 unused tool-part cache removal, C4 visible-row image signing, and S2 provider command metadata reads are merged. W15 minimap unbounded previews landed in #11181 (superseding #9771). M7 shell-only selection hooks, S12 body-free command facts, and R2 per-device batch ordering have local changes under verification. R3 Linux process-detail reads are merged. Other platforms keep their current telemetry refresh path.
S3 checkpoint index reuse is deferred. Real Git tests found that a reused index can miss same-size file edits with restored modification times under default Git settings. The original production checkpoint path captures the edit. Root and the server reviewer reproduced the difference without changing user staging. An attribute-policy race can also keep stale text conversions. No S3 production change or PR was made.
C1 keeps the current wire format and a compatible mobile JS adapter. Native terminal streaming remains separate. Server history now retains at most 5,000 lines and 8 MiB of UTF-8 text. That is not an 8 MiB limit on a serialized JSON frame. M6 retains at most eight parsed sections and 4,194,304 source characters, not an exact heap-byte limit. M18 removes unused startup work but does not complete visible-range file highlighting.
C1, W04, W06, and M5 preserve Wout Stiens's contribution and squash co-author credit. W08 preserves extoci's contribution. S1 continues the focused terminal-history contribution with its original author. The source PRs remain unchanged.
I’m seeing this consistently on a very large Git monorepo.
Environment
T3 Code desktop 0.0.40
macOS
Git 2.53.0
Approximately 574,000 tracked files
Repository uses Git worktrees
Error
VCS process timed out in GitVcsDriver.checkpoints.captureCheckpoint: git (<local-worktree>) after 30000ms
Diagnostics
The working tree is clean.
git status --short completes in under one second.
I found 33 failed GitVcsDriver.checkpoints.captureCheckpoint operations across the retained T3 trace logs.
The failure occurs from ensurePreTurnBaselineFromTurnStart.
In a representative trace:
Repository detection and other Git commands completed quickly.
git read-tree HEAD completed in approximately 2.2 seconds.
The following Git process reached the 30-second timeout.
Total checkpoint capture time was approximately 32.3 seconds.
Based on the current checkpoint implementation, the timed-out command is the repository-wide git add -A operating on a newly created temporary index.
No abandoned t3-checkpoint-index-* files were present after the failures.
This appears consistent with the performance issue described in this ticket: fresh checkpoint indexes discard the normal index’s clean-file stat cache, forcing Git to inspect a large portion of the working tree. Normal Git operations remain fast because they can reuse the existing index metadata.
Impact
Agent turns can still proceed, but they incur an approximately 30-second delay and the associated baseline checkpoint/rewind functionality is unavailable.
Starting the session from a narrower subdirectory does not appear to help because the checkpoint command uses git add -A without a limiting pathspec.
A project-level checkpoint opt-out, a configurable checkpoint timeout, or a checkpoint strategy designed for repositories with hundreds of thousands of files would make T3 usable without this recurring warning and delay.
Track the performance work from the 2026-09-04 audit. Each implementation PR has one concern, focused tests, and a review before merge.
The audit has measured findings and profiling targets. A target is complete only after a verified improvement, or a written decision that the change is not justified. Browser and device use is excluded at Theo's request.
Work
Existing related work
Review this work before making a duplicate change. Do not close another contributor's PR without approval.
Current PRs
40 audit PRs are merged. Browser and device verification is excluded at Theo's request. Normal merge-triggered workflows are authorized. No release versions or manual releases are part of this work.
C1, C2, S2, S6, S10, M4, M5, M6, M18, R1, and R2 retain separate follow-up work. The implementation state records remaining reactor reads, live session-map retention, narrower row writes, active Markdown parsing, raw review retention, file highlighting, and native visible-word processing.
M2 and the native M4 stage stay held for a compatible native release. M5 guards and readers are merged. Its file-backed writers stay held until both platforms have new native runtime fingerprints embedding these readers and guards. Rebuilding with the old fingerprint does not exclude old OTA JavaScript. Do not change fingerprint rules or labels to remove these holds.
C3 now closes unused live detail streams and keeps completed state/cursor snapshots for five idle minutes. S1 history byte bounds, S14 thread-scoped replay, W08 timeline reuse, W12 terminal-metadata indexing, M6 derived-review caching, M18 unused highlighter startup removal, R2 HTTP deadlines, S6 unused tool-part cache removal, C4 visible-row image signing, and S2 provider command metadata reads are merged. W15 minimap unbounded previews landed in #11181 (superseding #9771). M7 shell-only selection hooks, S12 body-free command facts, and R2 per-device batch ordering have local changes under verification. R3 Linux process-detail reads are merged. Other platforms keep their current telemetry refresh path.
S3 checkpoint index reuse is deferred. Real Git tests found that a reused index can miss same-size file edits with restored modification times under default Git settings. The original production checkpoint path captures the edit. Root and the server reviewer reproduced the difference without changing user staging. An attribute-policy race can also keep stale text conversions. No S3 production change or PR was made.
C1 keeps the current wire format and a compatible mobile JS adapter. Native terminal streaming remains separate. Server history now retains at most 5,000 lines and 8 MiB of UTF-8 text. That is not an 8 MiB limit on a serialized JSON frame. M6 retains at most eight parsed sections and 4,194,304 source characters, not an exact heap-byte limit. M18 removes unused startup work but does not complete visible-range file highlighting.
C1, W04, W06, and M5 preserve Wout Stiens's contribution and squash co-author credit. W08 preserves extoci's contribution. S1 continues the focused terminal-history contribution with its original author. The source PRs remain unchanged.
Created with GPT-6 Astra (preview) in Codex.