Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2765 commits
Select commit Hold shift + click to select a range
5785ea8
fix(server): consolidate V2 migrations and refine runtime recovery
juliusmarminge Sep 9, 2026
c0dec31
fix(web): simplify timeline rows and preserve collapsed composer cont…
juliusmarminge Sep 9, 2026
637c45a
fix(web): smooth composer transitions and group approval worklogs
juliusmarminge Sep 9, 2026
35f592f
fix: reconcile main updates with orchestration v2
juliusmarminge Sep 9, 2026
1893610
fix(server): report OpenCode descendant stop failures
juliusmarminge Sep 9, 2026
a96573b
fix(server): abort external OpenCode sessions on release
juliusmarminge Sep 9, 2026
3def236
fix(server): retain thread baseline diffs across root runs
juliusmarminge Sep 9, 2026
c6c9db4
fix(server): fail OpenCode turns on unexpected stream EOF
juliusmarminge Sep 9, 2026
608794f
fix(server): bound OpenCode runtime request replies
juliusmarminge Sep 9, 2026
f845479
fix(client): bound socket resets after cold HTTP failures
juliusmarminge Sep 9, 2026
6df22c8
fix(server): query only due scheduled tasks during polling
juliusmarminge Sep 9, 2026
ddb7859
fix(server): retain normalized OpenCode turn usage
juliusmarminge Sep 9, 2026
84f58ec
perf(server): scope ordinary control reads to their targets
juliusmarminge Sep 9, 2026
8743535
fix(server): retry initial title generation after transient failures
juliusmarminge Sep 9, 2026
8b0ad5d
fix(server): isolate Cursor metadata generation from workspaces
juliusmarminge Sep 9, 2026
a1abba2
fix(server): preserve Claude Read image previews across clients
juliusmarminge Sep 9, 2026
90562f0
fix(web): preserve generic files when editing queued messages
juliusmarminge Sep 9, 2026
58c8a48
test(server): assert tool output redaction before storage fidelity
juliusmarminge Sep 9, 2026
9a0a2fd
test(web): cancel queued animation frames during worker cleanup (#10880)
saphid Sep 9, 2026
3931de6
fix: reconcile main devices and pull requests with orchestration v2
juliusmarminge Sep 10, 2026
7b1499d
feat(providers): add Pi coding agent (#7211)
StiensWout Sep 10, 2026
50ea73e
feat(providers): standardize ACP providers (#6461)
StiensWout Sep 10, 2026
89542b8
feat: render background completions as typed notifications
juliusmarminge Sep 10, 2026
a055792
fix(mcp): omit recursive screenshot metadata from tool inputs
juliusmarminge Sep 10, 2026
2d7d95f
fix(pi): use native forks and preserve rollback session identity
juliusmarminge Sep 10, 2026
b25d05d
fix(pi): cap OpenRouter output budgets pending upstream fix
juliusmarminge Sep 10, 2026
5c8a19a
fix(web): show ACP sidebar icons and hold onboarding height while loa…
juliusmarminge Sep 10, 2026
54fcc31
feat(server): deliver delegated completions through a durable mailbox
juliusmarminge Sep 10, 2026
6855fe9
fix(acp): support Devin terminals, questions, and native subagents
juliusmarminge Sep 10, 2026
4beb85c
fix(server): find active turns when answering async questions
juliusmarminge Sep 10, 2026
631bd0d
fix(web): populate sidebar ACP branding from environment settings
juliusmarminge Sep 10, 2026
e21c046
fix(acp): preserve native child messages and final summaries
juliusmarminge Sep 10, 2026
a8b67e8
fix(server): distinguish delegated task results from completed turns
juliusmarminge Sep 10, 2026
ae36e33
test(server): align Codex delegation instruction assertion
juliusmarminge Sep 10, 2026
04468f1
test(server): align delegation fixtures with task result semantics
juliusmarminge Sep 10, 2026
fffaa68
fix(server): classify Claude V2 structured terminal failures (#9897)
saphid Sep 10, 2026
f433f7d
fix(orchestration): exclude rolled-back work from bounded recovery (#…
saphid Sep 10, 2026
98ee5e8
test(orchestration): cover bounded V2 socket fallback paging (#9907)
saphid Sep 10, 2026
399d7be
fix(server): wait for native Codex start before Stop (#10024)
saphid Sep 10, 2026
a6f265e
fix(server): keep the native Grok default model (#10025)
saphid Sep 10, 2026
5749668
fix(server): fail V2 turns when the OpenCode event stream ends (#9905)
saphid Sep 10, 2026
0f54b75
fix(web): preserve file attachments when editing queued runs (#9928)
saphid Sep 10, 2026
0595b0c
fix(server): preserve project mutation fields across transports (#9920)
saphid Sep 11, 2026
4cd726b
fix(mobile): throttle streaming thread visit updates (#9931)
saphid Sep 11, 2026
1a0a2bd
fix(orchestrator): preserve task-step elapsed time across restart (#1…
saphid Sep 11, 2026
5f7e6ca
fix(server): preserve Claude interruption status during steering
juliusmarminge Sep 11, 2026
99e4625
fix(server): wait for nested completion delivery before publishing re…
juliusmarminge Sep 11, 2026
fd2fda0
test(server): verify background delivery with real providers
juliusmarminge Sep 11, 2026
8bd92c5
fix: keep working timers anchored to the active run
juliusmarminge Sep 11, 2026
c3e2920
perf: page complete turns and bound timeline reconciliation
juliusmarminge Sep 11, 2026
be62eec
perf(client): narrow thread subscriptions and navigation updates
juliusmarminge Sep 11, 2026
d516d72
feat(mobile): manage queued messages in a dedicated sheet
juliusmarminge Sep 11, 2026
30c94bc
fix(web): fold completed trailing background activity
juliusmarminge Sep 11, 2026
7850fff
fix: reconcile main settings and previews with orchestration v2
juliusmarminge Sep 11, 2026
c550010
perf(client): reconcile replay batching with orchestration v2
juliusmarminge Sep 11, 2026
c7be72c
fix: reconcile main Codex model selection and UI updates
juliusmarminge Sep 11, 2026
48992e9
fix: reconcile main context previews and rewind updates
juliusmarminge Sep 12, 2026
b5475f3
fix(build): include protobuf and Connect license notices
juliusmarminge Sep 12, 2026
2f8b364
fix(mobile): pin expo-audio so the release smoke patch stays in use (…
saphid Sep 13, 2026
2075b11
fix: reconcile main release and thread updates with V2
juliusmarminge Sep 14, 2026
db525c8
fix: repair v2 CI after environment disable and dead exports
juliusmarminge Sep 14, 2026
4c9d7c5
fix(web): update notification tests for v2 thread shells and drop dea…
juliusmarminge Sep 14, 2026
aefd279
fix(client-runtime): avoid Array#toSorted in thread lineage ordering
juliusmarminge Sep 14, 2026
e417ef0
fix(server): reject partial output from failed Cursor runs (#11534)
saphid Sep 14, 2026
835a3e3
fix(server): wake paused Cursor replay runs on mismatch (#11535)
saphid Sep 14, 2026
33fb45e
fix(server): load V2 replay fixtures through the platform path servic…
saphid Sep 14, 2026
a31c0eb
fix(server): report missing interrupt-and-restart capability for forc…
saphid Sep 14, 2026
f3b479c
fix(server): preserve Cursor directory and lint search results (#11533)
saphid Sep 14, 2026
f9a23dd
fix(server): roll back question attachment copies when respond prepar…
saphid Sep 14, 2026
414b735
fix(server): restart the live session on model changes after dead rec…
saphid Sep 14, 2026
9881320
fix(server): replay launches with server-allocated thread IDs (#11508)
saphid Sep 14, 2026
431a596
fix(web): keep the active-run header with the prompt that started it …
juliusmarminge Sep 15, 2026
0393772
refactor(web): centralize provider instance icons (#11829)
juliusmarminge Sep 15, 2026
0909421
feat(web): add the thread action menu and inline rename to the chat h…
juliusmarminge Sep 15, 2026
f5d7304
fix(web): keep the preview mini-player clear of the inline thread det…
juliusmarminge Sep 15, 2026
1f85ae1
fix: reconcile main snooze controls with orchestration v2
juliusmarminge Sep 15, 2026
e137528
fix(web): adapt registry icons to light and dark themes
juliusmarminge Sep 15, 2026
53bd734
fix: reconcile main worktree setup and title changes with v2
juliusmarminge Sep 15, 2026
15769fa
fix(server): isolate V2 migrations from the V1 database
juliusmarminge Sep 15, 2026
0034b82
fix(ci): verify V2 branch pushes and remove unused helper
juliusmarminge Sep 15, 2026
666a116
revert: restore existing CI push triggers
juliusmarminge Sep 15, 2026
322897b
fix(web): retain server-side queuing on v2 after rebase
juliusmarminge Sep 15, 2026
36c5726
fix(test): account for optional encoded provider settings
juliusmarminge Sep 15, 2026
97fa8cb
fix(server): project legacy thread shells during import
juliusmarminge Sep 15, 2026
12402c7
fix(server): replay command events across persistence pages (#11499)
saphid Sep 15, 2026
246bad5
fix(orchestrator): report terminal runs after wait timeout (#11574)
saphid Sep 15, 2026
4ce8780
fix(server): skip corrupt scheduled-task rows instead of stopping the…
saphid Sep 15, 2026
7b417d9
fix(server): preserve due schedules across equivalent time formatting…
saphid Sep 15, 2026
e042f9f
test(server): replay denied Claude writes through V2 (#11597)
saphid Sep 15, 2026
e36777e
fix(server): fork Codex threads at the native turn boundary (#11490)
saphid Sep 15, 2026
250aa48
fix(server): align MCP delegation support with live provider adapter …
saphid Sep 15, 2026
2c11897
test(server): prove v1 to v2 cutover on a copied database and flag di…
saphid Sep 15, 2026
3f68c0c
fix(server): bound legacy thread projection requests (#10512)
cjavad Sep 15, 2026
0196c5d
fix: reconcile main thread updates and Git improvements with v2
juliusmarminge Sep 15, 2026
5d353c1
fix(web): confine composer glass transition to input surface
juliusmarminge Sep 15, 2026
2590518
fix(server): restore hub limits updates in V2 (#11963)
Bil0000 Sep 15, 2026
42b0131
fix(mobile): reject preview builds from v1 source
juliusmarminge Sep 15, 2026
3c1eb8a
fix(mobile): skip preview validation without release credentials
juliusmarminge Sep 15, 2026
8799a4e
fix: stop retained background work after a turn settles
juliusmarminge Sep 15, 2026
fbb6e23
refactor: remove legacy token streaming
juliusmarminge Sep 15, 2026
bab6cba
fix: format subagent task names across clients
juliusmarminge Sep 15, 2026
7669b80
fix: distinguish unsupported server connections
juliusmarminge Sep 15, 2026
35ecb5d
fix: reconcile main updates with V2 orchestration
juliusmarminge Sep 15, 2026
f358e7b
fix(server): preserve PR links across V2 discovery and import
juliusmarminge Sep 16, 2026
dad1561
fix: reconcile main monograms and PR refresh with V2
juliusmarminge Sep 16, 2026
02da1df
fix(web): reset thread scroll and ignore hydration as a new turn
juliusmarminge Sep 16, 2026
46e4ede
fix(web): invert follow-up behavior with Mod+Enter
juliusmarminge Sep 16, 2026
50287ff
fix(web): show linked pull requests in thread details
juliusmarminge Sep 16, 2026
e8d915e
fix(web): restore main thread-switch scrolling without layout resets
juliusmarminge Sep 16, 2026
21414a4
fix: reconcile main setup transitions with V2 threads
juliusmarminge Sep 16, 2026
dd966dc
fix(mobile): keep cached thread list across relaunch
juliusmarminge Sep 16, 2026
00606b9
perf(client): coalesce persistent cache writes during streaming (#12109)
juliusmarminge Sep 16, 2026
e7db694
perf(server): suppress unchanged shell enrichment refreshes (#12110)
juliusmarminge Sep 16, 2026
4fa68d5
perf(mobile): skip unchanged thread row renders (#12116)
juliusmarminge Sep 16, 2026
71939f3
perf(mobile): yield to UI during shell cache encoding (#12117)
juliusmarminge Sep 16, 2026
c70d458
perf(client): narrow mobile and web environment subscriptions (#12126)
juliusmarminge Sep 16, 2026
0125748
perf(mobile): ignore irrelevant config updates in thread lists (#12127)
juliusmarminge Sep 16, 2026
6f45603
perf(mobile): limit thread model options to its provider (#12128)
juliusmarminge Sep 16, 2026
0cc9ba1
perf(client): stop scanning threads for unused shell timestamps (#12129)
juliusmarminge Sep 16, 2026
13f8af1
feat(mobile): make the composer pill the hub for the running turn
juliusmarminge Sep 16, 2026
c912af3
fix: reconcile main composer and provider updates with V2
juliusmarminge Sep 16, 2026
94833ca
test(server): restore Cursor usage coverage after V2 rebase
juliusmarminge Sep 16, 2026
2d756df
feat(web): add compact PR checks to the workspace card (#11981)
Bil0000 Sep 16, 2026
02b6c84
feat(web): show subagent details and history in workspace card (#12079)
Bil0000 Sep 16, 2026
3fe3911
fix(server): start V2 provider turn when checkpoint baseline capture …
SunkenInTime Sep 17, 2026
bb32bdf
fix(server): retain durable checkpoint index fixes on v2
juliusmarminge Sep 17, 2026
c0214e1
fix(server): finalize v2 runs when checkpoint ref lookup fails
juliusmarminge Sep 17, 2026
a9792ec
fix(server): reject v2 file restore in shared workspaces
juliusmarminge Sep 17, 2026
7778726
fix(mobile): allow changing provider in a started thread (#12184)
juliusmarminge Sep 17, 2026
a06437c
fix: reconcile main updates with V2 runtimes and timelines
juliusmarminge Sep 17, 2026
ad88f78
fix: align V2 question and checkpoint timelines across clients
juliusmarminge Sep 17, 2026
e72a4cc
fix(mobile): guard question controls during answer submission
juliusmarminge Sep 17, 2026
62c3077
fix: adapt multi-model thread creation to V2 launches
juliusmarminge Sep 17, 2026
056fa06
fix: restore V2 worktree setup transitions across clients
juliusmarminge Sep 17, 2026
7b84a87
fix(mobile): match web provider handoff dividers
juliusmarminge Sep 17, 2026
40398cf
fix(mobile): preview queued message order during drag (#12232)
juliusmarminge Sep 17, 2026
90942da
fix: preserve linked PRs and show them in badge tooltips (#12262)
Bil0000 Sep 17, 2026
30da871
fix(orchestrator): defer queued provider handoff until delivery (#12226)
juliusmarminge Sep 17, 2026
d27b342
fix(v2): preserve running turns during provider handoff (#12255)
Bil0000 Sep 17, 2026
4cc89b4
feat(composer): attach threads as context (#12296)
juliusmarminge Sep 17, 2026
f57fb20
fix: reconcile main updates and preserve V2 preview upgrades
juliusmarminge Sep 17, 2026
45a9067
fix(codex): retain V2 reasoning streams and completed traces
juliusmarminge Sep 17, 2026
596cd47
fix(timeline): align V2 reasoning disclosures with main
juliusmarminge Sep 17, 2026
a4a6e18
fix(providers): enable Codex and Claude reasoning summaries in V2
juliusmarminge Sep 17, 2026
5bee6e8
fix(timeline): preview live reasoning and buffer complete paragraphs
juliusmarminge Sep 17, 2026
3380bff
fix(timeline): unify worklog layout and subagent presentation
juliusmarminge Sep 17, 2026
be76595
fix(claude): retain requested subagent models
juliusmarminge Sep 17, 2026
0ac0598
fix(mobile): map V2 icons on Android
juliusmarminge Sep 17, 2026
7263029
test(server): align replay requests with reasoning settings
juliusmarminge Sep 17, 2026
a4b2b58
fix(web): retain PR panel context after V2 rebase
juliusmarminge Sep 17, 2026
1d92769
test(timeline): cover current worklog interactions and fix CI
juliusmarminge Sep 17, 2026
f8deabd
test(server): refresh reasoning expectations across replay fixtures
juliusmarminge Sep 17, 2026
a6e96ee
fix(web): hide idle PR check counts and match row typography (#12321)
Bil0000 Sep 17, 2026
58f0c7e
fix(web): open linked PRs from the badge hover list (#12314)
Bil0000 Sep 17, 2026
991abd0
fix(web): configure alternate send and background shortcuts (#12174)
Bil0000 Sep 18, 2026
a9e5807
fix(web): preserve main actions when rebasing v2
juliusmarminge Sep 18, 2026
f37432d
fix(server): hand off failed and interrupted turn context
juliusmarminge Sep 18, 2026
728b1b2
fix(queue): preserve and hold queued messages after restart
juliusmarminge Sep 18, 2026
9963897
refactor(mcp): use workspace-aware thread launches
juliusmarminge Sep 18, 2026
6ab0214
fix(server): keep tool payloads out of completion queues (#12345)
juliusmarminge Sep 18, 2026
a5d4584
refactor(web): reuse worklog rows for setup and created threads (#12347)
juliusmarminge Sep 18, 2026
e14ad5e
refactor(web): centralize thread details section layout (#12348)
juliusmarminge Sep 18, 2026
f0269cd
refactor(mobile): share settings choice row defaults (#12349)
juliusmarminge Sep 18, 2026
50b2cda
refactor(web): share composer context labels (#12357)
juliusmarminge Sep 18, 2026
ecee29b
refactor(web): reuse shared error alerts (#12361)
juliusmarminge Sep 18, 2026
510ffa5
refactor(mobile): share subagent status indicators (#12367)
juliusmarminge Sep 18, 2026
730b3d3
t3code/ui composition audit/worklog link variant (#12375)
juliusmarminge Sep 18, 2026
6707749
feat(mobile): manage scheduled tasks across environments (#12351)
juliusmarminge Sep 18, 2026
495863e
refactor(ui): preserve shared controls across the V2 rebase
juliusmarminge Sep 18, 2026
0b43245
fix(v2): adapt to Effect rc.115 after rebase
juliusmarminge Sep 18, 2026
66782f4
chore(v2): reconcile dependency lockfile after rebase
juliusmarminge Sep 18, 2026
95bc86e
fix(web): share chat width and remove stale styling
juliusmarminge Sep 18, 2026
157964b
chore(marketing): remove unused duplicate screenshot
juliusmarminge Sep 18, 2026
b24f333
test(server): restore V2 transfer budgets and CI reporting
juliusmarminge Sep 18, 2026
f7b2c19
fix(server): preserve reviewed secret rollback behavior on V2
juliusmarminge Sep 18, 2026
ab41bd7
fix(web): reconcile sidebar search with V2 environment subscriptions
juliusmarminge Sep 18, 2026
40e9e15
fix(server): reconcile PR preview and checks fixtures
juliusmarminge Sep 18, 2026
832e7ec
fix(mobile): preserve merge-back action in shared thread header
juliusmarminge Sep 18, 2026
e9bc38f
fix(server): unblock orchestrator CI checks
juliusmarminge Sep 18, 2026
723d618
fix(web): anchor turn duration below the initiating prompt
juliusmarminge Sep 18, 2026
9fa0a02
fix(mobile): submit v2 previews to Play closed testing
juliusmarminge Sep 18, 2026
7a343b3
fix(mobile): remove stale preferences type import
juliusmarminge Sep 18, 2026
9754156
fix(desktop): allow V1 and V2 to run concurrently (#12480)
juliusmarminge Sep 18, 2026
ed637d4
fix(antigravity): accept supported legacy handshake versions (#12509)
juliusmarminge Sep 18, 2026
63bcc8a
fix(cursor): preserve SDK runtime chunks and helpers in packages (#12…
juliusmarminge Sep 18, 2026
5af5d3d
feat(server): preserve budgeted history across provider handoffs (#12…
juliusmarminge Sep 18, 2026
3df1980
fix(server): decode v1 message events persisted with a reasoning role…
chrisdeeming Sep 18, 2026
761702a
test(server): align V2 fixtures with OTLP log configuration
juliusmarminge Sep 18, 2026
db59ba4
fix(acp): reconcile elicitation validation with V2 protocol compatibi…
juliusmarminge Sep 19, 2026
5129e1a
fix(server): release thread history after provider turn startup
juliusmarminge Sep 19, 2026
04f26da
fix(server): avoid full transcript reads in provider run guards
juliusmarminge Sep 19, 2026
cbc4274
fix(server): release delivered snapshots from live RPC streams
juliusmarminge Sep 19, 2026
7a79f99
fix(shared): release successful results from completed trace spans
juliusmarminge Sep 19, 2026
c1c0a8f
fix(v2): reconcile main cleanup and mobile device controls
juliusmarminge Sep 19, 2026
9ea0d99
fix(server): decode transcript tool payloads only once
juliusmarminge Sep 19, 2026
06723a8
fix(server): refresh completed runs without loading transcripts
juliusmarminge Sep 19, 2026
2bc06ed
fix(server): avoid transcript reloads during run completion
juliusmarminge Sep 19, 2026
e03cb98
fix(server): load targeted state when starting provider turns
juliusmarminge Sep 20, 2026
bd3fc17
fix(notifications): silence subagent threads
maria-rcks Sep 19, 2026
392f564
fix(preview): restore v2 sizing and project access (#12548)
juliusmarminge Sep 19, 2026
4dd6483
fix(server): settle V2 threads after linked PR merges (#12568)
Bil0000 Sep 19, 2026
e934c61
fix(web): show subagent models and running count in Lineage (#12491)
Bil0000 Sep 19, 2026
c4aee02
fix(web): show Auto balance in the workspace host menu (#12481)
Bil0000 Sep 19, 2026
b2edb10
fix(chat): present and summarize all T3 tools (#12671)
juliusmarminge Sep 20, 2026
c49e874
feat(web): list linked PRs in workspace card (#12574)
Bil0000 Sep 20, 2026
bd04afa
fix(web): make PR badge hover lists easy to click (#12378)
Bil0000 Sep 20, 2026
20799aa
fix(mobile): preserve native send choices and keyboard (#12770)
juliusmarminge Sep 20, 2026
1621c3e
fix(server): surface actionable provider failure messages (#12560)
juliusmarminge Sep 20, 2026
1c234ef
fix(web): keep workspace card action hover uniform (#12766)
Bil0000 Sep 20, 2026
1e28600
fix(web): stop citation popovers flying into position
juliusmarminge Sep 21, 2026
ef734e8
fix(web): hide raw image markup in queue previews (#12820)
maria-rcks Sep 21, 2026
7240476
feat(v2): show provider limit stops as Limited (#12677)
juliusmarminge Sep 21, 2026
2d47fc4
feat(v2): resume limited threads when usage resets (#12686)
juliusmarminge Sep 21, 2026
df99673
feat(v2): snooze limited threads until usage resets (#12687)
juliusmarminge Sep 21, 2026
c0a1aed
fix(v2): keep failed turns visible in the transcript (#12783)
juliusmarminge Sep 21, 2026
d3ede8b
refactor(server): share scheduling for tasks and limit recovery (#12795)
juliusmarminge Sep 21, 2026
4e36219
fix(v2): reconcile main UI, attachment limits, and logging fixtures
juliusmarminge Sep 21, 2026
c8313b6
test(v2): align handoff fixtures with larger attachment limits
juliusmarminge Sep 21, 2026
67b1566
feat(web): color handoff model names with their provider brand color …
maria-rcks Sep 21, 2026
c425ec2
refactor(web): remove the agents right panel (#12835)
maria-rcks Sep 21, 2026
6c30322
feat(web): clearer icons for the workspace panel controls (#12838)
maria-rcks Sep 21, 2026
c343edd
feat(web): give lineage subagent hovers the thread hover card (#12842)
maria-rcks Sep 21, 2026
0337dd6
fix(v2): reconcile main composer layout and undo actions
juliusmarminge Sep 21, 2026
b488c57
fix(v2): remove obsolete composer breakpoint animation
juliusmarminge Sep 21, 2026
7bc0712
fix(server): avoid transcript reads when checking run interrupts
juliusmarminge Sep 21, 2026
0e68214
fix(server): replace unnecessary full projection reads
juliusmarminge Sep 21, 2026
c1bf586
perf(pr): reduce quota use when refreshing workspace checks (#12442)
Bil0000 Sep 21, 2026
e0dce77
test(v2): expose scoped reads in provider replay harness
juliusmarminge Sep 21, 2026
1e0248c
fix(server): recover Pi resumes without reusing native history (#12933)
juliusmarminge Sep 21, 2026
4a4c22b
fix(settings): restore V2 controls and shared settings layout
juliusmarminge Sep 21, 2026
8767a25
feat(web): edit the last queued message with Option+Up (#12599)
jakeleventhal Sep 21, 2026
9d6feae
fix(web): edit automations from thread details (#12408)
saphid Sep 21, 2026
3853888
fix(server): preserve provider history across repeated rollbacks (#12…
Derpedyea Sep 21, 2026
953e94a
fix(server): start ACP MCP bridge in self-contained runtime (#12747)
pekth Sep 21, 2026
d1f3f17
fix(server): launch contained ACP providers from packaged runtimes (#…
pekth Sep 21, 2026
2d99367
fix(web): restore sidebar order during thread context drags
juliusmarminge Sep 21, 2026
d7df317
refactor(server): resolve self invocations through one shared helper …
juliusmarminge Sep 21, 2026
df6e170
perf(server): stop decoding unrelated events during startup (#12846)
extoci Sep 21, 2026
32490b9
perf(server): stop maintaining redundant projection indexes (#12847)
extoci Sep 21, 2026
c5b851f
feat(cursor): support browser login for the agent SDK (#12948)
Yash-Singh1 Sep 21, 2026
dcaf479
fix(server): fail V2 runs when provider sessions cannot open (#12790)
pekth Sep 21, 2026
fe2a63f
fix(server): fail runs when provider startup preparation fails (#12409)
saphid Sep 21, 2026
fc66b9f
fix(server): select an available provider for delegated tasks (#11870)
saphid Sep 21, 2026
5ccb2a5
feat(web): show a turn's subagents as one collapsible card (#12839)
maria-rcks Sep 21, 2026
72a0226
feat(mobile): show subagents in a collapsible card (#12961)
juliusmarminge Sep 22, 2026
7ed0d88
fix(chat): link agent attribution to its source thread (#12971)
juliusmarminge Sep 22, 2026
2341c5a
fix(orchestration): settle subagent statuses and activation timers (#…
juliusmarminge Sep 22, 2026
0ffb74a
fix(web): show subagent effort beside the hover card model
Bil0000 Sep 22, 2026
262a22f
fix(web): keep subagent effort tied to its provider instance
Bil0000 Sep 22, 2026
336687d
test(server): align selection restart with startup failure handling
Bil0000 Sep 22, 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