Faster desktop startup

One PR per measured major area. Every PR stays open and unmerged. All timing measurements run on boat.dev.

Success

Wout clarified that 25% is an aspiration, not a hard gate. Any real demonstrated improvement can be filed. Report actual gains and uncertainty; retain one PR per major area, graphs and full-stop readiness.

Measure launch to a usable app, with initial data and working navigation and composer, or actionable onboarding. Keep first visible window and server command-ready separate. Verify the combined changes against the original baseline; do not add individual percentage gains.

Measurement

Equivalent packaged builds, isolated settings and caches, fixed sanitized fixtures, at least 20 alternating baseline/candidate launch pairs. Publish raw samples, median, p95 and milestone breakdowns. Separate fresh, returning and recovery profiles and cold compile-cache versus warmed relaunches.

Boat access is verified. Its current VMs run Ubuntu, so graphs will explicitly identify Linux measurements. Cross-platform contract and packaging checks do not prove native macOS or Windows startup timings.

Council discovery

GPT 6.1 Sol, Claude Opus 5.5 and Grok 4.7 inspect startup independently. Source-backed candidates include CLI dispatch loading, prepared bytecode coverage, eager service initialization, returning-profile recovery, Electron initialization and renderer bootstrap. Leads measure before selecting changes. A standalone measurement PR is excluded.

Measured status

Baseline and 40 raw samples: 20 fresh launches and 20 returning launches. Median usable time is 3,193 ms fresh and 2,151 ms returning, on an Ubuntu x64 Boat VM with an unsigned unpacked directory build. These are reference results, not before/after gains.

  1. Desktop scheduling: snapshot/legacy/port work measured 5–12 ms and app-ready to backend start 25–41 ms. No useful safe change established. No PR. Evidence.
  2. Server dispatch: 40 paired launches remained inconclusive. Usability paired median was 7.35% faster, with a 95% interval from 13.43% faster to 0.21% slower. Candidate retained, no PR or further extension. Evidence.
  3. Renderer route-code overlap: rejected after an independent replication. All 160 attempts retained; combined paired median 57 ms / 1.94% faster, still inconclusive. No PR. Final evidence.
  4. Server initialization: 20 fresh and 20 returning launches, plus 10 fresh and 10 returning synthetic active-recovery launches, did not establish a useful optimization. Recovery persistence assertions passed. No PR. Native provider continuation remains unmeasured.
  5. Prepared startup code: final candidate 37aa1e1fedfe imports the emitted server graph during preparation and enables generation on native Linux. Actual source-package comparison now supports a modest benefit. All three council reviewers scored the final source 9/10; final package and dispatcher client proof pass. PR #32987 is filed and ready, with all required checks green and no actionable hosted-review findings.

All timing and profiling is on Boat. Returning cache state is matched between baseline and candidate; a fixture warmed at the original artifact path is not assumed equally warm at a new candidate path. Individual gains will not be added. The final combination must be measured.

Tracking limitation: GitCafe issue creation fails because the GitHub fork has issues disabled. Scoped local tickets and this published plan keep work moving without changing repository settings.

Final bytecode comparison

The final source is 37aa1e1fedfe, compared with updated main ade473018d32. This supersedes the earlier comparison against 6417151c09, which remains historical evidence.

20 alternating original/candidate pairs on one Ubuntu 24.04 x64 Boat VM, 4 vCPU / 8 GB. Unsigned directory package; identical Electron 44.10.1 and embedded Node 24.22.1. Fixed synthetic returning profile with 12 projects and 48 stopped threads. Warm OS pages; cold runtime code cache each launch. Two discarded warmup pairs, then 40 valid measured launches; no rejected or rerun samples. No steady warmed-startup claim.

MilestoneBase median / p95Head median / p95Paired median delta95% paired interval
Visible window617 / 791 ms653 / 852 ms+15 ms−29 to +75 ms
Command ready1,518 / 1,799 ms1,361 / 1,684 ms−141 ms−247 to −83 ms
Usable composer2,496 / 2,829 ms2,352 / 2,845 ms−78 ms−217 to +83 ms

Only command readiness demonstrates improvement. Window and usable-composer results are inconclusive. Negative paired deltas mean faster. The dispatcher independently reproduced the analysis from all 40 unique unprofiled launches.

Final packaged baseline and candidate milestone medians with every paired command-readiness and usability difference and bootstrap interval
Final source-package comparison, measured on boat.dev.

Separate real AppImage diagnostics verified accepted server/runtime bytecode under changing read-only FUSE mounts, unchanged artifact hashes, abandoned-cache reclamation, preservation of live caches and normal-exit cleanup. These are correctness checks, not AppImage speed measurements. Linux generation is limited to x64; native macOS/Windows, Linux arm64, fresh onboarding and steady warmed-cache performance are unproven.

Dispatcher client check passed against the exact final package: projects rendered, an existing stopped thread opened, composer text was entered and cleared with normal keyboard input, and normal quit exited cleanly. Synthetic state only; no provider turns or credentials. All driver attempts are retained, including corrected navigation and empty-editor assertions. No product change was needed.

Full-stop gate

Each PR needs durable before/after graphs in its body, focused behavior proof, changed-file checks, local cubic, satisfied council, bot review resolution and a final proof audit. No auto-merge, merge queue or PR merge.

Ready PR

https://github.com/pingdotgg/t3code/pull/32987: prepares backend bytecode for Linux x64. Cold runtime-cache command readiness is 141 ms earlier by paired median, with a 95% interval of 83–247 ms earlier. The PR embeds the final graph and links raw timings. All eight required checks passed. Macroscope approved; CodeRabbit reported no actionable findings. Final council: 9/10 each. Open, non-draft, mergeable, no auto-merge or merge queue.

Delivery

Progress updates during the work. Final message: every full PR URL with a brief change description and measured result, formatted to paste into Discord.

Full-stop gate passed for PR #32987, head 37aa1e1fedfe. It remains open and unmerged. No 25% overall or cross-platform timing claim. Window and usable-composer timing remain inconclusive. PostPlan uses fallback black colors because the active client theme could not be read.