Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
509 commits
Select commit Hold shift + click to select a range
73e87f6
fix(desktop): setup prompts name a t3 that runs on desktop installs (…
juliusmarminge Oct 7, 2026
0678e4e
feat(desktop): install the t3 command from Settings (#16683)
juliusmarminge Oct 7, 2026
a9fb6a8
fix(web): show live names in thread-read activity (#13140)
Bil0000 Oct 7, 2026
468ade3
feat(mobile): adopt v5 navigation and native iPad columns (#16733)
juliusmarminge Oct 7, 2026
8a92ebe
fix(mobile): Android composer picker scrolls past the first four rows…
shivamhwp Oct 7, 2026
5383296
fix(desktop): sign-in and captchas work again in desktop browser tabs…
juliusmarminge Oct 7, 2026
8548961
fix(server): missing project folders no longer log favicon warnings (…
yordis Oct 7, 2026
eba0521
fix(server): unload Codex threads left idle on the shared app-server …
RhysSullivan Oct 7, 2026
26285ab
fix(web): fast typing no longer scrambles text when type-to-focus kic…
otavio Oct 7, 2026
7f3628e
fix(web): simplify workspace card rows (#16823)
Bil0000 Oct 7, 2026
7ac5ec6
fix(web): Copy MCP URL shows up for environments reached over plain h…
SunkenInTime Oct 7, 2026
abbf5d5
fix(web): C#, Java, PHP and 11 other languages get file icons (#16974)
juliusmarminge Oct 7, 2026
95ccbf4
feat(clients): live row shows the agent's latest thought (#16284)
t3dotgg Oct 7, 2026
300f7f9
feat(web): block-level Markdown in the rich text composer (#14677)
chrisdeeming Oct 7, 2026
46dd094
fix(web): center project monograms in settled rows (#16841)
Aforno Oct 7, 2026
3143335
fix(web): cancelling a new citation no longer leaves a stray space (#…
Aforno Oct 7, 2026
ff3a04a
fix(settings): provider updates show live progress instead of a bare …
shivamhwp Oct 8, 2026
14fe015
feat(web): find in diffs with Cmd+F (#14623)
juliusmarminge Oct 8, 2026
08b1222
refactor(server): GitHub services are named for the API they call, no…
juliusmarminge Oct 8, 2026
a21ac5f
refactor(server): GitHub GraphQL batches use variables and share one …
juliusmarminge Oct 8, 2026
42d92ec
refactor(server): GitHub source control reads GitHubApi directly (#16…
juliusmarminge Oct 8, 2026
d720210
refactor(server): GitHub rate limits read the response headers (#16986)
juliusmarminge Oct 8, 2026
83a82a4
chore(review): remove the custom Approvability check (#17018)
esthor Oct 8, 2026
f9e16b3
perf(mobile): show the cached thread list sooner and stop the freeze …
juliusmarminge Oct 8, 2026
9fba209
fix(server): replaying a command no longer freezes the server (#17041)
SunkenInTime Oct 8, 2026
04ad174
fix(server): opening a long thread no longer blocks the server for a …
SunkenInTime Oct 8, 2026
0f09627
fix(server,web,mobile): thread links reference the thread id, not a b…
juliusmarminge Oct 8, 2026
6f83358
fix(web): messages with quotes or links no longer collapse when short…
flamboh Oct 8, 2026
843c593
refactor(web): PR loading skeleton shares the detail panel's layout (…
flamboh Oct 8, 2026
2b7fa21
fix(web): PR file headers keep the file name in narrow panels (#15562)
flamboh Oct 8, 2026
b24f0fb
fix(web): PR timeline no longer shifts when its scrollbar appears (#1…
flamboh Oct 8, 2026
0bfd9dd
fix(server): held queued wakes no longer keep delegated tasks running…
juliusmarminge Oct 8, 2026
c28cd90
fix(server): a message sent during a rollback no longer undoes it (#1…
t3dotgg Oct 8, 2026
6053a78
fix(web): PR file stats ignore the hide-whitespace toggle (#16162)
flamboh Oct 8, 2026
28f5516
perf(mobile): omit duplicated turn items from bounded thread snapshot…
juliusmarminge Oct 8, 2026
eb17e0d
perf(mobile): pause elapsed-time timers on hidden thread screens (#15…
juliusmarminge Oct 8, 2026
65404eb
fix(mobile): pause hidden home thread list updates (#15705)
juliusmarminge Oct 8, 2026
e803242
fix(mobile): restore file viewer insets and glass header (#17073)
juliusmarminge Oct 8, 2026
ed27eb7
fix(web): PR code toolbar no longer overlaps in narrow panels (#15561)
flamboh Oct 8, 2026
98b5e1b
fix(web): PR commit menu no longer stretches across the window (#15560)
flamboh Oct 8, 2026
647d8af
fix(web): command palette scrollbar no longer clipped at the top (#17…
flamboh Oct 8, 2026
85a4139
fix(web): Usage breadcrumb stays centered on small viewports (#15552)
flamboh Oct 8, 2026
70eeb39
fix(mobile): stop refreshing Git status on streamed thread updates (#…
juliusmarminge Oct 8, 2026
12a4c05
fix(mobile): skip move indexes for empty and single-thread sections (…
juliusmarminge Oct 8, 2026
8a1fc41
perf(mobile): reuse encoded rows in shell cache saves (#16129)
juliusmarminge Oct 8, 2026
6651aaa
perf(mobile): skip showcase subscriptions in normal builds (#16131)
juliusmarminge Oct 8, 2026
6eed953
perf(mobile): remove unused Home project sorting (#16177)
juliusmarminge Oct 8, 2026
7873504
perf(mobile): reduce move-menu index allocations (#16256)
juliusmarminge Oct 8, 2026
6c1ce06
perf(mobile): skip impossible thread-key lookups (#16263)
juliusmarminge Oct 8, 2026
c001e19
fix(mobile): collect UI runtime garbage on iOS memory warnings (#16296)
juliusmarminge Oct 8, 2026
5c2798d
fix(mobile): stop Git sheet refresh loop (#16305)
juliusmarminge Oct 8, 2026
4fec120
fix(mobile): refresh Git status after reconnect (#16329)
juliusmarminge Oct 8, 2026
833a03a
fix(mobile): update the iOS Git header menu when status changes (#16330)
juliusmarminge Oct 8, 2026
b402f5f
perf(mobile): reuse the settled sort when settled rows are unchanged …
juliusmarminge Oct 8, 2026
33afd5a
perf(mobile): highlight source files in small batches that keep gramm…
juliusmarminge Oct 8, 2026
12865b4
feat(web): quote chips show what you said about the quote (#15703)
flamboh Oct 8, 2026
ff9eb8b
feat(web): projectless threads show their machine in the sidebar (#17…
flamboh Oct 8, 2026
57f96e6
fix(lineage): keep agent effort and speed after completion (#16925)
Bil0000 Oct 8, 2026
97a65a3
fix(mobile): align diff scrolling with glass headers (#17085)
juliusmarminge Oct 8, 2026
73e097b
fix(web): workspace page headers can no longer grow past the top-bar …
maria-rcks Oct 8, 2026
30cc788
feat(mobile): redesign the Add environment sheet (#17092)
juliusmarminge Oct 8, 2026
d6f47ff
feat(providers): run Muse Code as a native provider (#17082)
t3dotgg Oct 8, 2026
0647c48
feat(web): compact-before-send is a chip that shows the token count (…
t3dotgg Oct 8, 2026
2ea7684
fix(clients): copy button is back in its old spot, before fork (#17137)
t3dotgg Oct 8, 2026
4d1f24b
fix(usage): repeat usage scans no longer decode unchanged Antigravity…
t3dotgg Oct 8, 2026
1f31906
fix(server): shell snapshots no longer block other database reads whi…
t3dotgg Oct 8, 2026
10e29a2
perf(server): ACP tool updates no longer persist a snapshot per strea…
darjss Oct 8, 2026
13c5328
feat(web): filter the Usage page to just the providers you want (#16970)
t3dotgg Oct 8, 2026
9381533
fix(usage): Cursor account history loads about 4x faster (#17140)
t3dotgg Oct 8, 2026
0ce6b9d
fix(server): threads settle as soon as branch status sees their PR me…
t3dotgg Oct 8, 2026
8597558
perf(usage): the Usage page shows numbers in under a second and dims …
t3dotgg Oct 8, 2026
37eaf5d
fix(server): an agent can settle its own thread when its turn ends (#…
t3dotgg Oct 8, 2026
5e22256
feat(web): Add provider button sits with the provider list (#17152)
t3dotgg Oct 8, 2026
a4c9494
fix(web): link pull requests to threads in folders that aren't Git re…
shivamhwp Oct 8, 2026
12069ee
feat(web): find messages and plans in the current thread (#10439)
Noojuno Oct 8, 2026
9a3070b
feat(web): improve terminal scrollback navigation and snapshots (#17091)
StiensWout Oct 8, 2026
a65b438
docs(internals): add a checklist for adding a provider (#17229)
juliusmarminge Oct 8, 2026
a6ec88f
fix(mobile): keep native screens ordered during stack pops (#17231)
juliusmarminge Oct 8, 2026
4daec10
fix(server): pairing tokens work on Node versions that cannot bind bo…
chisewaguri Oct 8, 2026
61b9790
fix(mobile): HTML pages in a thread no longer trap scrolling on Andro…
SunkenInTime Oct 8, 2026
07a8b9e
fix(web): centered scrollers no longer shift when the scrollbar appea…
maria-rcks Oct 8, 2026
62a5d37
fix(web): distinguish thread search matches from code tints (#17263)
Yash-Singh1 Oct 8, 2026
f999eb2
fix(server): Pi extension wakes get an owned continuation turn (#17214)
StiensWout Oct 8, 2026
de72286
fix(server): Pi discovers optional T3 tools on demand (#17220)
StiensWout Oct 8, 2026
eb1cf7b
fix(web): stack merge dialog closes as soon as you confirm (#17116)
flamboh Oct 8, 2026
e8f5850
fix(server): Pi editor dialogs prefill the answer composer (#17206)
StiensWout Oct 8, 2026
a0066d5
fix(desktop): generate valid User-Agent that follows RFC 9110 guideli…
jztmanyl Oct 8, 2026
0b6ec43
fix(server): Pi discovers workspace skills and commands (#17190)
StiensWout Oct 8, 2026
805967a
fix(mobile): preserve navigation after native swipe back (#17268)
juliusmarminge Oct 8, 2026
fd25c42
fix(server): keep newly discovered models out of legacy groups (#14314)
Bil0000 Oct 8, 2026
df616cc
feat(editors): open remote projects in JetBrains IDEs over SSH (#17271)
juliusmarminge Oct 8, 2026
740f591
test(desktop): expect JetBrains IDEs among remote editors (#17291)
juliusmarminge Oct 8, 2026
cdd331b
fix(server): recognize authenticated GitHub Enterprise hosts (#11059)
alimek Oct 8, 2026
2a93885
fix(connect): relay client updates itself and skips incompatible clou…
juliusmarminge Oct 8, 2026
bd565bd
fix(shared): relay client install waits out a brief Windows file lock…
ScottN-PV Oct 8, 2026
c377d1c
fix(shared): release relay install locks on cancellation (#10585)
yashranaway Oct 8, 2026
af3d842
chore(shared): bump managed cloudflared to 2026.10.0 (#11184)
bompus Oct 8, 2026
5809487
fix(shared): bound cloudflared download with 10-minute timeout (#14139)
kvnloo Oct 8, 2026
9eea28b
refactor(provider-core): add provider-core and provider-testing packa…
juliusmarminge Oct 8, 2026
2c11607
refactor(settings): drop the legacy per-driver providers map (#17300)
juliusmarminge Oct 8, 2026
9b0df13
refactor(provider-pi): move Pi into its own provider package (#17302)
juliusmarminge Oct 8, 2026
7b57b72
feat(models): tell users when a CLI update unlocks a new model (#17307)
juliusmarminge Oct 8, 2026
48b71f0
fix(web): collapsed composer reserves room for wide send actions (#17…
maria-rcks Oct 8, 2026
d81afa0
fix(muse): workflow subagents no longer stall on hidden approvals (#1…
t3dotgg Oct 8, 2026
e38b6a1
refactor(provider-core): share attachment prompts, notifications, and…
juliusmarminge Oct 8, 2026
741377c
fix(web): file previews handle downloads, in-page links, and repo pat…
juliusmarminge Oct 8, 2026
5754121
fix(server): environment-hosted browser tabs behave like a normal bro…
juliusmarminge Oct 8, 2026
d9f7c0c
fix(desktop): browser tab fixes for fullscreen, shortcuts, links, rel…
juliusmarminge Oct 8, 2026
66298aa
fix(web): desktop opens remote environments' browser tabs locally (#1…
juliusmarminge Oct 8, 2026
3bfbc37
fix(desktop): the t3 command warns instead of installing behind anoth…
juliusmarminge Oct 8, 2026
e0c80c1
fix(web): images, video, HTML and PDF preview in a thread before its …
juliusmarminge Oct 8, 2026
5b78b34
refactor(provider-muse): move Muse Code into its own provider package…
juliusmarminge Oct 8, 2026
6308db4
fix(web): semantic branch naming hint lines up with its setting (#16972)
limineol Oct 8, 2026
393ff4c
fix(mobile): restore chat image previews in the v5 stack (#17361)
juliusmarminge Oct 8, 2026
c724c7c
feat(mobile): fade working threads and match web's status labels (#17…
juliusmarminge Oct 9, 2026
dbd8343
fix(server): agent browser tools stop bloating history, fall back sen…
juliusmarminge Oct 9, 2026
29980a3
fix(web): add room for thread timeline markers (#17372)
Yash-Singh1 Oct 9, 2026
b0ee7dd
fix(web): drop sidebar context before cancelling pointer drag (#17373)
Yash-Singh1 Oct 9, 2026
2c7a446
refactor(providers): namespace-import service modules in core, Muse, …
juliusmarminge Oct 9, 2026
456930a
fix(auth): show connection permissions and enforce session lifetime (…
juliusmarminge Oct 9, 2026
e62161b
refactor(provider-opencode): move OpenCode into its own provider pack…
juliusmarminge Oct 9, 2026
b5e4f1e
refactor(provider-cursor): move Cursor into its own provider package …
juliusmarminge Oct 9, 2026
664bd5e
refactor(provider-acp): move the shared ACP adapter into its own pack…
juliusmarminge Oct 9, 2026
b707eeb
refactor(provider-grok): move Grok into its own provider package (#17…
juliusmarminge Oct 9, 2026
42c6623
fix(server): speed up long thread message sync (#17387)
Yash-Singh1 Oct 9, 2026
c9fa136
fix(desktop): cancel backend pipe reads to avoid slow shutdown (#17386)
Yash-Singh1 Oct 9, 2026
b000eac
refactor(providers): adapter factories yield their services (#17381)
juliusmarminge Oct 9, 2026
5785df1
fix(web): show a row spinner instead of a banner when expanding a fol…
juliusmarminge Oct 9, 2026
8f76037
fix(server): a timed-out browser drag no longer exits the server (#17…
ScottN-PV Oct 9, 2026
563645c
fix(server): a logged-out Claude CLI no longer reports as authenticat…
yordis Oct 9, 2026
3b6af0b
fix(server): Pi loads every selected skill without losing prompt text…
StiensWout Oct 9, 2026
c908cea
fix(server): keep the Claude MCP token out of process arguments (#17408)
juliusmarminge Oct 9, 2026
7a2b1c7
fix(server): reconcile Pi native session rewinds (#13839)
StiensWout Oct 9, 2026
cb46c62
test(provider-pi): cover continuation offers through the driver (#17407)
juliusmarminge Oct 9, 2026
43f8a8d
refactor(provider-acp-registry): move the ACP Registry into its own p…
juliusmarminge Oct 9, 2026
101f8b2
fix(server): relay client updates no longer drop the host off T3 Conn…
t3dotgg Oct 9, 2026
ec80933
fix(connect): Cloudflare and other VPN addresses no longer show as Ta…
shivamhwp Oct 9, 2026
2cf0ff0
fix(web): Local environment switch stays reachable after turning it o…
ScottN-PV Oct 9, 2026
c5d4d2d
fix(web): keep chat banners inside the lane beside the docked details…
macodev00 Oct 9, 2026
a947f7c
fix(web): settled and snoozed lines line up with the messages above t…
RakshithBhat03 Oct 9, 2026
22ccf8a
fix(web): distinguish project filter from new project (#12113)
voltcrash Oct 9, 2026
b150867
feat(web): assign a thread details panel shortcut (#16694)
maria-rcks Oct 9, 2026
a669827
fix(web): chat content keeps pace with sidebar resizing (#17383)
flamboh Oct 9, 2026
2c1915b
refactor(provider-core): expose model metadata through a ModelCatalog…
juliusmarminge Oct 9, 2026
b66dd40
refactor(provider-core): follow the Effect service conventions throug…
juliusmarminge Oct 9, 2026
68ab16f
refactor(provider-core): latest-version lookups go through a Provider…
juliusmarminge Oct 9, 2026
784b562
refactor(provider-core): MCP provider sessions live in a McpProviderS…
juliusmarminge Oct 9, 2026
31b04e2
refactor(provider): bring opencode, muse, pi, core and testing in lin…
juliusmarminge Oct 9, 2026
f853d51
refactor(provider-acp): ACP, ACP Registry and Grok follow the Effect …
juliusmarminge Oct 9, 2026
33806e7
refactor(provider-cursor): follow the Effect service conventions (#17…
juliusmarminge Oct 9, 2026
6497246
fix(marketing): use app wordmark in header (#13240)
voltcrash Oct 9, 2026
aa8c666
fix(web): pr merge actions stay visible while the stack refreshes (#1…
maria-rcks Oct 9, 2026
91a6646
chore(deps): upgrade Effect to 4.0.2 (#17571)
juliusmarminge Oct 9, 2026
ecfb734
fix(devices): recover stalled video without losing simulator input (#…
juliusmarminge Oct 9, 2026
7856908
fix(web): keep checkout stable while pr actions load (#16625)
maria-rcks Oct 9, 2026
1fd558d
fix(mobile): show waiting thread status (#16693)
maria-rcks Oct 9, 2026
5722496
feat(web): add parent thread breadcrumb navigation (#16666)
maria-rcks Oct 9, 2026
0a4d789
fix(server): restart inactivity after snoozed threads wake (#16674)
maria-rcks Oct 9, 2026
454b94a
feat(desktop): passkeys in the in-app browser on macOS (#16952)
juliusmarminge Oct 9, 2026
a1db449
fix(client): load earlier turns works for MCP threads over T3 Connect…
juliusmarminge Oct 9, 2026
0e7abea
refactor(client): sign relay request URLs built from the HttpApi cont…
juliusmarminge Oct 9, 2026
28f11ed
refactor(source-control): add @t3tools/source-control-core (#17573)
juliusmarminge Oct 9, 2026
f6e4502
refactor(source-control): Forgejo lives in @t3tools/source-control-fo…
juliusmarminge Oct 9, 2026
d01febb
refactor(source-control): Azure DevOps lives in @t3tools/source-contr…
juliusmarminge Oct 9, 2026
eb459b5
refactor(source-control): GitLab lives in @t3tools/source-control-git…
juliusmarminge Oct 9, 2026
8d1858d
refactor(source-control): Bitbucket lives in @t3tools/source-control-…
juliusmarminge Oct 9, 2026
507361b
refactor(source-control): GitHub lives in @t3tools/source-control-git…
juliusmarminge Oct 9, 2026
e5dca23
refactor(usage): transcript readers come from their drivers (#17576)
juliusmarminge Oct 9, 2026
23957c7
refactor(usage): OpenCode usage comes from provider-opencode (#17577)
juliusmarminge Oct 9, 2026
5a9c664
refactor(usage): Cursor account usage comes from provider-cursor (#17…
juliusmarminge Oct 9, 2026
9a0766b
refactor(usage): Antigravity usage is a reader on its driver (#17579)
juliusmarminge Oct 9, 2026
b1ec4b3
refactor(usage): usage readers use Effect FileSystem and SqlClient (#…
juliusmarminge Oct 9, 2026
6586a01
fix(web): composer context strip pads both edges evenly (#17562)
limineol Oct 9, 2026
a0a0e94
test(usage): v4 cache upgrade test waits for the migrated cache write…
Mnigos Oct 9, 2026
c85dc64
feat(mobile): support Duo in the shared iOS app (#12648)
juliusmarminge Oct 9, 2026
49f849e
refactor(source-control): GitManager reads provider resolvers, not ho…
juliusmarminge Oct 9, 2026
2ce3e4a
refactor(source-control): PullRequestService reads GitHub resolvers, …
juliusmarminge Oct 9, 2026
51347ac
refactor(source-control): Forgejo identity and Azure DevOps addressin…
juliusmarminge Oct 9, 2026
58916b6
refactor: home directory comes from a HostProcessHomeDirectory refere…
juliusmarminge Oct 9, 2026
e308522
refactor(shared): host process references live in a HostProcess modul…
juliusmarminge Oct 9, 2026
6cd02e9
feat(web): filter PR comments by bots and resolved threads (#17645)
juliusmarminge Oct 9, 2026
0c40120
fix(clients): remove redundant prefix from PR watch status (#17635)
extoci Oct 9, 2026
99d2651
fix(web): pending requests wait until you stop typing (#17637)
maria-rcks Oct 9, 2026
08e18b7
fix(models): remove new badges from Claude Opus and Sonnet 5.5 (#17646)
extoci Oct 9, 2026
5dcb59e
fix(ui): keep focus and selection borders visible across the app (#16…
maria-rcks Oct 9, 2026
5fe9d02
fix(mobile): prevent row presses during native back swipes (#17648)
juliusmarminge Oct 9, 2026
140ee14
fix(server): Codex shadow homes replace stray sqlite maintenance lock…
juliusmarminge Oct 10, 2026
3857132
feat(desktop): T3 Code can be your default web browser on macOS (#17587)
juliusmarminge Oct 10, 2026
202b954
test(server): the ACP process-tree test no longer collides with the r…
yordis Oct 10, 2026
cc62349
fix(web): keep branch restore action inline in narrow composers (#14811)
Saikrishna1876 Oct 10, 2026
3e94afa
fix(web): composer banner actions stay inline whenever they fit (#17640)
maria-rcks Oct 10, 2026
b744bde
feat(web): draft screen project picker is searchable (#17664)
juliusmarminge Oct 10, 2026
b87b13d
fix(server): report incomplete transcript usage scans (#15661)
maria-rcks Oct 10, 2026
d970607
fix(web): every resize-driven layout commits in the same frame (#17656)
maria-rcks Oct 10, 2026
ca40de0
fix(web): right panel and terminal drawer follow the pointer while dr…
maria-rcks Oct 10, 2026
42e1a0f
fix(web): terminal drawer keeps its height after the window shrinks (…
maria-rcks Oct 10, 2026
033866c
perf(web): sidebar drags restyle only the sidebar (#17659)
maria-rcks Oct 10, 2026
eddc8fb
fix(web): server browser page resizes while the panel is dragged (#17…
maria-rcks Oct 10, 2026
0caa95d
fix(storage): make worktree cleanup work and show why it skipped (#17…
maria-rcks Oct 10, 2026
e858ddb
test(usage): usage service tests keep their state directory until cac…
tris203 Oct 10, 2026
f3a69c7
fix(checkpoint): pulls and rebases no longer flood a turn's changed f…
t3dotgg Oct 10, 2026
07b8080
fix(web): place notification icons after titles (#12209)
voltcrash Oct 10, 2026
0b9623f
fix(web): attachments on an open question are visible again (#15537)
tiliakoos Oct 10, 2026
f34adad
fix(web): scale Files tree with interface font size (#8011)
Umais-Adeed Oct 10, 2026
318201c
fix(server): probe only owned preview listeners (#16687)
maria-rcks Oct 10, 2026
ed4ea10
fix(chat): surface pending subagent questions on parents (#16634)
maria-rcks Oct 10, 2026
c1f21e5
fix(web): section header chevrons point up when collapsed (#14273)
ZenderGoD Oct 10, 2026
e08c31e
fix(web): timeline divider pill shows a pointer, visible hover and fo…
jonesfionn101-dotcom Oct 10, 2026
6e4ca6c
fix(git): allow creating prs from dirty worktrees (#15625)
maria-rcks Oct 10, 2026
b822420
docs(install): polish binary install destination phrasing (#15732)
ege-arhan Oct 10, 2026
0981e6b
perf(server): keep passive terminal output flowing (#17178)
StiensWout Oct 10, 2026
b6aa268
fix(web): stop button icon no longer shifts on hover (#16012)
NK-Works Oct 10, 2026
9bbbbba
fix(web): add bottom padding to expanded tool panels (#16525)
12ya Oct 10, 2026
2def3de
fix(web): keep incremental highlighter return type portable (#17259)
luke2x Oct 10, 2026
391f813
fix(web): sidebar "Code" label no longer clips its letter tops (#16134)
akbarakma Oct 10, 2026
699da95
fix(tests): use POSIX paths for the simulated macOS device host (#17241)
Quicksaver Oct 10, 2026
88edfac
fix(mobile): Android composer keeps the caret in view on AOSP-based k…
bitmvk Oct 10, 2026
467fea9
test(web): allow cold timeline imports on CI (#16608)
lastobelus Oct 10, 2026
aa165e9
fix(mobile): pinch zooms chat images on Android (#15047)
AKolenda Oct 10, 2026
d1e56e7
fix(web): selected provider ring no longer clipped during panel resiz…
jfortez Oct 10, 2026
d50a2a6
docs(usage): OpenCode Go limits need a Go API key (#15664)
nexxeln Oct 10, 2026
c116dac
fix(web): improve usage scanning indicator alignment (#15498)
AksharP5 Oct 10, 2026
97009b0
fix(server): print pairing credential expiry as ISO timestamp (#14128)
kvnloo Oct 10, 2026
2cc55f2
chore(ci): use GPT 6.1 Sol Max for check agents (#14312)
ishaanko Oct 10, 2026
8b81a88
fix(mobile): honor requested terminal native architectures (#10709)
bompus Oct 10, 2026
5c715c6
fix(server): keep preview browser connected after operation timeouts …
juliusmarminge Oct 10, 2026
aacefcd
fix(web): timeline divider focus ring stays inside the pill (#17702)
t3dotgg Oct 10, 2026
03bd839
perf(desktop): reuse the prepared shell environment in the local back…
Yash-Singh1 Oct 10, 2026
f02002a
fix(web): align settings page widths (#12158)
diegoarff Oct 10, 2026
a3d1505
test(server): resolve the temp dir before matching the symlinked entr…
ylcn91 Oct 10, 2026
6e83160
fix(web): keep inline code pills intact when they wrap (#12038)
satyalyadav Oct 10, 2026
2aa033b
Revert "chore(ci): use GPT 6.1 Sol Max for check agents" (#17698)
maria-rcks Oct 10, 2026
f55c66b
fix(web): show the correct new thread shortcut in command palette (#8…
vaishnavsm Oct 10, 2026
c1ade7d
fix(desktop): declare macOS local network usage (#11922)
jsilets Oct 10, 2026
968ac2e
docs: add Scoop as Windows installation method (#10509)
Mostafa-Ben-Git Oct 10, 2026
a0a601c
fix(server): agents run in their own systemd scopes so an OOM kill sp…
t3dotgg Oct 10, 2026
4ea7356
fix(web): welcome wizard says where imported projects come from (#14584)
UzEE Oct 10, 2026
d02e292
fix(web): cite works on responses that end before a tool call (#17713)
maria-rcks Oct 10, 2026
fa9f936
fix(desktop): sign Windows native addons (#8206)
Lumbreras2306 Oct 10, 2026
c572cb7
fix(server): track resumed subagent follow-ups as separate tasks (#17…
Yash-Singh1 Oct 10, 2026
c2a301b
fix(web): nested corners follow their container's radius (#17695)
maria-rcks Oct 10, 2026
1f093d1
feat(web): pr panel actions confirm in place (#17710)
maria-rcks Oct 10, 2026
4107930
feat(web): reorder right panel tabs by dragging (#17730)
eimexdev Oct 10, 2026
c899a0c
fix(azure-devops): list pull requests with token sign-in and check ou…
maria-rcks Oct 10, 2026
0be20c8
fix(usage): keep one email in two workspaces as two accounts (#17711)
maria-rcks Oct 10, 2026
c3243f0
feat(pull-requests): hosts can report edit and resolve permissions pe…
juliusmarminge Oct 10, 2026
9cc5768
perf(server): run Git for Windows' real git.exe, not its launcher (#1…
SunkenInTime Oct 10, 2026
a7223f3
fix(clients): restart continuations show as a T3 Code notice, not ano…
juliusmarminge Oct 10, 2026
57b3780
fix(mobile): browser picture in picture opens from the header button …
juliusmarminge Oct 10, 2026
9c9d9b4
fix(cli): hint at UEK8 ENOEXEC when the SEA cannot exec
macodev00 Oct 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
45 changes: 45 additions & 0 deletions .coderabbit.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import { defineConfig, type CodeRabbitContext } from "@coderabbitai/config";

// Org members and collaborators merge their own pull requests. On anyone else's, CodeRabbit
// requests changes until its comments are resolved, then approves.
const UNGATED_AUTHORS = new Set(["OWNER", "MEMBER", "COLLABORATOR"]);
const isGated = ({ pr }: CodeRabbitContext) => !UNGATED_AUTHORS.has(pr?.authorAssociation ?? "");

export default defineConfig((ctx) => ({
reviews: {
high_level_summary: false,
review_status: false,
request_changes_workflow: isGated(ctx),
allow_author_approval: !isGated(ctx),
auto_review: {
enabled: true,
},
pre_merge_checks: {
docstrings: { mode: "off" },
override_requested_reviewers_only: isGated(ctx),
},
path_filters: [
// Vendored read-only reference checkouts of upstream Effect and Alchemy
// (see scripts/lib/reference-repos.ts). Nothing imports from them.
"!.repos/**",
],
path_instructions: [
{
path: "{apps,packages,infra}/**/*.ts",
instructions: "Hold changed code to the rules in docs/internals/effect-services.md.",
},
{
path: "apps/web/src/**/*.{tsx,css}",
instructions: "Hold changed code to the rules in docs/internals/web-ui.md.",
},
],
},
knowledge_base: {
code_guidelines: {
filePatterns: [
{ files: "docs/internals/effect-services.md", applyTo: "{apps,packages,infra}/**/*.ts" },
{ files: "docs/internals/web-ui.md", applyTo: "apps/web/src/**/*.{tsx,css}" },
],
},
},
}));
9 changes: 0 additions & 9 deletions .coderabbit.yaml

This file was deleted.

2 changes: 1 addition & 1 deletion .cursor/rules/cursor-cloud.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,4 @@ Gradle auto-downloads any additional pinned SDK packages on demand.
## Known flaky tests (unrelated to setup)

- `apps/server/src/git/GitManager.test.ts` (cross-repo PR metadata, can time out at 12s).
- `apps/server/src/provider/Layers/ProviderRegistry.test.ts` (codex binaryPath re-probe ordering).
- `apps/server/src/provider/ProviderRegistry.test.ts` (codex binaryPath re-probe ordering).
1 change: 1 addition & 0 deletions .github/VOUCHED.td
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ github:cursoragent
github:D3OXY
github:dbalders
github:eggfriedrice24
github:esthor
github:extoci
github:f-trycua
github:flamboh
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,9 @@ jobs:
# No Electron setup here: `t3` (apps/server) has no Electron dependency
# and none of its tests touch the runtime. Only the non-server `test`
# job, which covers @t3tools/desktop, needs the download.
- name: Install Chromium for server browser integration tests
run: node apps/server/node_modules/playwright-core/cli.js install --with-deps --only-shell chromium

- name: Test
env:
T3CODE_TRANSFER_BUDGET_REPORT_PATH: ${{ runner.temp }}/t3code-transfer-budget.md
Expand Down Expand Up @@ -296,7 +299,11 @@ jobs:
transfer-report:
name: Transfer report artifact
needs: test_server
runs-on: ubuntu-24.04
# On Blacksmith like every other job here: the GitHub-hosted queue is shared
# with the PR bots and can leave this job waiting until it is abandoned,
# which fails `Check` on an otherwise green run.
runs-on: blacksmith-2vcpu-ubuntu-2404
timeout-minutes: 5
steps:
- name: Require transfer measurements
uses: actions/download-artifact@v8
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/deploy-relay.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ on:
push:
branches:
- main
# Alchemy does not redeploy the Worker when only a Config value read in its
# Init changes (alchemy-run/alchemy#1831), so a changed repository variable
# needs a forced deploy to reach production.
# Redeploys main after a variable or secret change. Alchemy redeploys the
# Worker when a value it reads changes, so force is rarely needed, and it
# replaces the Postgres runtime role (alchemy-run/alchemy#1832).
workflow_dispatch:
inputs:
force:
description: Redeploy every resource, including ones with no detected changes
description: Redeploy every resource, including ones with no detected changes. Replaces the Postgres runtime role.
type: boolean
default: true
default: false

permissions:
contents: read
Expand Down Expand Up @@ -40,6 +40,7 @@ jobs:
RELAY_API_ZONE_NAME: ${{ vars.RELAY_API_ZONE_NAME }}
RELAY_TUNNEL_ZONE_NAME: ${{ vars.RELAY_TUNNEL_ZONE_NAME }}
RELAY_TUNNEL_CLEANUP_MODE: ${{ vars.RELAY_TUNNEL_CLEANUP_MODE }}
RELAY_LEGACY_TUNNEL_CLEANUP_MODE: ${{ vars.RELAY_LEGACY_TUNNEL_CLEANUP_MODE }}
CLERK_PUBLISHABLE_KEY: ${{ vars.CLERK_PUBLISHABLE_KEY }}
CLERK_JWT_AUDIENCE: ${{ vars.CLERK_JWT_AUDIENCE }}
APNS_ENVIRONMENT: ${{ vars.APNS_ENVIRONMENT }}
Expand Down
24 changes: 23 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,9 @@ jobs:
# No Electron setup here: `t3` (apps/server) has no Electron dependency
# and none of its tests touch the runtime. Only the non-server `test`
# job, which covers @t3tools/desktop, needs the download.
- name: Install Chromium for server browser integration tests
run: node apps/server/node_modules/playwright-core/cli.js install --with-deps --only-shell chromium

- name: Test
run: vp run --filter t3 test --shard ${{ matrix.shard }}/${{ strategy.job-total }}

Expand Down Expand Up @@ -1347,6 +1350,24 @@ jobs:
args:
- --filter=@t3tools/scripts...

- name: Read published release notes
if: needs.preflight.outputs.is_prerelease == 'true'
continue-on-error: true
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
RELEASE_TAG: ${{ needs.preflight.outputs.tag }}
RELEASE_CHANNEL: ${{ needs.preflight.outputs.release_channel }}
run: |
if [ "$RELEASE_CHANNEL" = 'nightly' ]; then
if ! gh release view "$RELEASE_TAG" --json body --jq '.body // ""' > "$RUNNER_TEMP/discord-release-notes.md"; then
: > "$RUNNER_TEMP/discord-release-notes.md"
echo '::warning::Could not read published release notes; announcing without a changelog.'
fi
else
: > "$RUNNER_TEMP/discord-release-notes.md"
fi

- name: Announce prerelease on Discord
if: needs.preflight.outputs.is_prerelease == 'true'
continue-on-error: true
Expand All @@ -1359,7 +1380,8 @@ jobs:
--release-name "${{ needs.preflight.outputs.release_name }}" \
--release-version "${{ needs.preflight.outputs.version }}" \
--tag "${{ needs.preflight.outputs.tag }}" \
--release-url "https://github.com/${{ github.repository }}/releases/tag/${{ needs.preflight.outputs.tag }}"
--release-url "https://github.com/${{ github.repository }}/releases/tag/${{ needs.preflight.outputs.tag }}" \
--release-notes-file "$RUNNER_TEMP/discord-release-notes.md"

- name: Announce latest release on Discord
if: needs.preflight.outputs.make_latest == 'true'
Expand Down
8 changes: 8 additions & 0 deletions .repos/alchemy-effect/.github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,14 @@ jobs:
- name: Run Typecheck
run: pnpm tsc -b

# Must run after `tsc -b`: it reads distilled's emitted `lib/*.d.ts`,
# and stale/missing declarations resolve to `any`.
- name: Lint providers
run: pnpm lint:providers

- name: Test CLI launcher
run: timeout 240 pnpm test test/Cli/launcher.test.ts test/Cli/exitCodes.test.ts --retry 0 --concurrency 1

- name: Check API JSDocs
run: pnpm docs:check-jsdoc

Expand Down
17 changes: 15 additions & 2 deletions .repos/alchemy-effect/.github/workflows/pkg.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ on:
- "tsconfig.json"
- ".github/workflows/pkg.yml"
pull_request:
types: [opened, synchronize, reopened, labeled]
paths:
- "submodules/distilled"
- "packages/**"
Expand Down Expand Up @@ -54,6 +55,7 @@ jobs:
# Pack the pull request head rather than the synthetic merge commit,
# so every tarball is addressed by a commit that exists on the PR.
ref: ${{ github.event.pull_request.head.sha || github.sha }}
fetch-depth: 0

- name: Checkout distilled
run: git submodule update --init --depth=1 --checkout -- submodules/distilled
Expand All @@ -69,19 +71,29 @@ jobs:
install: true
require-lockfile: true

# Cold-building the alchemy package peaks near 17 GB of heap, which
# starves the runner agent on a 32 GB machine and drops the job. A soft
# limit holds the peak near 11 GB for roughly twice the compile time.
- name: Build packages
env:
GOMEMLIMIT: 6GiB
GOGC: "40"
run: pnpm build:pkg

# Keep the directory lists in sync with the `build:pkg` script.
# The @distilled.cloud list is alchemy's dependency set, which `build:pkg`
# derives with `--filter=alchemy...`; keep the @alchemy.run list in sync.
- name: Pack packages
id: pack
run: >-
pnpm exec pkg pack
${{ contains(github.event.pull_request.labels.*.name, 'force-ci') && '--all' || '' }}
--rebuild-all-path 'scripts/copy-package-files.ts'
--group 'alchemy=./packages/alchemy'
--group '@alchemy.run[Collapsed]=./packages/{better-auth,cloudflare-runtime,frontend-frameworks,node-utils,floci,pkg}'
--group '@distilled.cloud[Collapsed]=./submodules/distilled/packages/{core,aws,axiom,cloudflare,fly-io,github,hetzner,neon,planetscale,railway,stripe}'
--group '@distilled.cloud[Collapsed]=./submodules/distilled/packages/{core,acme,aws,axiom,cloudflare,doppler,fly-io,github,hetzner,infisical,neon,prisma,planetscale,railway,stripe,zerossl}'

- name: Vouch for the manifest
if: steps.pack.outputs.package-count != '0'
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: ${{ steps.pack.outputs.artifact-name }}
Expand All @@ -91,4 +103,5 @@ jobs:
retention-days: 1

- name: Publish packages
if: steps.pack.outputs.package-count != '0'
run: pnpm exec pkg publish
5 changes: 5 additions & 0 deletions .repos/alchemy-effect/.github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,11 @@ jobs:
bun scripts/release/prepare.ts '${{ inputs.version }}' | tee -a "$GITHUB_OUTPUT"

- name: Build release packages
# Match preview CI: the cold tsgo build can starve the runner
# without Go heap limits on this 32 GB machine.
env:
GOMEMLIMIT: 6GiB
GOGC: "40"
run: >-
pnpm turbo run build
$(jq -r '.[] | "--filter=\(.name)"' release-packages.json)
Expand Down
7 changes: 7 additions & 0 deletions .repos/alchemy-effect/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ smoke
*.d.ts
!examples/prisma-tanstack-start/migrations/**/start-contract.d.ts
!examples/prisma-tanstack-start/migrations/**/end-contract.d.ts
# Emitted Prisma ORM v8 contract types: imported by the fixtures/example that
# consume them, so a clean checkout must typecheck without running a deploy.
!examples/cloudflare-neon-prisma/src/prisma/generated/contract.d.ts
!packages/alchemy/test/Cloudflare/Workers/fixtures/prisma-orm/generated/contract.d.ts
!packages/alchemy/test/Prisma/ORM/fixtures/client/generated/contract.d.ts
# drizzle-kit's generated durable-sqlite migrations bundle (checked-in test fixture)
!packages/alchemy/test/Cloudflare/Workers/fixtures/drizzle-do/drizzle/migrations.js
# Container image contexts COPY these into the image; without the negation
Expand Down Expand Up @@ -67,6 +72,8 @@ examples/cloudflare-worker/src/scratch.ts
/packages/alchemy/README.md

!/packages/alchemy/bin/cli.js
!/packages/alchemy/bin/alchemy.js
!/packages/alchemy/bin/exec.js
!/packages/alchemy/bin/register-dev-mode.js
!/packages/alchemy/bin/register-oxc.js
.tmp
Expand Down
6 changes: 3 additions & 3 deletions .repos/alchemy-effect/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -857,8 +857,8 @@ Resolve the bindings, expose one route per behavior, default-export the class so
// fixtures/worker.ts
import * as Cloudflare from "@/Cloudflare/index.ts";
import * as Effect from "effect/Effect";
import { HttpServerRequest } from "effect/unstable/http/HttpServerRequest";
import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
import { HttpServerRequest } from "effect/http/HttpServerRequest";
import * as HttpServerResponse from "effect/http/HttpServerResponse";
import { Gateway } from "./gateway.ts";

export default class TestWorker extends Cloudflare.Worker<TestWorker>()(
Expand Down Expand Up @@ -895,7 +895,7 @@ import * as Test from "@/Test/Alchemy";
import { expect } from "alchemy-test";
import * as Effect from "effect/Effect";
import * as Schedule from "effect/Schedule";
import * as HttpClient from "effect/unstable/http/HttpClient";
import * as HttpClient from "effect/http/HttpClient";
import TestWorker from "./fixtures/worker.ts";

const { test, beforeAll, afterAll, deploy, destroy } = Test.make({
Expand Down
Loading
Loading