What's Changed
- fix(usage): Codex compaction and resumed sessions no longer show skipped-usage warnings by @t3dotgg in #22558
- fix(web): thread search shows the same PR badge as the sidebar by @maria-rcks in #22627
- fix(desktop): bump Electron to 44.9.3 to block compromised eMudhra CA keys by @t3dotgg in #22645
- test(web): ChatView's React Compiler check no longer times out on slow CI runners by @t3dotgg in #22649
- fix(web): thread links render as chips, and thread chips show the project icon by @flamboh in #22621
- fix(server): Stop on a delegate always clears it, even when it is stuck by @t3dotgg in #22653
- feat(web): composer stays usable during approvals, and sending declines and redirects by @maria-rcks in #21503
- docs(agents): name the fast commands and stop polling by @t3dotgg in #22711
- fix(desktop): new worktrees install Electron from the local download cache by @t3dotgg in #22712
- test(server): split replay fixtures into per-provider files by @t3dotgg in #22717
- fix(server): delegates finish when their leftover work settles, and Grok commands stop holding runs open by @t3dotgg in #22709
- fix(server): storage cleanup no longer counts pnpm clones as freed space by @t3dotgg in #22713
- build: upgrade Vite+ to 1.3 and cache typecheck by @t3dotgg in #22716
- test: local test runs use package configs and a clean env by @t3dotgg in #22714
- fix(mobile): restore low-latency decoding for simulator streams by @Yash-Singh1 in #22733
- fix(marketing): typecheck cache no longer misses when the shell env changes by @t3dotgg in #22735
- build(setup): leaner installs on Mac and Linux, cross-device store warning, setup-done marker by @t3dotgg in #22718
- build: upgrade pnpm to 12 for 4x faster installs by @t3dotgg in #22738
- refactor(web): the timeline minimap lives in its own file by @juliusmarminge in #22662
- refactor(web): timeline work entry rows and tool icons live in their own files by @juliusmarminge in #22674
- refactor(web): timeline work group and live activity rows live in their own file by @juliusmarminge in #22675
- refactor(web): timeline user message rows and context chips live in their own files by @juliusmarminge in #22676
- refactor(web): timeline assistant and orchestration event rows live in their own files by @juliusmarminge in #22677
- refactor(web): timeline row derivation, position restore and find reader live in hooks by @juliusmarminge in #22682
- refactor(web): the command palette's theme items live in their own file by @juliusmarminge in #22679
- refactor(web): the command palette's thread items come from their own hook by @juliusmarminge in #22687
- refactor(web): the command palette's project items and pure helpers live in their own files by @juliusmarminge in #22699
- refactor(web): the command palette's add-project views are components by @juliusmarminge in #22707
- feat(cli): start, message, and read threads from the terminal with t3 thread by @t3dotgg in #22732
- refactor(web): composer attachment tiles live in their own component by @juliusmarminge in #22689
- refactor(web): resting image previews and queued attachments are their own components by @juliusmarminge in #22719
- refactor(web): composer mode controls and footer actions live in ComposerFooterControls by @juliusmarminge in #22720
- refactor(web): typing no longer re-renders the composer model picker by @juliusmarminge in #22721
- refactor(web): composer suggestion lists are built by useComposerMenuItems by @juliusmarminge in #22722
- refactor(web): the sidebar's thread rows live in their own file by @juliusmarminge in #22696
- refactor(web): sidebar list markers and draft rows live in their own files by @juliusmarminge in #22729
- feat(dev): first dev start seeds real data and warms deps by @t3dotgg in #22744
- refactor(web): the pull requests column lives in its own component by @juliusmarminge in #22671
- refactor(web): the pull request header's crumbs, title editor and base branch live in their own components by @juliusmarminge in #22672
- refactor(web): the pull request header's actions live in their own components by @juliusmarminge in #22702
- refactor(web): the pull request detail loader lives in its own hook by @juliusmarminge in #22703
- refactor(web): the pull request list's rows read the speed-mode modifier themselves by @juliusmarminge in #22704
- refactor(web): the pull requests page's scope and grouping hooks live in their own module by @juliusmarminge in #22705
- refactor(web): the pull requests route only validates its search; the page lives under components by @juliusmarminge in #22706
- perf(web): Shift re-renders only each row's quick-action group by @juliusmarminge in #22726
- refactor(web): the pull request list's grouping helper lives in a logic module by @juliusmarminge in #22727
- refactor(web): chat markdown code blocks live in their own module by @juliusmarminge in #22690
- refactor(web): the Mermaid code block lives in its own component file by @juliusmarminge in #22691
- refactor(web): chat markdown tables and details live in their own components by @juliusmarminge in #22692
- refactor(web): chat markdown links and file chips live in their own modules by @juliusmarminge in #22693
- refactor(web): chat markdown images and videos live in their own module by @juliusmarminge in #22694
- refactor(web): ChatView's module-level helpers live in their own files by @juliusmarminge in #22665
- refactor(web): ChatView's persistent terminal drawers live in their own component by @juliusmarminge in #22680
- refactor(web): ChatView's right panel lives in its own component by @juliusmarminge in #22700
- refactor(web): ChatView's timeline follow and anchoring lives in useTimelineFollow by @juliusmarminge in #22701
- refactor(web): ChatView's machine and server-update banners live in useSystemComposerBanners by @juliusmarminge in #22710
- refactor(web): ChatView's subagent, goal, background-work and branch banners are built in ThreadActivityBanners by @juliusmarminge in #22725
- refactor(web): ChatView's draft machine routing lives in useDraftEnvironmentRouting by @juliusmarminge in #22728
- refactor(web): ChatView's send preparation is pure functions in ChatView.logic by @juliusmarminge in #22734
- refactor(web): the archived threads settings page lives in its own file by @juliusmarminge in #22666
- refactor(web): the typography settings section lives in its own file by @juliusmarminge in #22667
- refactor(web): the appearance settings page lives in its own file by @juliusmarminge in #22668
- refactor(web): the background activity setting and its dialog live in their own file by @juliusmarminge in #22669
- refactor(web): the connections page's pure helpers live in ConnectionsSettings.logic by @juliusmarminge in #22683
- refactor(web): authorized clients and endpoint rows live in their own file by @juliusmarminge in #22684
- refactor(web): saved and T3 Connect environment rows live in their own file by @juliusmarminge in #22685
- perf(server): skip the macOS xcrun git shim by @t3dotgg in #22759
- docs(agents): read vendored .repos with git show when sparse-excluded by @t3dotgg in #22764
- fix(web): ⌘Z undoes a settle even when the composer has focus by @t3dotgg in #22607
- feat(scripts): one command checks what the branch changed by @t3dotgg in #22767
- fix(scripts): check:changed no longer skips knip after a removed import by @t3dotgg in #22784
- perf(dev): faster first load for shared dev servers by @t3dotgg in #22776
- fix(server): stalled clones say "Stalled" instead of a frozen speed by @t3dotgg in #22780
- fix(web): steers split a finished turn's work instead of stacking under it by @t3dotgg in #22783
- fix(web): images on their own line no longer sit beside their label by @t3dotgg in #22787
- fix(release): include pnpm hook in Vercel uploads by @t3dotgg in #22813
Full Changelog: v0.1.2-nightly.20261021.3457...v0.1.2-nightly.20261021.3471