Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2139 commits
Select commit Hold shift + click to select a range
c1b2210
fix(desktop): keep the sidebar brand and window buttons aligned (#11906)
shivamhwp Sep 15, 2026
9a6b57b
fix(web): drop the filled well behind the sidebar header buttons (#11…
flamboh Sep 15, 2026
2a264ad
fix(server): explain how to configure a missing Codex executable (#11…
shivamhwp Sep 15, 2026
d1790aa
fix(mobile): add missing thread rename action (#11503)
Michel-Liao Sep 15, 2026
caf8b5d
fix(mobile): wait for thread deep link hydration (#11502)
Michel-Liao Sep 15, 2026
d07ffbe
fix(mobile): keep iOS chat rows aligned after measurement (#11813)
dominic-r Sep 15, 2026
438465d
feat: add customizable soft-tint project monograms (#11845)
eimexdev Sep 15, 2026
24b711b
fix: multiple UI and server bug fixes (#11593)
kridaydave Sep 15, 2026
7235701
fix(server): release preview hosts after unanswered requests (#11381)
yashranaway Sep 15, 2026
3efdcc5
Preserve diff tree order and collapsed folders (#11931)
juliusmarminge Sep 15, 2026
a5da327
fix(client-runtime): preserve cached turns and older-page loading (#8…
lnieuwenhuis Sep 15, 2026
844203d
chore(deps): bump Clerk stack to latest stable versions (#11956)
juliusmarminge Sep 15, 2026
b18a560
fix(mobile): update Reanimated and Worklets (#11957)
juliusmarminge Sep 15, 2026
96bddf8
fix(desktop): paste as text no longer doubles the pasted text (#11958)
TonybynMp4 Sep 15, 2026
719a76c
feat(web): choose queue or steer for follow-up messages (#11964)
Bil0000 Sep 15, 2026
e6ae764
feat(mobile): add v2 preview store builds (#11966)
juliusmarminge Sep 15, 2026
2c16c1d
fix(mobile): block incompatible server connections (#11974)
juliusmarminge Sep 15, 2026
f0a0ead
fix(web): keep PR controls readable in narrow panels (#11962)
Bil0000 Sep 15, 2026
b84f63b
fix(server): block updates under legacy service launchers (#11940)
Gigioxx Sep 15, 2026
f4600d7
fix: reduce GitHub quota use with sharing enabled (#11888)
Bil0000 Sep 15, 2026
87a12b5
fix(usage): refresh limits when the tab opens (#11928)
Bil0000 Sep 15, 2026
6f7aaff
fix(contracts): avoid Intl.Segmenter in monogram validation (Hermes c…
bompus Sep 15, 2026
37a8ab2
feat(lint): extend Hermes API bans with a configurable API list (#11982)
juliusmarminge Sep 15, 2026
b12c92f
fix(server): reuse Git index metadata during checkpoint capture (#10792)
im-kvijay Sep 15, 2026
7a368fe
refactor: give project monograms their own icon variant (#11993)
juliusmarminge Sep 16, 2026
935c55b
fix(clients): disable incompatible environments during discovery (#11…
juliusmarminge Sep 16, 2026
8c18b5b
fix(antigravity): stop health checks from filling the disk with _MEI …
t3dotgg Sep 16, 2026
0ec2b08
fix(mobile): bare t3code:// links no longer reset navigation to Home …
SunkenInTime Sep 16, 2026
eed974c
fix(server): keep Claude rewind when fork history length changes (#11…
maria-rcks Sep 16, 2026
f8500f1
fix(mobile): use native toolbar search for licenses (#12011)
juliusmarminge Sep 16, 2026
0bf2d6b
chore(release): prepare v0.0.41
t3-code[bot] Sep 16, 2026
47ef017
Revert "chore(release): prepare v0.0.41"
juliusmarminge Sep 16, 2026
3060cc4
fix(release): restrict stable channels to main
juliusmarminge Sep 16, 2026
53612cc
fix(server): detect unsupported legacy Android command-line tools (#1…
Yash-Singh1 Sep 16, 2026
fe896e6
chore(release): prepare v0.0.42
t3-code[bot] Sep 16, 2026
0f5a151
fix(web): stop the worktree setup card from flashing and shifting (#1…
juliusmarminge Sep 16, 2026
c1b2ed6
fix(clients): show unsupported environments as neutral rows with thei…
juliusmarminge Sep 16, 2026
6ee0324
fix(clients): hold the discovered machine icon across relay refreshes…
juliusmarminge Sep 16, 2026
bf55408
fix(server): resolve Node for standalone helper scripts (#12033)
juliusmarminge Sep 16, 2026
b900fc9
feat(web): reveal timestamps on tool rows and turn folds (#8641)
saphid Sep 16, 2026
ccf220b
docs: make the standalone installer the primary way to get the CLI (#…
juliusmarminge Sep 16, 2026
f45c6b4
fix(web): submit PR comments with Cmd/Ctrl+Enter (#11994)
flamboh Sep 16, 2026
e8ca3a8
refactor(web): centralize pull request icon state presentation (#11144)
flamboh Sep 16, 2026
0b83045
feat(providers): expose native slash commands across clients (#11519)
maria-rcks Sep 16, 2026
f4ef515
feat(web): add send shortcut and follow-up controls (#12075)
Bil0000 Sep 16, 2026
052c7ae
feat(chat): show provider thinking traces (#11784)
maria-rcks Sep 16, 2026
eff44be
feat(usage): show OpenCode Go, Cursor, and Grok subscription limits (…
maria-rcks Sep 16, 2026
d1a6448
fix(web): dropped folders become path chips on the local environment …
SunkenInTime Sep 16, 2026
384de08
fix(web): adapt provider settings to available content width (#12138)
tris203 Sep 16, 2026
32e8b25
fix(web): show private repository media in pull request tabs (#11706)
maria-rcks Sep 16, 2026
aae361c
fix(review): show complete counts and load large diffs progressively …
tris203 Sep 16, 2026
52ad70e
fix(web): prioritize linked pull requests over automatic diffs (#12142)
maria-rcks Sep 16, 2026
f1b497a
feat(cli): show installer and update download progress (#12044)
juliusmarminge Sep 16, 2026
01e6419
fix(web): simplify agent approval prompts (#12082)
Bil0000 Sep 16, 2026
dda44ed
fix(web): show tooltips for composer environment and workspace contro…
flamboh Sep 16, 2026
22539f2
fix(chat): group thoughts into the changing tool activity line (#12147)
maria-rcks Sep 16, 2026
ed12389
fix(web): keep tool timestamps before disclosure chevrons (#12152)
Yash-Singh1 Sep 16, 2026
394af73
fix(web): default diff panel to working tree (#12139)
maria-rcks Sep 16, 2026
e106fe9
design(mobile): unify Android Material layouts and native controls (#…
PixPMusic Sep 17, 2026
9686cd9
feat(web): choose themes from chat with color previews (#12143)
maria-rcks Sep 17, 2026
e47a11e
fix(web): align follow-up and license settings controls (#12167)
Bil0000 Sep 17, 2026
892b86d
fix(web): align composer task rows (#12165)
maria-rcks Sep 17, 2026
ed88937
fix(mobile): prevent Android compose FAB animation jitter (#12169)
PixPMusic Sep 17, 2026
c1738f1
fix(server): keep large sparse checkouts on the fast checkpoint path …
vedprakash2302 Sep 17, 2026
c12ba75
feat(web): make pull request comments easier to scan (#12150)
maria-rcks Sep 17, 2026
19ee856
fix(server): propagate linked pr changes and settle threads immediate…
maria-rcks Sep 17, 2026
d612d12
fix(web): reuse cached GitHub PR details across entry points (#12168)
maria-rcks Sep 17, 2026
315b723
Remove `new` badge from Fable 5.1 (#12173)
juliusmarminge Sep 17, 2026
962bf62
fix(web): show author avatars in pull request previews (#12125)
extoci Sep 17, 2026
3bee4c2
fix(server): settle cancelled worktree setup before rollback (#12176)
juliusmarminge Sep 17, 2026
4abb07e
feat(mobile): port worktree setup progress and agent handoff (#12177)
juliusmarminge Sep 17, 2026
8130a9f
fix(server): flush checkpoint objects and refs before publishing them…
Mnigos Sep 17, 2026
88d0c40
chore(mobile): bump app version to 1.2.1
t3-code[bot] Sep 17, 2026
d42a3bd
fix(server): keep ready checkpoints when a later placeholder arrives …
Adolanium Sep 17, 2026
901db89
fix(server): keep VCS waits from blocking turn completion (#11970)
Vrtak-CZ Sep 17, 2026
573a8f2
fix(web): keep header spacing stable when sidebar drawer opens (#12162)
flamboh Sep 17, 2026
df466c7
fix(web): fall back when pull request avatars fail (#11728)
tastelessjolt Sep 17, 2026
d359e94
feat(web): enable rich text composer by default (#12160)
juliusmarminge Sep 17, 2026
71d12d8
feat(web): make keybindings searchable from settings search (#12175)
maria-rcks Sep 17, 2026
f17165a
fix(web): preserve thread reading positions (#12144)
maria-rcks Sep 17, 2026
6d1d549
fix(diff): collapse files by default (#12190)
maria-rcks Sep 17, 2026
886c834
fix(web): folder links from chat open the file tree instead of a brok…
pc-style Sep 17, 2026
712f8ca
feat(web): command palette search matches thread IDs (#11185)
saphid Sep 17, 2026
01eb4b9
fix(web): align notification icons with titles (#12202)
maria-rcks Sep 17, 2026
2a47fc9
fix(skills): support unicode currency symbols as skill aliases (#12098)
WilgotM Sep 17, 2026
c4ca1b0
feat(settings): add automatic storage cleanup per machine and project…
maria-rcks Sep 17, 2026
c0dded8
feat(web): command palette finds the pull requests and usage pages (#…
flamboh Sep 17, 2026
0150c6a
feat(web): start new threads with multiple models in separate worktre…
maria-rcks Sep 17, 2026
dd9528a
fix(mobile): keep screen awake during dictation (#12227)
juliusmarminge Sep 17, 2026
298f8c9
feat(mobile): add favorites to model picker (#12231)
juliusmarminge Sep 17, 2026
1ab2dfb
fix(desktop): keep preview picking active across subframe navigation …
Lucenx9 Sep 17, 2026
d4d5d12
fix(shared): keep the newest shared usage scan (#10315)
yashranaway Sep 17, 2026
fbc8b96
fix(web): keep thoughts and failed tool calls in one activity row (#1…
maria-rcks Sep 17, 2026
2d8378b
fix(web): avoid reopening settled threads when adding projects (#11804)
dominic-r Sep 17, 2026
c25c3e0
feat(mobile): make Settings easier to navigate and scope (#12272)
juliusmarminge Sep 17, 2026
8db3c25
fix(mobile): prevent overlapping text and UI on Android chat messages…
Exotic209093 Sep 17, 2026
0395008
feat(web): pull request files can be marked as viewed (#7721)
yordis Sep 17, 2026
4749035
fix(web): keep composer banners compact and readable (#12166)
Bil0000 Sep 17, 2026
592021f
fix(web): collapse thoughts within tool groups (#12302)
maria-rcks Sep 17, 2026
675869d
fix(usage): preserve saved totals after transcript cleanup (#12304)
maria-rcks Sep 17, 2026
6deac7a
fix(mobile): show Agent behavior icon on Android (#12316)
juliusmarminge Sep 17, 2026
e26af33
fix(web): keep PR panel actions in the current thread (#12320)
Bil0000 Sep 17, 2026
4cc984f
fix(web): keep browser pages aligned during panel animations (#12329)
juliusmarminge Sep 17, 2026
b17cc2a
fix(server): bound provider event log records before serialization (#…
juliusmarminge Sep 17, 2026
b4620d5
fix(server): reject file rewind in shared workspaces (#12306)
juliusmarminge Sep 17, 2026
6799362
fix(server): capture checkpoints when baseline lookup fails (#12307)
juliusmarminge Sep 17, 2026
d17f46d
fix(server): refresh file search outside checkpoint processing (#12308)
juliusmarminge Sep 17, 2026
fcfd9f9
fix(web): keep chat from jumping when the scroll-to-end pill mounts (…
Yash-Singh1 Sep 17, 2026
1455cb5
fix(server): checkpoint workspaces with empty nested repositories (#1…
saphid Sep 17, 2026
5f22539
chore(review): keep review bots out of the vendored .repos references…
juliusmarminge Sep 18, 2026
3fd21df
fix(server): pass Codex image attachments by path to avoid oversized …
saphid Sep 18, 2026
256e630
feat(web): filter sidebar from thread menu (#8719)
saphid Sep 18, 2026
9051ed9
feat(web): open diff files from a right-click context menu (#11842)
saphid Sep 18, 2026
3fd5d64
fix(web): keep numbered jumps from stealing browser tabs (#12315)
Yash-Singh1 Sep 18, 2026
53510d4
fix(mobile): define Clerk colors in every Uniwind theme (#12344)
juliusmarminge Sep 18, 2026
8583eac
refactor(web): reuse searchable picker inputs (#12353)
juliusmarminge Sep 18, 2026
5a39013
fix(web): share touch-visible pull request edit actions (#12370)
juliusmarminge Sep 18, 2026
05a8c60
fix(mobile): share accessible connection trace controls (#12371)
juliusmarminge Sep 18, 2026
a1390ac
fix(mobile): share settings control row layout (#12356)
juliusmarminge Sep 18, 2026
6088c81
refactor(web): share diagnostic process actions (#12358)
juliusmarminge Sep 18, 2026
1433740
refactor(mobile): share Android toolbar search fields (#12359)
juliusmarminge Sep 18, 2026
4aa841a
refactor(web): share settings group surfaces (#12360)
juliusmarminge Sep 18, 2026
8eb1f6e
refactor(web): reuse inline settings actions (#12362)
juliusmarminge Sep 18, 2026
767a5db
refactor(mobile): share thread list section controls (#12363)
juliusmarminge Sep 18, 2026
18dcc43
refactor(mobile): share connection form fields (#12364)
juliusmarminge Sep 18, 2026
1a2a03f
refactor(mobile): share local environment lists (#12365)
juliusmarminge Sep 18, 2026
58fcae6
refactor(mobile): share file preview feedback (#12368)
juliusmarminge Sep 18, 2026
fa2decf
refactor(web): share standalone page layout (#12354)
juliusmarminge Sep 18, 2026
c7fa1e9
fix(mobile): share settings action row defaults (#12369)
juliusmarminge Sep 18, 2026
cc39ec1
fix(mobile): share request action button defaults (#12366)
juliusmarminge Sep 18, 2026
9946541
fix(web): share accessible color picker controls (#12355)
juliusmarminge Sep 18, 2026
818add0
fix(mobile): use singular label for one settings environment (#12282)
juliusmarminge Sep 18, 2026
7a2cce8
feat(mobile): add copy thread ID to thread list actions (#12228)
jakeleventhal Sep 18, 2026
243e944
fix(mobile): remove Android input underline backgrounds (#12394)
juliusmarminge Sep 18, 2026
d547e3b
chore(deps): upgrade Effect to rc.115 and Alchemy to beta.78 (#12326)
juliusmarminge Sep 18, 2026
e3c85ea
chore(refs): sync Effect and Alchemy references to rc.115 and beta.78…
juliusmarminge Sep 18, 2026
7479625
chore(relay): deploy with the Alchemy CLI and publish client config t…
juliusmarminge Sep 18, 2026
c5bbf3d
chore(deps): bump the npm_and_yarn group across 1 directory with 3 up…
dependabot[bot] Sep 18, 2026
56a9bf2
fix(git): prevent stale branch selections from restoring files (#10574)
yashranaway Sep 18, 2026
52e4b44
chore(deps): bump parents that carry vulnerable transitive dependenci…
juliusmarminge Sep 18, 2026
9ea9c3d
fix(web): keep a file-to-symlink type change from crashing the diff v…
Mnigos Sep 18, 2026
ccad9f6
Use T3 Device panel for mobile testing (#12414)
juliusmarminge Sep 18, 2026
bd5dc58
fix(web): client spans reach the trace proxy again (#12332)
yordis Sep 18, 2026
eadeaf2
fix(bitbucket): preserve rate limits from optional PR reads (#12486)
juliusmarminge Sep 18, 2026
9118b6d
fix(mobile): synchronize native permission registry access (#12482)
juliusmarminge Sep 18, 2026
ed6fe33
fix(build): retain multiple license notices for one package (#12489)
juliusmarminge Sep 18, 2026
dcdf5e6
fix(build): parse executable imports without matching source strings …
juliusmarminge Sep 18, 2026
4c61e3d
fix(mobile): synchronize native notification delegates (#12483)
juliusmarminge Sep 18, 2026
80c1f77
fix(relay): accept delegated thread IDs in activity routes (#12484)
juliusmarminge Sep 18, 2026
c03b240
fix(git): explain fetch failures without exposing remote output (#12485)
juliusmarminge Sep 18, 2026
c557bb1
fix(web): sidebar search matches message content (#11761)
koushikxd Sep 18, 2026
6d68677
fix(server): restore secrets when settings persistence fails (#12487)
juliusmarminge Sep 18, 2026
8ebb611
fix(ci): accept V2 transfer reports without cross-scenario comparison…
juliusmarminge Sep 18, 2026
e84f23a
fix(web): speed up PR previews with fewer GitHub requests (#11825)
dominic-r Sep 18, 2026
869347b
fix(server): retry transient git failures during checkpoint capture (…
saphid Sep 18, 2026
4d36142
fix(mobile): keep archived threads visible during iOS search (#12420)
juliusmarminge Sep 18, 2026
e0649ed
perf(mobile): isolate Material You conversion on Android (#12379)
juliusmarminge Sep 18, 2026
53830d4
perf(mobile): isolate iOS Live Activity imports (#12380)
juliusmarminge Sep 18, 2026
7e7cd32
refactor(mobile): split home headers by platform (#12381)
juliusmarminge Sep 18, 2026
429d66c
refactor(mobile): split native menus by platform (#12382)
juliusmarminge Sep 18, 2026
dec0732
refactor(mobile): isolate thread row appearance by platform (#12383)
juliusmarminge Sep 18, 2026
7230f6b
refactor(mobile): split settings selection rows by platform (#12384)
juliusmarminge Sep 18, 2026
4fb9dfc
refactor(mobile): centralize platform header rendering (#12388)
juliusmarminge Sep 18, 2026
989bde8
refactor(mobile): configure thread headers through the shared core (#…
juliusmarminge Sep 18, 2026
54bbed6
refactor(mobile): share file header actions and search configuration …
juliusmarminge Sep 18, 2026
7ee60f4
refactor(mobile): share terminal header and menu configuration (#12391)
juliusmarminge Sep 18, 2026
aba1c63
refactor(mobile): share archived thread header configuration (#12399)
juliusmarminge Sep 18, 2026
88b9226
refactor(mobile): compose review menus through the shared header (#12…
juliusmarminge Sep 18, 2026
93e0416
feat(mobile): search projects when starting a task (#12496)
juliusmarminge Sep 18, 2026
82cd1d1
fix(mobile): preserve multiple model favorites (#12505)
juliusmarminge Sep 18, 2026
3bb06ad
feat(server): export log records over OTLP (#12493)
yordis Sep 18, 2026
ea15f17
fix(mobile): use native settings and snooze controls (#12512)
juliusmarminge Sep 18, 2026
d99bc5a
feat(web): sort pull requests by what is blocked on me (#12508)
flamboh Sep 18, 2026
8c3b5be
fix(mobile): prefer pull-to-refresh on list screens (#12515)
juliusmarminge Sep 18, 2026
de6a230
fix(acp): accept SDK elicitation requests (#11294)
shivamhwp Sep 19, 2026
bd0b9ed
fix(release): read relay configuration without loading deployment pro…
juliusmarminge Sep 19, 2026
4931d73
fix(ci): reconcile native change labels against pinned commits (#12517)
juliusmarminge Sep 19, 2026
e74c668
fix(release): strip Alchemy progress before parsing relay state (#12519)
juliusmarminge Sep 19, 2026
9cb586a
refactor: remove obsolete code (#9917)
t3dotgg Sep 19, 2026
cb3d95c
fix(server): release oversized pull request diff cache entries (#12523)
juliusmarminge Sep 19, 2026
8231193
feat(mobile): view and control agent devices (#12531)
juliusmarminge Sep 19, 2026
5378f87
fix(preview): recover host registration after request timeouts (#12535)
juliusmarminge Sep 19, 2026
0f1b572
fix(mobile): align built-in theme colors with desktop (#12534)
juliusmarminge Sep 19, 2026
82059df
feat(desktop): export main process telemetry over OTLP (#12520)
yordis Sep 19, 2026
efb9693
fix(codex): surface app permission requests as approvable (#7861)
Exotic209093 Sep 19, 2026
a8693eb
chore(desktop): leave main process metrics export off until a metric …
juliusmarminge Sep 19, 2026
803f94e
fix(release): drop placeholder allowBuilds entry that broke desktop b…
juliusmarminge Sep 19, 2026
29a23fd
fix(mobile): adapt workspace navigation and expand controls (#12551)
juliusmarminge Sep 19, 2026
7a326c2
chore(mobile): add dev client script with preview environment (#12558)
juliusmarminge Sep 19, 2026
408ff8a
fix: detect installed editors outside PATH (#12439)
Bil0000 Sep 19, 2026
dfbb11b
fix(web): show plain text in collapsed thought previews (#12377)
Bil0000 Sep 19, 2026
9accc56
fix(web): wrap long titles in confirmation dialogs (#12571)
saphid Sep 19, 2026
b44c1ce
fix(mobile): keep the Android composer placeholder on one line (#12605)
SunkenInTime Sep 19, 2026
8dd0247
fix(web): restore providers settings heading (#12552)
maria-rcks Sep 19, 2026
7810fb2
Add new GitHub user 'yordis' to VOUCHED.td (#12546)
juliusmarminge Sep 19, 2026
f9e8f57
chore: vouch cestercian (#12638)
juliusmarminge Sep 19, 2026
dcf8942
fix(web): keep desktop annotation screenshots under CSP (#12636)
cestercian Sep 19, 2026
e367256
fix(web): keep typed text when a question option is clicked (#12577)
cestercian Sep 19, 2026
63ff337
fix(server): empty Claude homePath shares continuation with ~/.claude…
cestercian Sep 19, 2026
52d08a1
fix(desktop): include SnapShot app text for Flatpak and GTK4 (#12635)
cestercian Sep 19, 2026
d6f2913
fix(server): surface ACP stderr when cursor-agent exits at session st…
cestercian Sep 19, 2026
599c977
fix(web): align pull request state glyph to top of row (#11268)
akash3444 Sep 20, 2026
7445aa7
fix(web): align menu item icons in pull request detail panel (#11263)
akash3444 Sep 20, 2026
4a560b4
fix(web): honor whitespace settings in pull request diffs (#12438)
Bil0000 Sep 20, 2026
0ff87f2
fix(web): keep citation comment when popover is dismissed (#10831)
flamboh Sep 20, 2026
c14f601
fix(web): keep narrow chat headers readable and aligned (#12453)
shivamhwp Sep 20, 2026
fa1e171
refactor(observability): hold OTLP export settings per signal (#12657)
yordis Sep 20, 2026
ead1dee
fix(web): explain what enabling network access means in its confirmat…
Mnigos Sep 20, 2026
9f0c9f7
fix(web): reuse current PR status in the sidebar (#12545)
flamboh Sep 20, 2026
6a699f0
fix(web): stabilize pull request loading layout (#12721)
flamboh Sep 20, 2026
55c2427
fix(desktop): align preview recording cursors and show input feedback…
juliusmarminge Sep 20, 2026
7ade2d2
fix(web): the Run on / Workspace menu closes after a pick (#12685)
Mnigos Sep 20, 2026
3cfebf4
fix(web): keep portaled menus clickable over Electron drag regions (#…
maria-rcks Sep 20, 2026
5d9e27a
fix(web): render citations in queued messages (#12403)
maria-rcks Sep 20, 2026
2d8f9a8
fix(web): keep the timeline still when the resting composer expands (…
flamboh Sep 20, 2026
45e06f4
fix: composer hero reads project name to screen readers (#12397)
Leos-Khai Sep 20, 2026
f6cc6bc
fix(mobile): respect word wrap in diffs (#12590)
jakeleventhal Sep 20, 2026
adcd908
fix(web): allow full contrast in assistant replies (#12405)
maria-rcks Sep 20, 2026
9334924
fix(web): pull request chips share the link hover preview (#12719)
flamboh Sep 20, 2026
584450a
fix(web): compact the worktree setup glass popover (#12802)
maria-rcks Sep 20, 2026
67285e4
fix(web): route keyboard submit through the primary worktree action (…
maria-rcks Sep 20, 2026
c789cd1
fix(web): skip image inline chip when composer is empty (#12528)
maria-rcks Sep 20, 2026
f4d979a
fix(web): only show notice details when text is clipped (#12760)
t3-code[bot] Sep 20, 2026
9f73ca3
fix(devices): recover simulator streams after failures (#12639)
juliusmarminge Sep 20, 2026
1ba471a
chore(server): bump device tooling versions (#12809)
juliusmarminge Sep 21, 2026
2b17823
fix: allow more attachments without raising the image payload budget …
Bil0000 Sep 21, 2026
051a405
fix(web): device Reconnect starts one stream instead of two (#12808)
juliusmarminge Sep 21, 2026
58f8981
fix(server): tolerate shutting down an iOS simulator that is already …
juliusmarminge Sep 21, 2026
411da2a
feat(web): use the linked pull request row layout on the pull request…
maria-rcks Sep 21, 2026
2efb817
fix(clients): keep backslashes in copied Codex citations (#12243)
Lucenx9 Sep 21, 2026
f7efb53
feat(web): truncate branch names and paths in the middle (#12805)
maria-rcks Sep 21, 2026
dca84ef
fix(web): paste markdown with inline code inside bold, italic, or str…
Gigioxx Sep 21, 2026
a9ab904
feat(web): show the pull request refresh spinning in the detail heade…
maria-rcks Sep 21, 2026
a4bc7de
fix(web): dismiss composer suggestions with Escape (#12836)
Yash-Singh1 Sep 21, 2026
a6cb1dd
fix(mobile): keep the source worktree when starting a thread on a bra…
SunkenInTime Sep 21, 2026
6cc7f70
fix(web): keep composer controls visible while they fit (#12837)
maria-rcks Sep 21, 2026
5c5fa5f
feat(devices): show installed and running tool versions per host (#12…
juliusmarminge Sep 21, 2026
3b836f9
feat(devices): show automatic update progress and host retry (#12817)
juliusmarminge Sep 21, 2026
61b25b8
feat(devices): add read-only update discovery and remote ownership (#…
juliusmarminge Sep 21, 2026
790be6d
fix(devices): safely reclaim obsolete managed tool versions (#12819)
juliusmarminge Sep 21, 2026
30e3649
fix(web): match thread notification icons to sidebar status (#12806)
maria-rcks Sep 21, 2026
f391b88
fix(web): move sidebar shelves as one block (#11772)
maria-rcks Sep 21, 2026
6b0a04a
fix(web): offer undo after unpinning a thread (#10744)
saphid Sep 21, 2026
5781b52
feat(web): undo settle, snooze and archive, with a mod+z shortcut (#1…
juliusmarminge Sep 21, 2026
1eeeabb
fix(mobile): use a proper pull request icon on iOS (#12855)
juliusmarminge Sep 21, 2026
b379b5b
test(web): remove redundant favicon test (#12856)
t3-code[bot] Sep 21, 2026
1de563c
feat(devices): offer manual updates in tool version details (#12877)
juliusmarminge Sep 21, 2026
371b52d
feat(web): answer pull request actions on the row at once (#12843)
maria-rcks Sep 21, 2026
f217ebd
feat(web): merge the comment and review buttons into one composer
Bil0000 Sep 21, 2026
0f9875c
fix(web): keep both composer panes mounted across a mode switch
Bil0000 Sep 21, 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.
21 changes: 0 additions & 21 deletions .agents/skills/ios-debugger-agent/LICENSE

This file was deleted.

64 changes: 0 additions & 64 deletions .agents/skills/ios-debugger-agent/SKILL.md

This file was deleted.

9 changes: 0 additions & 9 deletions .agents/skills/ios-debugger-agent/agents/openai.yaml

This file was deleted.

21 changes: 0 additions & 21 deletions .agents/skills/ios-simulator-browser/LICENSE

This file was deleted.

51 changes: 0 additions & 51 deletions .agents/skills/ios-simulator-browser/SKILL.md

This file was deleted.

4 changes: 0 additions & 4 deletions .agents/skills/ios-simulator-browser/agents/openai.yaml

This file was deleted.

106 changes: 28 additions & 78 deletions .agents/skills/test-t3-app/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,91 +1,41 @@
---
name: test-t3-app
description: Launch, retain, and test the T3 Code web app in isolated development environments, including first-try browser authentication with one-time pairing URLs, pairing-token recovery, worktree-safe state directories, cross-turn dev server lifecycle, and direct SQLite inspection or fixture seeding. Use when an agent needs to run T3 locally, iteratively test UI behavior with a human, recover from an expired or consumed pairing token, isolate dev state, or prepare test data in state.sqlite.
description: Test T3 Code's web and desktop UI through its built-in Browser panel against isolated development state. Use for browser verification, browser pairing recovery, and test fixtures. Use test-t3-mobile for native mobile verification.
---

# Test T3 App
# Test T3 web and desktop

Use this skill for the web client. For iOS Simulator, Android Emulator, or physical-device testing against an isolated T3 backend, use the sibling [`test-t3-mobile`](../test-t3-mobile/SKILL.md) skill.
Use T3's built-in Browser panel for verification. If its tools are absent or
the panel reports unavailable, explain the blocker and stop verification.
Do not install or switch to another automation system. For native mobile
testing, use [test-t3-mobile](../test-t3-mobile/SKILL.md).

## Start an isolated web environment
## Start the app

1. Run commands from the repository root.
2. Choose a base directory that belongs only to the current worktree or test:
- Use the repository's ignored `.t3` directory for reusable worktree-local state.
- Use `mktemp -d /tmp/t3code-test.XXXXXX` for disposable state and retain the printed absolute path.
3. Start the full web stack with `vp run dev`. In a linked worktree it defaults to that worktree's gitignored `.t3`; pass `--home-dir <base-dir>` only when the test needs a different isolated directory.
4. Keep the terminal session alive and read the selected server port, web port, base directory, and pairing URL from its output.
Reuse this task's healthy dev server. Otherwise run `vp run dev` from the
repository root and retain its terminal session. Use the worktree's ignored
`.t3` state and read the actual ports and pairing URL from the dev-runner output.
Never run against `~/.t3/userdata` or set `VITE_HTTP_URL` or `VITE_WS_URL`.

Treat a base directory as disposable only when it was created or deliberately selected for the current test. Never delete or directly seed the shared `~/.t3` directory. Prefer starting with a new temporary base directory over clearing state of uncertain ownership.
Test with meaningful project and thread data. Read
[references/sqlite-fixtures.md](references/sqlite-fixtures.md) only when
inspecting or seeding SQLite. Stop the test server before direct fixture writes.

The worktree-local default deliberately outranks an ambient `T3CODE_HOME`; do not pass the shared home through to a worktree dev server.
## Use the Browser panel

The dev runner disables browser auto-open by default. Do not pass `--browser` during automated testing: an automatically opened page can consume the one-time bootstrap token before the controlled browser uses it.
Call `preview_status`, then `preview_open` if the Browser panel is
closed. Navigate to the complete startup pairing URL once with
`preview_navigate`, then use `preview_snapshot` and T3's interaction tools.
If the token was consumed or expired, run `node apps/server/src/bin.ts pair`
for a fresh one. Keep using the same tab.

## Preserve the environment while iterating
## Verify and retain

Treat the overall testing or implementation loop—not an assistant turn or one verification pass—as the environment lifecycle boundary.
Exercise the affected flow and capture the state that proves it works. Keep
the server, state, and panel available while the user inspects or iterates.
An assistant turn ending is not teardown. Stop only processes you started,
using retained terminal sessions or captured PIDs.

- Keep the dev process, base directory, selected ports, authenticated browser tab, registered projects, and seeded fixtures alive while the user may inspect the result or request follow-up changes.
- Do not stop the server merely because one verification pass completed or because you are yielding a response to the user.
- Before starting another environment, check whether the existing process and browser tab still serve the task. Reuse them when healthy instead of discarding useful state.
- On a later turn, verify that the existing process is alive and reuse its printed ports and base directory. If it exited, restart with the same base directory; create a new pairing token only when the browser session is no longer valid.
- Tell the user when a test environment remains available, including its non-secret web URL when useful. Never include a pairing token.

## Authenticate the browser on the first navigation

1. Wait for the server log that says authentication is required and includes a URL ending in `/pair#token=...`.
2. Use the controlled in-app browser or browser-automation surface available to the agent. Do not use a system-browser launch command during automated testing.
3. Open that complete URL exactly once as the controlled browser's first navigation. Preserve the fragment and token verbatim.
4. Wait for the pairing exchange and redirect to finish before navigating elsewhere.
5. Continue in the same browser context so its stored bearer session remains available.

Treat pairing URLs as secrets. Do not copy them into final responses, screenshots, committed files, or durable logs. A pairing token is short-lived and single-use; opening the URL in another browser or opening it twice can consume it.

## Recover a consumed or expired pairing token

Create another token against the same database and web URL as the running dev server:

```bash
T3CODE_PORT=<server-port> node apps/server/src/bin.ts auth pairing create \
--base-dir <base-dir> \
--dev-url <web-url> \
--base-url <web-url> \
--ttl 15m \
--label agent-ui-test
```

Use the `Pair URL` from this command once. Derive `<server-port>` and `<web-url>` from the current dev-runner output, including any automatically selected port offset. Setting `T3CODE_PORT` keeps the administrative CLI from probing for an unrelated free port.

Always pass `--dev-url` for a dev-runner environment so the generated pairing URL uses the current web origin. An explicit base directory stores runtime state in `<base-dir>/userdata`; the `<base-dir>/dev` fallback is only used by an implicit dev home. A worktree-local `.t3` counts as explicit, so its state lives in `<worktree>/.t3/userdata`. Use `auth pairing list` to inspect active token metadata; it intentionally cannot reveal token secrets.

## Inspect or seed SQLite state

Read [references/sqlite-fixtures.md](references/sqlite-fixtures.md) before changing the database.

- Use `node apps/server/scripts/t3-sqlite-state.ts query` for schema discovery and read-only checks.
- Stop the dev server before using `node apps/server/scripts/t3-sqlite-state.ts exec`, then restart it with the same base directory.
- Seed projection tables only for disposable UI fixtures. Use application commands and APIs when testing business behavior or projection correctness.
- Use the auth CLI, not direct `auth_*` table edits, for pairing and sessions.

The helper refuses to write to the shared `~/.t3` directory by default and creates a database backup before each mutation.

## Tear down only when the testing loop is finished

Tear down when the user explicitly asks, confirms the iteration is finished, or the overall task is genuinely complete with no pending human review. Do not infer completion from the end of an assistant turn.

When teardown is appropriate:

1. Stop the dev process with its terminal interrupt.
2. Preserve the isolated base directory when it contains useful reproduction evidence or state for a likely follow-up.
3. Otherwise remove only a path created for this test after resolving and verifying the exact target.

If completion is uncertain, keep the environment alive and mention that it is retained for further iteration. A fresh isolated base directory remains the safest reset when authentication, migrations, or fixture state becomes ambiguous.

## Troubleshoot predictably

- If the browser shows an unauthenticated pairing screen, issue a new token instead of retrying the consumed URL.
- If the pairing URL is no longer visible, create a replacement token with both `--dev-url` and `--base-url`.
- If the replacement token is rejected, verify that the CLI and server use the identical absolute base directory and web URL.
- If the UI shows unexpected data, verify that every command uses the identical explicit base directory before editing anything.
- If ports move because another instance is running, trust the current dev-runner output rather than assuming ports `13773` and `5733`.
When sharing is requested, start with `vp run dev --share` and give the user
a fresh complete pairing URL that you have not consumed. Keep other credentials
out of screenshots, commits, and replies.
4 changes: 2 additions & 2 deletions .agents/skills/test-t3-app/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
interface:
display_name: "T3 App Testing"
short_description: "Launch and retain isolated T3 test environments"
default_prompt: "Use $test-t3-app to launch an isolated T3 environment and iteratively test it in the browser while preserving state."
short_description: "Test web and desktop in T3's Browser panel"
default_prompt: "Use $test-t3-app to verify the affected web or desktop flow through T3's Browser panel."
Loading
Loading