Skip to content

Track performance audit fixes #9661

Description

@t3dotgg

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.
  • S14. Single-thread resume decodes unrelated threads' events.
  • S15. Native content grep is synchronous on Node and has a 250 ms search budget.
  • S16. An idle terminal prompt keeps one-second process-table polling active.
  • S17. OpenCode native logs write repeated growing tool payloads.
  • S18. Slow provider preparation and checkpoints can delay unrelated worker items.
  • W02. Compiled streaming Markdown remounts content and repeats code highlighting.
  • W03. Dense terminal snapshots make tens of thousands of WASM calls.
  • W04. Draft persistence serializes all draft data before its debounce.
  • W05. The first chat starts a shared 2 to 6 worker diff pool before any diff request.
  • W06. Up to ten hidden terminal threads still parse output and build snapshots.
  • W07. Composer gradients and work-row shimmers keep generating frames.
  • W08. A text delta remerges and sorts loaded timeline history before virtualization.
  • W09. Dormant preview guests have no age or memory budget.
  • W10. PiP captures and JPEG-encodes full-size pages before detecting an unchanged frame.
  • W11. Recording retains every chunk and creates one full ArrayBuffer at stop.
  • W12. Active and pinned sidebar rows remain mounted. Each filters terminal metadata.
  • W13. Large diffs are parsed and hashed on the main thread, including appearance changes.
  • W14. Recoverable IndexedDB caches have no size or age eviction.
  • W15. The minimap scans all loaded turns and builds unbounded text previews.
  • W16. Optional desktop and panel imports remain in startup dependency paths.
  • M2. Text-dependent chunk keys remount the active native Markdown block.
  • M3. Each text update rebuilds the whole feed and replaces every feed-row object.
  • M4. Cold native diff preparation compares every eligible replacement pair before display.
  • M5. Typing pauses serialize and synchronously write image-bearing draft documents.
  • M6. Keep-alive review atoms retain raw, parsed, and native diff data without a byte budget.
  • M7. Shell-only hooks subscribe to full detail. Hidden-route resource ownership needs narrowing.
  • M8. Native-diff highlighting lacks the long-line guard used by the other highlighter.
  • M9. Collapsed iOS files leave zero-height rows inside draw-loop index ranges.
  • M10. iOS token patches clear unchanged attributed-text caches and repeat offset checks.
  • M11. Android diff drawing scans file headers and repeatedly measures text.
  • M12. Android terminal snapshots allocate whole grids and cursor redraws repaint all text.
  • M13. Streaming code highlights retain obsolete cumulative versions and unfinished jobs.
  • M14. One huge Markdown message or file still mounts all its internal blocks.
  • M15. iOS Markdown builds full line-layout events that the public component does not consume.
  • M16. Default v2 thread lists still compute the unused legacy list.
  • M17. Status motion, timers, and stream haptics lack consistent visible-content gating.
  • M18. Source-file highlighting prepares full token payloads, including offscreen text.
  • M19. Unknown-size Android attachment copies synchronously loop through the file on JS.
  • M20. An inline video can keep playing offscreen on the same focused route.
  • P1. A 268,254-byte desktop screenshot is eager even though mobile CSS hides it.
  • P2. Hero drift, endorsement motion, and a blinking caret run continuously.
  • P3. The home page renders 84 cards for 21 endorsements.
  • P4. A 1,024-pixel icon supplies a 20-pixel footer image.
  • P5. Google Fonts CSS adds a third-party stylesheet to the first-render path.
  • P6. A full-window texture and sticky backdrop blur may add scroll compositing cost.
  • R1. Activity publication rereads and re-decodes expired rows that no longer display.
  • R2. Push jobs are sequential within a batch and can wait behind a slow APNs request.
  • R3. Telemetry refreshes details for all accessible processes before selecting the T3 tree.

Existing related work

  • Terminal streaming: #9027.
  • Terminal history: #9357.
  • Draft persistence: #9049.
  • Thread derivation: #9508.
  • Search lookup indexing: #8969.

Review this work before making a duplicate change. Do not close another contributor's PR without approval.

Current PRs

Item PR State
C1 #9707 merged, remaining work tracked
C2 #9716 merged, remaining work tracked
C3 #9740 merged
C4 #9760 ci and reviews pending
C5 #9691 merged
S1 #9703 merged
S1 #9748 merged
S2 #9662 merged, remaining work tracked
S2 #9758 ci and reviews pending
S4 #9706 merged
S5 #9715 merged
S6 #9684 merged, remaining work tracked
S6 #9738 merged, remaining work tracked
S8 #9669 merged
S9 #9694 merged
S10 #9671 merged, remaining work tracked
S14 #9726 merged
S17 #9689 merged
W02 #9677 merged, remaining work tracked
W03 #9663 merged
W04 #9695 merged
W05 #9692 merged
W06 #9718 merged
W07 #9709 merged
W08 #9725 merged
W12 #9747 merged
M2 #9664 native release hold
M3 #9688 merged
M4 #9693 merged, remaining work tracked
M4 #9699 native release hold
M5 #9710 merged, remaining work tracked
M5 #9713 merged, remaining work tracked
M5 #9727 native release hold
M6 #9749 merged, remaining work tracked
M8 #9673 merged
M16 #9679 merged
M18 #9752 merged, remaining work tracked
P1 #9682 merged
P2 #9697 merged
P3 #9697 merged
P4 #9682 merged
P5 #9701 merged
R1 #9708 merged, remaining work tracked
R2 #9734 merged, remaining work tracked

37 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, W02, 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, and S6 unused tool-part cache removal are merged. C4 visible-row image signing and S2 provider command metadata reads are in review. S3 owned checkpoint indexes are under measurement and correctness review. M7 shell-only selection hooks are in progress.

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions