Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
411 commits
Select commit Hold shift + click to select a range
70c423a
fix(web): usage page loses the cost quality panel, gains a back butto…
t3dotgg Aug 9, 2026
a6c9b41
feat(server): agents can now open the images you paste into chat (#5757)
t3dotgg Aug 9, 2026
5208bde
fix(web): pinned reorder no longer reshuffles while writes land (#5767)
t3dotgg Aug 9, 2026
288d8e3
feat(web): overhaul project settings into a real settings page (#5768)
t3dotgg Aug 9, 2026
886195e
fix(web): usage totals no longer jump while devices report in (#5772)
t3dotgg Aug 9, 2026
5bb8c03
fix(server): settle no longer leaves monitors and dev servers running…
t3dotgg Aug 9, 2026
6dbffa0
feat: pick worktree or current checkout per project (#5766)
t3dotgg Aug 9, 2026
6f69b44
fix(web): sidebar rows show the branch again, not a truncated plan st…
t3dotgg Aug 9, 2026
ddaa6af
feat(server): vp run migrate-dev-db seeds worktree dev dbs with real …
t3dotgg Aug 9, 2026
05eb051
feat(web): keep unsent drafts one click away in the sidebar (#5777)
t3dotgg Aug 9, 2026
076e904
feat(web): project icons can be chosen manually (#5775)
t3dotgg Aug 9, 2026
ba9c9ae
fix(server): one greedy agent process no longer takes down the whole …
t3dotgg Aug 9, 2026
963ebf5
ci: label-gated hosted-web preview deploys (#5465)
t3dotgg Aug 9, 2026
1a003e3
Add cross-platform mobile usage dashboard (#5743)
juliusmarminge Aug 9, 2026
285cf59
fix(web): preserve desktop route during Clerk auth (#5770)
wobsoriano Aug 9, 2026
02f4ce5
fix(web): match create theme and import theme buttons to the standard…
UtkarshUsername Aug 9, 2026
deb901d
fix(server): favicon resolution no longer pins the event loop (#5538)
murenovich Aug 9, 2026
062b461
fix(shared): bound the file-link label so bracket runs stop rescannin…
tsouth89 Aug 9, 2026
659986c
fix(web): thread title button no longer eats the drag area (#5857)
nathangerday Aug 9, 2026
bd18d8d
fix(web): unify usage page chrome (#5823)
t3-code[bot] Aug 9, 2026
c8ad4b8
fix(shell): add ~/.local/bin to the Windows CLI resolver so native-in…
arhxam Aug 9, 2026
83d769f
fix(web): match settings search shortcut styling to command palette's…
UtkarshUsername Aug 9, 2026
f993fa1
fix(mobile): long-pressing a thread row no longer navigates into the …
juliusmarminge Aug 9, 2026
0d38866
fix(server): usage no longer double-counts forked Codex sessions (#5887)
t3dotgg Aug 9, 2026
2abe668
fix(server): sandbox user-provided SVGs (#5916)
t3dotgg Aug 9, 2026
9a1472d
fix(web): match usage titlebar text styling (#5897)
t3-code[bot] Aug 10, 2026
f21d5e4
Move project settings to contextual project routes (#5923)
juliusmarminge Aug 10, 2026
5da4533
Preserve back navigation when opening settings (#5930)
juliusmarminge Aug 10, 2026
73b2e8f
Automate production mobile EAS releases (#5609)
juliusmarminge Aug 10, 2026
9690680
Add settings and usage breadcrumbs (#5929)
juliusmarminge Aug 10, 2026
cbd55d6
fix(web): correct model picker trigger padding (#5935)
Chrono-byte Aug 10, 2026
0ca9fb3
fix(web): show worktree icon in sidebar v2 (#5909)
tris203 Aug 10, 2026
ef051bd
fix(web): enable restore defaults after theme mix changes (#5928)
Lucenx9 Aug 10, 2026
d432100
fix(web): trait menu closes after you pick a level (#5879)
t3dotgg Aug 10, 2026
f0e2975
fix(web): align project name with headline (#5864)
carterwsmith Aug 10, 2026
3d74474
fix(web): update pills use readable theme foregrounds (#5938)
chrisdeeming Aug 10, 2026
9821bca
fix(web): use themed confirmation dialogs (#5624)
StiensWout Aug 10, 2026
fbcae59
fix(web): use import/export-appropriate icons for theme buttons (#5964)
UtkarshUsername Aug 10, 2026
67ef189
fix(mobile): detect PowerShell cmdlet errors in work log rows (#5726)
myacoub91 Aug 10, 2026
d440442
fix(mobile): stop Android user bubbles with code blocks from overlapp…
Brechard Aug 10, 2026
3b72d17
fix(mobile): parse EAS fingerprint JSON (#5991)
juliusmarminge Aug 10, 2026
78f462c
chore(release): prepare v0.0.33
t3-code[bot] Aug 10, 2026
cad2c93
feat: multi-provider pull requests page with in-app reviews (#4849)
Bil0000 Aug 10, 2026
8de0aa2
perf(desktop): probe the Windows shell environment concurrently (#5878)
tsouth89 Aug 10, 2026
b91a000
feat(web): add duplicate action to the T3 Code default theme (#6013)
UtkarshUsername Aug 10, 2026
0a7c662
fix(web): improve built-in theme contrast (#6000)
chrisdeeming Aug 10, 2026
1b120f3
fix(ci): extend release publish timeout (#6034)
t3-code[bot] Aug 10, 2026
428d9f9
Allow Android tablets to rotate (#5613)
juliusmarminge Aug 10, 2026
a7b0366
fix(web): account for Windows window controls in PR page header (#6049)
UtkarshUsername Aug 10, 2026
9afef94
feat: add three-hour snooze option (#5914)
Noojuno Aug 10, 2026
e5c82d7
fix(mobile): keep chat composer above the Android gesture bar (#5988)
PollyGlot Aug 11, 2026
2ea51bd
fix(server): OpenCode model parsing drops models with a slash in the …
arhxam Aug 11, 2026
59d0c92
fix(web): persist sidebar shelf collapse state (#5136)
PixPMusic Aug 11, 2026
f973097
perf(web): skip base64 for oversized image candidates (#5220)
tarik02 Aug 11, 2026
1fa315e
fix(server): skip Linux libc detection on Windows/macOS (#5354)
bkntr Aug 11, 2026
c14bcca
fix(server): advertise 256-color TERM on Windows terminals (#5693)
yassiEmp Aug 11, 2026
9c7622d
fix(server): handle unborn HEAD in VCS status (#5944)
t3-code[bot] Aug 11, 2026
f5fce74
fix(pull-requests): route self-hosted GitLab remotes (#6061)
GuilhermeVieiraDev Aug 11, 2026
752acbf
feat: add ability to create a new thread in the current project with …
UtkarshUsername Aug 11, 2026
65b005f
feat(web): add Copy Thread ID to the sidebar and chat header thread c…
UtkarshUsername Aug 11, 2026
6676f9c
fix(mobile): stabilize thread composer and interactions (#5986)
juliusmarminge Aug 11, 2026
c842c6f
Add hourly past-24-hour usage view (#6170)
juliusmarminge Aug 11, 2026
3da7f9c
fix(mobile): guard App Store release versions (#6177)
juliusmarminge Aug 11, 2026
ac4780f
fix(web): restore typography font sizes to defaults (#6172)
StiensWout Aug 11, 2026
b30a9bc
feat(web): make environment artwork theme aware (#6183)
juliusmarminge Aug 11, 2026
6befe42
fix(shared): normalize a bare Windows drive root the same as C:\ / C:…
arhxam Aug 11, 2026
220e573
fix(shared): detect Azure DevOps SSH remotes (ssh.dev.azure.com) (#6187)
arhxam Aug 11, 2026
44621c3
feat(web): add back buttons for the pull requests and usage pages in …
UtkarshUsername Aug 11, 2026
1e355a2
fix(web): render dropdowns above toasts (#6165)
Brechard Aug 11, 2026
57b1052
fix(web): thread error banner dismiss survives reconnect and rerender…
myacoub91 Aug 11, 2026
3517201
fix(web): use a clearer pull action icon (#6194)
extoci Aug 11, 2026
083fa4a
feat(web): use OKLCH for theme palettes (#6036)
StiensWout Aug 11, 2026
2db0845
fix(web): use upload icon for disabled push action (#6207)
t3-code[bot] Aug 11, 2026
f0b57ca
feat(web): add Open VSX theme search (#5654)
t3-code[bot] Aug 11, 2026
c196f42
fix(web): clean up composer resize animation (#6209)
extoci Aug 11, 2026
52e5a75
feat(web): compact sidebar footer actions (#6210)
maria-rcks Aug 11, 2026
560d4a4
fix(web): keep sidebar wordmark visible at minimum width (#6246)
extoci Aug 11, 2026
d37a9b0
feat(mobile): add thread title regeneration (#6253)
chrisdeeming Aug 12, 2026
63e6fae
chore: add dara to vouched (#6259)
maria-rcks Aug 12, 2026
5a84614
fix(web): align the composer model picker (#6252)
t3-code[bot] Aug 12, 2026
e1378a1
fix(mobile): keep ordered lists inside user bubbles (#6154)
none23 Aug 12, 2026
b54bfc9
feat(web): a better right panel empty state (#6258)
StiensWout Aug 12, 2026
6fd088a
fix(web): align mobile onboarding header (#6293)
t3-code[bot] Aug 12, 2026
849bac8
fix(connect): preserve CLI OAuth parameters through browser sign-in (…
juliusmarminge Aug 12, 2026
e321667
fix(web): prevent changed files header overlap (#6314)
t3-code[bot] Aug 12, 2026
f131228
fix(web): theme Clerk surfaces (#6300)
StiensWout Aug 12, 2026
b73232b
feat(web): reset sidebar width on double click (#6320)
extoci Aug 12, 2026
8601797
fix(web): align update toast release notes link (#6322)
t3-code[bot] Aug 12, 2026
770946d
fix(web): render tooltips above dropdowns (#6241)
extoci Aug 12, 2026
8d24b51
fix(web): open modified PR clicks in browser (#6278)
t3-code[bot] Aug 12, 2026
18918d1
Fix mobile command popover glass rendering (#6370)
juliusmarminge Aug 12, 2026
e3a9c25
test(mobile): seed snoozed showcase threads (#5155)
PixPMusic Aug 12, 2026
9666b87
fix(web): preserve appearance mode when changing themes (#6343)
extoci Aug 12, 2026
d0b8d63
feat(connect): deregister account environments from any client (#4844)
StiensWout Aug 12, 2026
b28f9bf
feat(web): pull request surfaces — filters & qualifiers, all-server l…
Bil0000 Aug 12, 2026
2eb099f
fix(web): cmd+click sidebar PR numbers open in the browser (#6378)
t3dotgg Aug 12, 2026
ac1264e
feat(web): project favicon and workspace icons in command subtitles (…
gsimone Aug 12, 2026
da6253b
web/settings: fix source control scan on relay environments (#6230)
dominic-r Aug 12, 2026
33f9705
fix(web): make reset zoom hover visible (#6385)
t3-code[bot] Aug 12, 2026
1e59b4c
fix(web): keep the typed prompt when a draft changes repo (#6393)
t3dotgg Aug 12, 2026
6bc6cb6
fix(web): keep diff file lists scrollable past expanded files (#6423)
dominic-r Aug 13, 2026
df19f6c
fix(server): align Codex collaboration prompts (#6432)
none23 Aug 13, 2026
5015d7c
fix(web): keep turn minimap stable as composer grows (#6414)
extoci Aug 13, 2026
97db94c
fix(web): keep pull request panel within viewport (#6451)
Bil0000 Aug 13, 2026
9513e62
Add bil0000 to VOUCHED contributors list (#6462)
maria-rcks Aug 13, 2026
2ab188f
fix: ignore pull request actions in latency tracker (#6476)
t3-code[bot] Aug 13, 2026
9e20194
Remove rebase requirement before opening PR (#6479)
juliusmarminge Aug 13, 2026
fd51561
fix(mobile): extend blockquotes across wrapped lines (#6482)
chrisdeeming Aug 13, 2026
83ad26c
fix(mobile): prevent invalid HTML entities from crashing markdown (#6…
Lucenx9 Aug 13, 2026
1b16ed6
fix(web): avoid Clerk close button overlap (#6442)
t3-code[bot] Aug 13, 2026
2fab18e
fix(web): show unlinked icon when viewport aspect ratio is unlocked (…
UtkarshUsername Aug 13, 2026
92d4a2e
fix(web): scope pull request errors to their environment (#6490)
Adamulek123 Aug 13, 2026
bad1143
fix(mobile): show a real settings cog in the Android sidebar header (…
paul-vd Aug 13, 2026
23d45d9
fix(web): restore default stage artwork colors (#6535)
t3-code[bot] Aug 13, 2026
5ff3a03
fix(web): align sidebar wordmark label (#6086)
WarheadTaylor Aug 13, 2026
96bfa67
fix(web): align the snoozed thread wake icon (#6215)
RakshithBhat03 Aug 13, 2026
db1507e
feat: allow disabling auto-settle on merge (#5880)
t3dotgg Aug 13, 2026
85389b9
Nest mobile task settings in bottom sheets (#6224)
juliusmarminge Aug 13, 2026
5304f3e
chore(mobile): bump app version to 1.0.4
t3-code[bot] Aug 14, 2026
59be6f7
fix(web): simplify the desktop-managed server update banner copy (#6549)
t3dotgg Aug 14, 2026
e15f655
fix(web): show background policy tooltips sooner (#6506)
davidhu2000 Aug 14, 2026
710fd0e
feat(desktop): add favicons to the Browser panel (#5644)
chrisdeeming Aug 14, 2026
9fd788b
fix(preview): only show browser-ready local servers (#6021)
chrisdeeming Aug 14, 2026
7e01d33
perf(build): stop unpacking node_modules wholesale from the Windows a…
tsouth89 Aug 14, 2026
baaeda3
fix: avoid stale Live Activities when publishing is disabled (#6325)
juliusmarminge Aug 14, 2026
8f9ab08
fix(mobile): add breathing room between the git progress overlay and …
PollyGlot Aug 14, 2026
4a2f8b0
fix(web): keep thread rename open during IME composition (#6281)
MichaelCharles Aug 14, 2026
6ae44b4
refactor(mobile): name the iOS nav bar height fallback (#6589)
PollyGlot Aug 14, 2026
b3b4b57
fix(mobile): preserve keyboard suggestions while typing (#6323)
juliusmarminge Aug 14, 2026
21a3669
fix(mobile): prevent OTA update restart crashes (#6324)
juliusmarminge Aug 14, 2026
038560e
fix(web): align every titlebar control cluster on one shared inset (#…
juliusmarminge Aug 14, 2026
184d8ef
fix(mobile): steer active turns by default (#6543)
chrisdeeming Aug 14, 2026
1a65994
fix(web): clarify desktop update status (#6504)
StiensWout Aug 14, 2026
8099140
fix(server): terminal subprocess polling no longer floods the PID spa…
SunkenInTime Aug 14, 2026
1add47b
fix(web): add copying terminal selection with ctrl+c in the web app (…
UtkarshUsername Aug 14, 2026
c9063f0
perf(desktop): speed up Windows update installation (#6169)
StiensWout Aug 14, 2026
196c8ea
fix(web): style sidebar action tooltips (#6371)
t3-code[bot] Aug 14, 2026
9885a84
refactor(web): simplify global styling (#6381)
t3-code[bot] Aug 14, 2026
f071907
fix(server): handle files named HEAD in git status (#6397)
Lucenx9 Aug 14, 2026
e25021a
feat(packaging): maintain AUR packages in-repo (#4128)
maria-rcks Aug 14, 2026
74f7b43
fix(web): bound OKLCH gamut mapping (#6485)
Lucenx9 Aug 14, 2026
57a299a
feat(web): open remote environments in your local editor over SSH (#6…
t3dotgg Aug 15, 2026
d7abd7f
feat(web): refresh workspace layouts and tool activity
maria-rcks Aug 15, 2026
804cba4
revert: refresh workspace layouts and tool activity (#6657)
maria-rcks Aug 15, 2026
48ddb3d
feat(web): older chat timestamps show the date, not just the time (#6…
t3dotgg Aug 15, 2026
8c628f1
fix(web): align pull request action menu rows (#6534)
Bil0000 Aug 15, 2026
6ae9662
fix(web): restore selected themes in dark mode (#6665)
StiensWout Aug 15, 2026
f0ebc62
fix(web): improve Codex usage graph contrast (#6669)
StiensWout Aug 15, 2026
e9ae134
docs: route feature requests to Discussions
juliusmarminge Aug 15, 2026
d8a6dfd
fix(desktop): app zoom no longer zooms the preview browser (#6649)
juliusmarminge Aug 15, 2026
afca73d
fix(server): keep provider notification consumers alive past startSes…
tsouth89 Aug 15, 2026
7547280
fix(server): treat removed Bitbucket permissions endpoint as unknown,…
lnieuwenhuis Aug 15, 2026
672216d
fix(ssh): let cold remote servers finish starting (#6168)
gbarros-dev Aug 15, 2026
1e87029
fix(web): preserve Claude insight line breaks (#4344)
nateEc Aug 15, 2026
a6ac27e
feat(web): accept file drops across the chat workspace (#6636)
dbalders Aug 15, 2026
eaa6c47
fix(web): widen ordered-list marker gutter for 3+ digit item numbers …
lnieuwenhuis Aug 15, 2026
71c6f82
fix(server): bound thread activity hydration (#6153)
t3-code[bot] Aug 15, 2026
48cba7d
fix(web): restore the Archive action in the default sidebar thread me…
lnieuwenhuis Aug 15, 2026
9f26656
fix(web): open diff files from nested projects (#6174)
gbarros-dev Aug 15, 2026
b277cc6
fix(mobile): use tryOpenExternalUrl for markdown links in ThreadFeed …
mohamedmastouri-hue Aug 15, 2026
2cb1a26
fix(web): open the file a bare filename reference names (#6297)
Brechard Aug 15, 2026
ddee418
fix(server): stop the provider title mirror from overwriting real thr…
repparw Aug 15, 2026
178da6b
fix(shared): match source-control providers by DNS label (#6175)
gbarros-dev Aug 15, 2026
b7dbbba
feat(desktop): Chrome-style hold-to-quit (#5508)
Bil0000 Aug 15, 2026
d94fbda
fix(gitlab): submit review comments on context lines (#6348)
tarik02 Aug 15, 2026
db3278f
fix(marketing): keep Grok mark clear of mobile hero copy (#4542)
NicL9923 Aug 15, 2026
3bc4fdf
fix(mobile): recover the QR pairing scanner when camera access is den…
hey-jj Aug 15, 2026
a38cac8
fix(web): keep a long path from running under the folder picker butto…
Sy-D Aug 15, 2026
270489b
fix(terminal): right-click paste works in the terminal (#5240)
StiensWout Aug 15, 2026
4db5075
fix(mobile): explain iOS-only settings on Android (#4981)
danvernon Aug 15, 2026
9bdd912
fix(web): stop counting a workflow coordinator as a working agent (#6…
Rishet11 Aug 15, 2026
6e6d1b4
fix(web): keep floating preview anchored after panel closes (#6547)
AksharP5 Aug 15, 2026
a7c5ad5
fix(web): unstick /connect after in-modal sign-in by redirecting to t…
TorbenWetter Aug 15, 2026
7afa184
fix(web): keep send reachable while a turn is running on mobile (#4781)
AMohamedAakhil Aug 15, 2026
34a12bc
fix(web): reject unsupported composer image types at attach time (#6574)
mdshzb04 Aug 15, 2026
5ffbf3c
Make ClaudeTextGeneration tests hermetic on Windows (#4508)
mihneaptu Aug 15, 2026
143f713
fix(web): show command output in work log (#4083)
LikoKiko Aug 15, 2026
06dd999
fix(web): reserve sibling column width when resizing the right panel …
Lasdw6 Aug 15, 2026
9e61d0f
fix(web): replace whitespace in new ref names with dashes (#6270)
jorj-pineda Aug 15, 2026
c7b14a8
fix(client-runtime): branch list no longer resets while paging throug…
a20hek Aug 15, 2026
b0de385
fix(web): support Shift+Insert terminal paste (#5982)
aoright Aug 15, 2026
d79f975
fix(web): keep the composer glass aligned with the context strip at a…
Williawar Aug 15, 2026
135dc15
fix(codex): keep background memory out of chats (#5468)
AksharP5 Aug 15, 2026
51c6daa
fix(server): treat a missing Codex rollout as a recoverable resume er…
Rishet11 Aug 15, 2026
3cde99b
fix(web): hide provider Update toast action while an update is runnin…
mrmg Aug 15, 2026
e204f5a
fix(desktop): agent shells inherit a UTF-8 locale on macOS (#6236)
Linus-Boehm Aug 15, 2026
474cc5f
fix(server): ignore Claude command lifecycle messages (#6606)
naveed949 Aug 15, 2026
402c9e0
docs: mention Bitbucket user read scope needed by auth probe (#6291)
thamrx Aug 15, 2026
551f4c9
fix(server): return valid preview action results (#5966)
duncan-vc Aug 15, 2026
e9e4697
fix(claude): make "Always allow for session" stick, and only for the …
kakismash Aug 15, 2026
9d0f2fc
fix(ssh): surface a failed remote t3 install instead of a silent 0-by…
TorbenWetter Aug 15, 2026
f075a58
perf(server): persist the wire projection for streaming tool.updated …
mInrOz Aug 15, 2026
c4556ab
fix(web): stop wrapping partial code block selections in markdown fen…
JoeJoeflyn Aug 15, 2026
efe1773
fix(web): hide T3 Connect toggle in web app settings (#5068)
JoeJoeflyn Aug 15, 2026
a5d3532
fix(web): show provider account accent badge in sidebar rows and hove…
vitalyiegorov Aug 15, 2026
c0f9d91
fix(server): wait for concurrent SQLite writers instead of failing wi…
ostapondo Aug 15, 2026
7c55e86
fix(web): reject oversized prompts before provider turn start (#6602)
naveed949 Aug 15, 2026
40ab7bf
feat(web): collapse the question prompt from its header (#6773)
Jardo-51 Aug 15, 2026
684d703
fix(shared): degrade an unknown system time zone to UTC in usage wind…
Rishet11 Aug 15, 2026
ad47d23
fix(claude): discover repo-local .agents/skills in skill discovery (#…
RoshanMhatre Aug 15, 2026
d715c2e
fix(server): let slow provider CLIs raise their discovery probe budge…
CDVolvik Aug 15, 2026
d5465ae
fix(web): retain terminal PR badges after checkout switch (#4755)
sebbonit Aug 15, 2026
ca37b19
fix(web): show selected model in context window tooltip (#4772)
nqrwhal Aug 15, 2026
5e14737
fix(web): scale command details with code font (#6510)
Serendeep Aug 15, 2026
cf7bfd1
fix(web): preserve XML-like tags in user messages (#4133)
0utsights Aug 15, 2026
7c8848e
fix(desktop): route mouse thumb buttons to the in-app browser (#4459)
akosbalogh Aug 15, 2026
f915320
fix(web): keep the final segment of directory paths with a trailing s…
jorvarea Aug 15, 2026
7083bce
Keep block code plain when copying from rendered markdown (#4468)
yashranaway Aug 15, 2026
21b6fb5
fix(web): add web app manifest so installed app keeps its scope (#4306)
Albro3459 Aug 15, 2026
db02c6b
Skip user hooks during Claude capability probes (#4466)
yashranaway Aug 15, 2026
31d0fb6
fix(mobile): use Android monospace font family (#4609)
tastelessjolt Aug 15, 2026
b72d5d7
fix(desktop): timestamps follow the OS locale instead of en-US (#6190)
brzzdev Aug 15, 2026
1a5ff42
fix(web): keep multi-select questions open after the first click (#6646)
RaitP1 Aug 15, 2026
d550b82
fix(web): stop clipping the changed-files expand hover on Windows (#6…
mrmg Aug 15, 2026
86fb47a
fix(server): allow long-running git pushes (#6499)
devchaudhary24k Aug 15, 2026
160c76c
fix(desktop): keep probing backend readiness while the process is ali…
lgwacker Aug 15, 2026
dc0ff8f
fix(server): allow install scripts in npm-global provider updates (#5…
hey-jj Aug 15, 2026
7ce4194
fix: detect SSH remotes with non-git user prefixes (e.g. gitlab@) (#3…
JackatDJL Aug 15, 2026
39167eb
fix(web): describe what Ultracode does in the Reasoning picker (#6092)
delltrak Aug 15, 2026
3b54a2a
fix(server): settle pending user-input requests when a Claude session…
AaronAbuUsama Aug 15, 2026
4fc80fc
fix(server): stop replaying a command receipt for a different aggrega…
ostapondo Aug 15, 2026
07e668d
fix(server): settle snoozed threads immediately (#5379)
0bkevin Aug 15, 2026
277a7cb
fix(mobile): prevent crash on sign out in settings (#4899)
shubhu121 Aug 15, 2026
f8bb92b
fix(mobile): local-checkout threads record their branch so PR badges …
Zeus-Deus Aug 15, 2026
62bb974
fix(web): contain long approval commands (#6503)
Serendeep Aug 15, 2026
e17f244
feat(web): make right panel maximize bindable (#5091)
husseinraoouf Aug 15, 2026
61b2e74
fix(server): respect inherited OPENCODE_CONFIG_CONTENT (#4242)
jonocodes Aug 15, 2026
04f2309
fix(marketing): detect Mac chip on homepage download button (#4197)
mahdibm-dev Aug 15, 2026
931e915
Keep the server alive when a response write hits a dead socket (#4470)
yashranaway Aug 15, 2026
664499c
Limit physical key fallback to non-Latin layout output (#4469)
yashranaway Aug 15, 2026
2fc6762
fix: restore CLAUDE.md symlink target (#3929)
NgoQuocViet2001 Aug 15, 2026
ec141c1
fix(clients): default clone destination to folder plus repo name (#5989)
inayayousfi Aug 15, 2026
20a7042
fix(web): keep timestamp date and time in the same locale (#7081)
juliusmarminge Aug 15, 2026
ad11723
feat(desktop): add signal macOS DMG installer background (#6201)
Brechard Aug 15, 2026
a5e29ed
feat(web): send PR line requests to agent (#6597)
Bil0000 Aug 15, 2026
e58cbb9
fix(web): restore dark theme palette (#6663)
eddy-naboulet Aug 15, 2026
2f486ab
refactor(web): simplify advanced theme controls (#7107)
StiensWout Aug 15, 2026
d484735
fix(web): keep highlighted command menu items clear of the scroll fad…
PollyGlot Aug 15, 2026
2773229
test: remove redundant and stale tests (#6267)
t3-code[bot] Aug 16, 2026
3583cd2
test: favor behavior over implementation details (#7157)
t3-code[bot] Aug 16, 2026
d23b181
feat(mobile): add built-in themes (#6619)
chrisdeeming Aug 16, 2026
4cb676c
docs: point CLAUDE.md at AGENTS.md with an @import instead of a symli…
UtkarshUsername Aug 16, 2026
4c1d99d
fix(web): show filenames when commit dialog paths overflow (#6392)
frarredondo Aug 16, 2026
89c52a3
fix(mobile): keep sheet actions below status bar (#6635)
NitayRabi Aug 16, 2026
bab4b6f
fix(web): align Windows update confirmation copy (#7208)
StiensWout Aug 16, 2026
fee10de
feat(lint): ban native title tooltips and migrate to styled Tooltip (…
UtkarshUsername Aug 16, 2026
ba46f92
fix(pull-requests): protect provider API budgets (#6466)
Bil0000 Aug 16, 2026
949feb6
feat(web): configurable browser defaults in Settings → Integrations (…
juliusmarminge Aug 16, 2026
b994fda
chore: sync with upstream pingdotgg/t3code main
yordis Aug 17, 2026
976fd56
test(persistence): pin the legacy ledger simulation to the upstream i…
yordis Aug 17, 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
  •  
  •  
  •  
19 changes: 4 additions & 15 deletions .agents/skills/test-t3-app/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Treat the overall testing or implementation loop—not an assistant turn or one
- 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.
- Tell the user when a test environment remains available, including its non-secret web URL when useful. Include a pairing token only when the user still needs to pair (see below).

## Authenticate the browser on the first navigation

Expand All @@ -50,24 +50,13 @@ Treat the overall testing or implementation loop—not an assistant turn or one
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.
Keep pairing URLs out of screenshots, committed files, and durable logs. When the user asked for a shared environment, the deliverable IS the full pairing URL — paste it in your reply, token and all; a bare origin is useless to them. A pairing token is short-lived and single-use; opening the URL in another browser or opening it twice can consume it, so never open a URL you handed to the user.

## Recover a consumed or expired pairing token

Create another token against the same database and web URL as the running dev server:
Run `node apps/server/src/bin.ts pair` from the repository root. It discovers the running dev server (worktree `.t3` first, same precedence as the dev runner) and prints a fresh `Pair URL` against the server's current web origin, including a `--share` tailnet origin. Pass `--base-dir <base-dir>` only when the server was started with `--home-dir`, using the identical path.

```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.
Tokens from `pair` carry standard client scopes. The startup pairing URL carries admin scopes; if the user needs Settings → Connections management (`access:write`), restart the server and hand over the new startup URL instead.

## Inspect or seed SQLite state

Expand Down
34 changes: 17 additions & 17 deletions .agents/skills/test-t3-mobile/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Use these client origins:
- Android Emulator: `http://10.0.2.2:<server-port>`
- Physical device: bind the backend to `0.0.0.0` and use the host's reachable LAN origin

Always enter the complete `http://` origin; the mobile host field otherwise assumes HTTPS. When testing web and mobile together, run `vp run dev --home-dir <base-dir> --host 127.0.0.1` instead and do not launch a second backend over the same base directory.
Enter the complete `http://` origin to make the test transport explicit. Bare IP addresses default to HTTP, while bare hostnames default to HTTPS. When testing web and mobile together, run `vp run dev --home-dir <base-dir> --host 127.0.0.1` instead and do not launch a second backend over the same base directory.

## Start or reuse Metro safely

Expand Down Expand Up @@ -125,31 +125,29 @@ Do not start, stop, erase, or reconfigure an emulator owned by another task. Tra

## Pair each client once

Issue a fresh credential against the running backend's exact base directory:
Use the bundled helper from the repository root. It issues a fresh credential against the running backend's exact base directory, opens the existing Add Environment route with the credential in an encoded query parameter, and asks that route to connect once:

```bash
T3CODE_PORT=<server-port> node apps/server/src/bin.ts auth pairing create \
--base-dir <base-dir> \
--base-url <mobile-origin> \
--ttl 15m \
--label agent-mobile-<short-device-id>
.agents/skills/test-t3-mobile/scripts/pair-client.sh \
ios <simulator-udid> <server-port> <base-dir>

.agents/skills/test-t3-mobile/scripts/pair-client.sh \
android <emulator-serial> <server-port> <base-dir>
```

In PowerShell, set `$env:T3CODE_PORT = "<server-port>"` first and run the `node ... auth pairing create` command without the leading assignment.
Run only the command for the selected platform. The helper uses `http://127.0.0.1:<server-port>` for iOS and `http://10.0.2.2:<server-port>` for Android. Pass a fifth argument only when testing a non-development URL scheme.

If the visible Add Environment action is not exposed as a semantic target, open the app's registered route instead of guessing coordinates:
The helper opens this registered route:

```bash
xcrun simctl openurl <simulator-udid> 't3code-dev://connections/new'
adb -s <emulator-serial> shell am start -W \
-a android.intent.action.VIEW \
-d 't3code-dev://connections/new' \
com.t3tools.t3code.dev
```text
t3code-dev://connections/new?pairingUrl=<encoded-pairing-url>&autoConnect=1
```

Run only the command for the selected platform.
The Add Environment route owns the behavior: `pairingUrl` prefills its normal host and token inputs, while `autoConnect=1` submits once in development builds and returns to Home after success. Without `autoConnect`, the same route only prefills the form for manual inspection.

Do not enter pairing hosts or tokens through simulator keyboard automation. Xcode's semantic typer sends HID-style key events through the simulator's active keyboard state, which can corrupt uppercase tokens and punctuation even when the host Mac uses a U.S. input source. The one-shot route is the deterministic pairing path. Use the visible form only as a fallback, and paste credentials rather than typing them character by character.

In T3 Code Dev, open Add Environment and enter the complete `<mobile-origin>` and newly printed `Token`. Verify the expected seeded projects appear before exercising the affected flow.
Verify the expected seeded projects appear before exercising the affected flow.

Pairing credentials are secret, short-lived, and single-use. Create a different credential for every simulator, emulator, physical device, or browser. If an attempt fails, issue a new credential rather than retrying the old one. Do not expose tokens in screenshots, commits, or final responses.

Expand Down Expand Up @@ -183,6 +181,8 @@ Keep local verification focused. Do not turn this workflow into a full repositor
- **Old UI or an old error appears:** verify Metro's worktree, variant, URL, and port before diagnosing the app.
- **The environment remains empty:** verify the platform-specific HTTP origin, use a fresh token, and confirm project seeding used the identical base directory.
- **A second client cannot pair:** pairing tokens are single-use; issue another token.
- **The pairing form opens but does not connect:** confirm the deep link uses the existing `connections/new` route, includes `autoConnect=1`, and carries a freshly minted encoded `pairingUrl`.
- **Pairing text changes case or punctuation:** do not retry semantic typing. Use `scripts/pair-client.sh`; the simulator keyboard layout and HID input path are not reliable for credentials.
- **iOS semantic actions fail:** set explicit XcodeBuildMCP defaults and refresh with `snapshot_ui`.
- **Android cannot reach Metro:** verify `adb reverse` for the exact Metro port and relaunch the development-client URL.
- **Android cannot reach the backend:** use `10.0.2.2`, not `127.0.0.1`, for the Android Emulator.
72 changes: 72 additions & 0 deletions .agents/skills/test-t3-mobile/scripts/pair-client.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#!/usr/bin/env bash

set -euo pipefail

usage() {
echo "Usage: $0 <ios|android> <device-id> <server-port> <base-dir> [url-scheme]" >&2
exit 2
}

[[ $# -ge 4 && $# -le 5 ]] || usage

platform="$1"
device_id="$2"
server_port="$3"
base_dir="$4"
url_scheme="${5:-t3code-dev}"

case "$platform" in
ios)
mobile_origin="http://127.0.0.1:${server_port}"
;;
android)
mobile_origin="http://10.0.2.2:${server_port}"
;;
*)
usage
;;
esac

repo_root="$(git rev-parse --show-toplevel)"
cd "$repo_root"

if ! pairing_output="$({
T3CODE_PORT="$server_port" node apps/server/src/bin.ts auth pairing create \
--base-dir "$base_dir" \
--base-url "$mobile_origin" \
--ttl 15m \
--label "agent-mobile-${device_id:0:8}"
} 2>&1)"; then
echo "Could not mint a mobile pairing credential." >&2
exit 1
fi

pairing_url="$(printf '%s\n' "$pairing_output" | sed -n 's/^Pair URL: //p' | tail -n 1)"
if [[ -z "$pairing_url" ]]; then
echo "Could not parse the mobile pairing URL." >&2
exit 1
fi

deep_link="$(PAIRING_URL="$pairing_url" URL_SCHEME="$url_scheme" node - <<'NODE'
const query = new URLSearchParams({
pairingUrl: process.env.PAIRING_URL,
autoConnect: "1",
});
process.stdout.write(`${process.env.URL_SCHEME}://connections/new?${query}`);
NODE
)"

case "$platform" in
ios)
xcrun simctl openurl "$device_id" "$deep_link"
;;
android)
# adb shell re-joins its arguments and evaluates them through the device
# shell, so the deep link's `?`/`&` must be quoted once more for that shell.
adb -s "$device_id" shell \
"am start -W -a android.intent.action.VIEW -d '$deep_link' com.t3tools.t3code.dev" \
>/dev/null

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Android pairing ignores custom scheme

Low Severity

The optional fifth argument changes only the deep-link url_scheme, but the Android am start target stays hardcoded to com.t3tools.t3code.dev. Preview and production schemes map to different packages in app.config.ts, so a non-dev scheme opens the wrong app (or fails) while iOS can still resolve by scheme alone.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 976fd56. Configure here.

;;
esac

echo "Opened the existing Add Environment route with a fresh pairing credential."
21 changes: 12 additions & 9 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# Optional: T3 Connect source builds
# Leave these unset to disable optional T3 Connect features in local source builds.
# Release builds inject their public values at build time. Do not add server-side
# secrets to this file.
# `cp .env.example .env` enables T3 Connect against the production deployment.
# These are the same public identifiers baked into official release builds, not
# secrets. Remove or comment them out to build with cloud features disabled.
# Do not add server-side secrets to this file.

# Get these from the Clerk Dashboard under API keys, JWT templates, and OAuth applications.
# T3CODE_CLERK_PUBLISHABLE_KEY=pk_test_...
# T3CODE_CLERK_JWT_TEMPLATE=t3-relay
# T3CODE_CLERK_CLI_OAUTH_CLIENT_ID=oauthapp_...
# Production Clerk instance. To use your own, get these from the Clerk Dashboard
# under API keys, JWT templates, and OAuth applications.
T3CODE_CLERK_PUBLISHABLE_KEY=pk_live_Y2xlcmsudDMuY29kZXMk
T3CODE_CLERK_JWT_TEMPLATE=t3-relay
T3CODE_CLERK_CLI_OAUTH_CLIENT_ID=hzxSgY2cH10sDU2r

# Optional: signed macOS passkey builds. The RP domain defaults to the Frontend API
# hostname encoded in T3CODE_CLERK_PUBLISHABLE_KEY. Set the override only when Clerk
Expand All @@ -15,8 +17,9 @@
# T3CODE_MACOS_PROVISIONING_PROFILE=/absolute/path/to/t3code.provisionprofile
# T3CODE_CLERK_PASSKEY_RP_DOMAINS=example.clerk.accounts.dev,clerk.example.com

# Get this from your relay deployment. `infra/relay` deploys update it automatically.
# T3CODE_RELAY_URL=https://relay.example.com
# Production relay. For a self-hosted relay, `infra/relay` deploys update it
# automatically.
T3CODE_RELAY_URL=https://relay.t3.codes

# Optional: hosted app origin used by the CLI's out-of-band OAuth flow.
# Defaults to https://app.t3.codes; override to test against a staging deployment.
Expand Down
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ body:
attributes:
value: |
Use this form for broken behavior, regressions, crashes, or reliability problems.
Feature requests belong in [Discussions](https://github.com/pingdotgg/t3code/discussions/categories/ideas).
Search existing issues first and keep the report focused on one problem.

- type: checkboxes
Expand All @@ -30,6 +31,7 @@ body:
- apps/web
- apps/server
- apps/desktop
- apps/mobile
- packages/contracts or packages/shared
- Build, CI, or release tooling
- Docs
Expand Down
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Feature request
url: https://github.com/pingdotgg/t3code/discussions/categories/ideas
about: Suggest an improvement or new capability in Discussions.
101 changes: 0 additions & 101 deletions .github/ISSUE_TEMPLATE/feature_request.yml

This file was deleted.

6 changes: 6 additions & 0 deletions .github/VOUCHED.td
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@
# Keep entries sorted alphabetically.
github:adityavardhansharma
github:binbandit
github:chrisdeeming
github:chuks-qua
github:cursoragent
github:gbarros-dev
github:gfsaaser24
github:github-actions[bot]
github:hwanseoc
github:jamesx0416
Expand All @@ -25,11 +27,15 @@ github:Noojuno
github:notkainoa
github:PatrickBauer
github:realAhmedRoach
github:saphid
github:shiroyasha9
github:StiensWout
github:Yash-Singh1
github:eggfriedrice24
github:Ymit24
github:shivamhwp
github:jappyjan
github:justsomelegs
github:UtkarshUsername
github:SunkenInTime
github:bil0000
1 change: 1 addition & 0 deletions .github/pr-assets/6424-after.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .github/pr-assets/6424-before.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .github/pr-assets/6503-after.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading