Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2238 commits
Select commit Hold shift + click to select a range
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
33cb911
fix(mobile): stop iOS autocorrect from rewriting search queries (#12949)
juliusmarminge Sep 21, 2026
2c2fa8c
fix(web): pull request embed chip shows the state icon (#12951)
flamboh Sep 21, 2026
2d377bf
fix(web): dismiss selection actions when pressing buttons (#12950)
Yash-Singh1 Sep 21, 2026
d2a90b9
fix(web): name message copy actions accurately (#12865)
saphid Sep 21, 2026
80d9c18
fix(contracts): old message-sent events without turnId no longer stop…
Mnigos Sep 21, 2026
e1cbb70
fix(web): the custom snooze calendar starts the week where the locale…
Mnigos Sep 21, 2026
76cc9b0
chore(mobile): bump app version to 1.3.0
t3-code[bot] Sep 21, 2026
1262d2f
feat(server): let t3.json limit or disable submodule init in new work…
juliusmarminge Sep 22, 2026
742173a
feat(settings): resolve t3.json inside the project settings resolver …
juliusmarminge Sep 22, 2026
0141bc2
feat(settings): choose how new worktrees initialize submodules (#12955)
juliusmarminge Sep 22, 2026
9a609a4
fix(web): show thread undo notice in the sidebar (#12972)
juliusmarminge Sep 22, 2026
5423ba0
feat(web): merge the comment and review buttons into one composer (#1…
Bil0000 Sep 22, 2026
e65bc1c
fix(web): allow text selection when renaming threads (#12935)
carterwsmith Sep 22, 2026
5a61f50
chore(lint): report className restyling of components/ui exports (#12…
juliusmarminge Sep 22, 2026
c26119a
refactor(web): drop className overrides that repeat the base styles (…
juliusmarminge Sep 22, 2026
438bf46
fix(web): close menus when clicking into the browser tab (#11148)
Gigioxx Sep 22, 2026
b5a0f81
refactor(web): give Spinner and RefreshIcon a size prop (#12985)
juliusmarminge Sep 22, 2026
aff9318
fix(web): retry failed attachment uploads after reconnect (#10338)
StiensWout Sep 22, 2026
da6a85b
fix(web): respect panel motion in composer transitions (#11064)
gsimone Sep 22, 2026
7c2702d
fix(web): read panel animation settings in the composer (#13098)
juliusmarminge Sep 22, 2026
f25a8e4
feat(models): add opus 5.5 without changing existing aliases (#13094)
t3-code[bot] Sep 22, 2026
17e3477
Update model manifest with new timestamps and models
juliusmarminge Sep 22, 2026
c0490e9
refactor(web): use ghost-muted where ghost buttons restyled to muted …
juliusmarminge Sep 22, 2026
1a81ea8
refactor(web): fold repeated overrides into ui defaults (#13021)
juliusmarminge Sep 22, 2026
ce98d41
refactor(web): mark the current menu value with MenuRadioGroup (#13022)
juliusmarminge Sep 22, 2026
ed85694
refactor(web): add an active prop to CommandItem (#13023)
juliusmarminge Sep 22, 2026
bbd5cc0
chore(lint): exempt CollapsibleTrigger from no-restyle (#13024)
juliusmarminge Sep 22, 2026
9515016
refactor(web): use icon-xs where icon buttons were forced to size-6 (…
juliusmarminge Sep 22, 2026
b4f1f18
refactor(web): add radius="none" to ScrollArea (#13026)
juliusmarminge Sep 22, 2026
7b54af9
refactor(web): add font="mono" to Input (#13027)
juliusmarminge Sep 22, 2026
be80e36
refactor(web): add SidebarInput (#13028)
juliusmarminge Sep 22, 2026
8d02447
refactor(web): add a label variant to Badge (#13029)
juliusmarminge Sep 22, 2026
7d658c2
refactor(web): give Skeleton three shapes (#13030)
juliusmarminge Sep 22, 2026
aa2b25d
refactor(web): one wrap width for tooltips, plus a code variant (#13031)
juliusmarminge Sep 22, 2026
f3d3fe4
refactor(web): one vertical rhythm for dialog bodies (#13032)
juliusmarminge Sep 22, 2026
18aa703
refactor(web): ghost-muted icons follow the text; add ghost-destructi…
juliusmarminge Sep 22, 2026
4c9fbf1
refactor(web): InlineButton underlines on hover and takes a tone (#13…
juliusmarminge Sep 22, 2026
d7736e0
refactor(web): one minimum width for menus, three widths for popovers…
juliusmarminge Sep 22, 2026
da89e10
refactor(web): every textarea caps its growth; the diff comment box i…
juliusmarminge Sep 22, 2026
016cdb9
refactor(web): stacked sidebar groups share one inset (#13037)
juliusmarminge Sep 22, 2026
e420ef9
refactor(web): Collapsible stays a plain container (#13038)
juliusmarminge Sep 22, 2026
0fa4a85
refactor(web): show more / show less are ordinary sidebar sub-rows (#…
juliusmarminge Sep 22, 2026
0ee02eb
refactor(web): Empty has three sizes (#13040)
juliusmarminge Sep 22, 2026
4321aa2
refactor(web): one row height for select, combobox and radio items (#…
juliusmarminge Sep 22, 2026
1c2f933
refactor(web): render menu and popover triggers through Button (#13042)
juliusmarminge Sep 22, 2026
83bbfa7
refactor(web): sidebar alerts use the standard variants; one keycap (…
juliusmarminge Sep 22, 2026
f193a68
fix(server): bypass owned caches on explicit provider refresh (#13109)
juliusmarminge Sep 22, 2026
d7819c1
chore(devices): bump agent-device to 0.21.12 (#13124)
juliusmarminge Sep 22, 2026
bed0b4c
chore(mobile): drop dead nitro-markdown tgz override and @expo/metro-…
juliusmarminge Sep 22, 2026
242816a
feat(web): show settings scope as a sentence at the top of the page (…
juliusmarminge Sep 22, 2026
db9a067
refactor(web): move settings scope pickers into breadcrumbs (#13165)
Yash-Singh1 Sep 23, 2026
7e65b22
feat(auth): share provider sign-in flows and credential bindings (#12…
juliusmarminge Sep 23, 2026
ec28eef
refactor(mobile): git sheets use uniwind platform variants instead of…
juliusmarminge Sep 23, 2026
3409651
chore(mobile): name the two project favicon caches by their job (#13160)
juliusmarminge Sep 23, 2026
6dcde21
revert(mobile): git sheets back to Platform.OS ternaries (un-guarded …
juliusmarminge Sep 23, 2026
5d493d6
docs(mobile): document the two mobile routes that intentionally skip …
juliusmarminge Sep 23, 2026
5821b77
refactor(mobile): break module cycles with focused extractions (#13151)
juliusmarminge Sep 23, 2026
f223312
fix(server): generate PR diffs from branch changes (#13170)
Yash-Singh1 Sep 23, 2026
68607c5
fix(web): preserve nested scroll behavior in chat timeline (#13167)
Yash-Singh1 Sep 23, 2026
b954af6
test(web): cover usage model ordering without static markup (#13104)
flamboh Sep 23, 2026
e4422ee
fix(desktop): find linuxbrew node for the WSL backend (#7827)
CodyRay Sep 23, 2026
ca864a2
chore(models): use GPT-6 Luna for text generation (#13115)
extoci Sep 23, 2026
a493946
fix(mobile): keep ordinary offline outbox failures out of console.war…
juliusmarminge Sep 23, 2026
96c4bfa
feat(providers): check remote compatibility ranges (#13130)
juliusmarminge Sep 23, 2026
2eaff08
chore(lint): keep mobile theme escape-hatch allowlist honest (#13146)
juliusmarminge Sep 23, 2026
6975efd
fix(web): the pull request badge reads at the meta size again (#13175)
juliusmarminge Sep 23, 2026
b919961
fix(mobile): uniwind platform variants stay guarded on both platforms…
juliusmarminge Sep 23, 2026
21be723
refactor(mobile): git sheets use uniwind platform variants instead of…
juliusmarminge Sep 23, 2026
db898a3
refactor(mobile): remaining className platform ternaries become class…
juliusmarminge Sep 23, 2026
219c1d2
fix(web): align provider emails without clipping (#13174)
Derpedyea Sep 23, 2026
151324b
perf(mobile): recycle the default v2 home list and scope the snooze m…
juliusmarminge Sep 23, 2026
0c91f68
refactor(mobile): retire the legacy grouped thread list (#13183)
juliusmarminge Sep 23, 2026
5975ec7
fix(server): background PR checks spend less GitHub quota (#13189)
juliusmarminge Sep 23, 2026
18de6bb
fix(server): background PR sync reads summaries in batches (#13198)
juliusmarminge Sep 23, 2026
eafb4a9
fix(server): GitHub PR lookups stop probing owner-qualified heads (#1…
juliusmarminge Sep 23, 2026
aca3c87
chore(mobile): clear the legacy-list deletion fallout (#13203)
juliusmarminge Sep 23, 2026
29931dd
hatch/variant functions (#13191)
juliusmarminge Sep 23, 2026
266d70c
refactor(web): context chips render through one ContextChip component…
juliusmarminge Sep 23, 2026
361b047
refactor(web): ui components drop their secondary className props (#1…
juliusmarminge Sep 23, 2026
866fc90
refactor(web): menu triggers and items stop restyling ui/menu (#13205)
juliusmarminge Sep 23, 2026
2107939
refactor(web): field controls stop restyling Input, Select, Combobox …
juliusmarminge Sep 23, 2026
f465227
refactor(web): app code stops restyling sidebar, popover, table and m…
juliusmarminge Sep 23, 2026
71c9b69
refactor(web): Button consumers outside the composer stop restyling i…
juliusmarminge Sep 23, 2026
0e512db
refactor(web): composer controls own their look instead of restyling …
juliusmarminge Sep 23, 2026
10882be
chore(web): no-restyle fails lint, and the ceiling gate goes (#13210)
juliusmarminge Sep 23, 2026
23c7ab9
fix(mobile): recover from screen render errors (#13197)
juliusmarminge Sep 23, 2026
829af7b
feat(web): navigate back and forward with mod+[ and mod+] (#13212)
juliusmarminge Sep 23, 2026
b21c545
fix(web): sort title matches by recent activity (#13219)
Yash-Singh1 Sep 23, 2026
eb6c170
test(desktop): remove redundant keyring module-load test (#13220)
t3-code[bot] Sep 23, 2026
f5ef0dd
chore(mobile): bump app version to 1.3.1
t3-code[bot] Sep 23, 2026
4c8fed5
fix(context): apply Claude and Codex window choices
Bil0000 Sep 23, 2026
3073888
fix(test): allow JSON in Codex mock fixture
Bil0000 Sep 23, 2026
c39f5bf
fix(codex): serialize context forks and stop targeting
Bil0000 Sep 23, 2026
8c223ec
fix(codex): reset unsupported model context and keep Stop responsive
Bil0000 Sep 23, 2026
c1dfb7d
fix(context): preserve Claude work and use native GPT defaults
Bil0000 Sep 23, 2026
3afde43
fix(claude): restart when selecting 1M from unset window
Bil0000 Sep 23, 2026
ff0bad4
fix(codex): protect queued turns and Stop during context forks
Bil0000 Sep 23, 2026
f24af30
fix(codex): bound stopped turns and avoid stale completions
Bil0000 Sep 23, 2026
7e90300
fix(codex): close session when Stop cannot be confirmed
Bil0000 Sep 23, 2026
4692017
ci: retry flaky VCS test shard
Bil0000 Sep 23, 2026
7237fd5
feat(context): discover Codex limits for new GPT models
Bil0000 Sep 23, 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