Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
579 commits
Select commit Hold shift + click to select a range
09e8de9
Add stop thread keybinding command (#4308)
jakeleventhal Sep 7, 2026
2c8e95a
fix(mobile): show the provider account badge on thread rows (#9899)
vitalyiegorov Sep 7, 2026
d64335b
fix(codex): name the usage limit and its reset instead of relaying "o…
vitalyiegorov Sep 7, 2026
ea2983a
fix(web): copy selected pull request link from PR page (#10615)
maria-rcks Sep 7, 2026
d67157a
fix(web): keep ref picker steady when opening (#9472)
Adamulek123 Sep 7, 2026
569a8cd
fix(web): play pull request videos inline (#10617)
maria-rcks Sep 7, 2026
8de9169
chore(release): prepare v0.0.40
t3-code[bot] Sep 8, 2026
e0e0bcb
fix(desktop): preserve browser editing shortcuts (#10621)
juliusmarminge Sep 8, 2026
d081ab7
fix(web): open pull request markdown links in the panel (#10623)
juliusmarminge Sep 8, 2026
892de47
fix(mobile): fit the Android splash icon to its circular mask (#10620)
juliusmarminge Sep 8, 2026
299404a
feat(desktop): add cross-platform window capture (#8103)
Bil0000 Sep 8, 2026
8588d7f
fix(web): open proactive panels when entering threads (#10610)
maria-rcks Sep 8, 2026
9fe4d65
fix(native): wait for the KDE feedback test listener (#10645)
juliusmarminge Sep 8, 2026
a01b227
fix(desktop): resolve local media linked from remote threads (#10619)
maria-rcks Sep 8, 2026
b7c002f
fix(web): add bottom padding to project actions header (#10634)
flamboh Sep 8, 2026
15193df
fix(web): update machines together in auto balance (#10596)
maria-rcks Sep 8, 2026
9e37f0c
fix(preview): transfer recordings to the agent environment (#10572)
maria-rcks Sep 8, 2026
f0bd43e
Add 'macroscope-review' label to conventions
juliusmarminge Sep 8, 2026
5a18fb9
Add 'macroscope-review' label to UI consistency
juliusmarminge Sep 8, 2026
6df0add
fix(web): navigate markdown images as galleries (#10625)
maria-rcks Sep 8, 2026
a37c664
chore: upgrade to TypeScript 7.0.2 (#10663)
juliusmarminge Sep 8, 2026
6ba15c0
fix: hide email-bearing account labels in usage limits (#10668)
juliusmarminge Sep 8, 2026
50a76ce
fix(web): keep scroll-to-end button close to composer (#10543)
Bil0000 Sep 8, 2026
bd56e92
chore(deps): upgrade Effect to rc.112 and Alchemy to beta.76 (#10652)
juliusmarminge Sep 8, 2026
458f502
chore(refs): sync Effect reference to rc.112 (#10653)
juliusmarminge Sep 8, 2026
9d345fa
chore(refs): sync Alchemy reference to beta.76 (#10654)
juliusmarminge Sep 8, 2026
bc4b006
fix: generate thread titles with the selected model across connection…
Bil0000 Sep 8, 2026
b5f7fa0
fix(desktop): enable context menus in the browser (#10670)
juliusmarminge Sep 8, 2026
bc88fdf
fix(desktop): stop generating declarations during bundling (#10679)
juliusmarminge Sep 8, 2026
349ce30
fix(desktop): restore layout control hit targets (#10673)
juliusmarminge Sep 8, 2026
7220dfe
feat(chat): attach files to question answers (#9871)
shivamhwp Sep 8, 2026
9915263
feat(desktop): refresh macOS installer with aurora artwork (#10632)
saphid Sep 8, 2026
430fbd1
fix(server): give completed turns a full session idle window (#10689)
StiensWout Sep 8, 2026
7d9aaf6
feat(web): add pull request merge defaults (#8088)
Bil0000 Sep 8, 2026
1f14d6d
fix(usage): keep account columns aligned across limit rows (#10690)
juliusmarminge Sep 8, 2026
11601da
fix(web): chat text no longer shows through a 1px gap under composer …
vitalyiegorov Sep 8, 2026
6f4cd07
refactor(server): classify runtime exports (#10274)
juliusmarminge Sep 8, 2026
0af04f1
refactor(server): classify orchestration exports (#10275)
juliusmarminge Sep 8, 2026
161715b
refactor(server): classify service exports (#10276)
juliusmarminge Sep 8, 2026
77d9ffc
refactor(server): classify telemetry exports (#10277)
juliusmarminge Sep 8, 2026
060c576
refactor(server): classify provider exports (#10278)
juliusmarminge Sep 8, 2026
3b6ce93
refactor(server): classify source control exports (#10279)
juliusmarminge Sep 8, 2026
7cdeb69
refactor(server): classify source control registry API (#10280)
juliusmarminge Sep 8, 2026
1f0a14c
refactor(server): classify preview toolkit exports (#10281)
juliusmarminge Sep 8, 2026
b284715
chore(mobile): bump app version to 1.1.1
t3-code[bot] Sep 8, 2026
7d62050
ci(knip): enforce server exports (#10282)
juliusmarminge Sep 8, 2026
134b719
feat(web): add previous/next turn navigation in minimap (#8531)
UtkarshUsername Sep 8, 2026
d6dbe8d
fix(web): stop the settings sidebar shifting when switching pages (#1…
t3dotgg Sep 8, 2026
83b865f
fix(web): copy terminal selection with Ctrl+Insert (#8541)
iamshadmantaqi Sep 8, 2026
82451ee
fix(web): show the same project icon in the command palette as everyw…
t3dotgg Sep 8, 2026
d7a59c6
fix(web): stop sidebar rows flashing and shifting on click (#10713)
t3dotgg Sep 8, 2026
eb11506
refactor(web): pass the project record to ProjectFavicon so icons can…
t3dotgg Sep 8, 2026
bde39d4
feat(web): accept file drops into sidebar threads (#7892)
UtkarshUsername Sep 8, 2026
b5d8903
feat(web): accept file drops into sidebar threads (#7892)
UtkarshUsername Sep 8, 2026
061543e
fix(mcp): keep preview snapshots usable by the agent and let it save …
t3dotgg Sep 8, 2026
47eed9f
fix(server): stop Windows terminal processes when closing (#10771)
SunkenInTime Sep 8, 2026
579266c
feat(mobile): use Android wallpaper colors (#10691)
juliusmarminge Sep 8, 2026
4664c57
feat(mobile): add optional Material You layout (#10692)
juliusmarminge Sep 8, 2026
12391bd
feat(web): show project favicon in new-thread project picker (#10790)
gsimone Sep 8, 2026
5d14c0e
fix(desktop): use official logo in macOS installer (#10819)
t3-code[bot] Sep 8, 2026
772ea14
fix(web): honor terminal link browser overrides (#10060)
UtkarshUsername Sep 8, 2026
0fe4c99
fix(desktop): neutral artwork for stable macOS installer (#10820)
t3-code[bot] Sep 8, 2026
5e6cc2b
fix(web): restore text-only draft project title (#10821)
juliusmarminge Sep 8, 2026
3faeee4
refactor(web): consolidate setup wizards into shared components (#10832)
juliusmarminge Sep 8, 2026
de545c4
fix(web): stop the bar under the composer popping in after threads lo…
t3dotgg Sep 8, 2026
7fbc545
fix(web): keep the composer footer still while thread data loads (#10…
t3dotgg Sep 8, 2026
20e2e89
fix(desktop): defer keyring loading until macOS cookie import (#10667)
simplythatguy Sep 8, 2026
fdf34c4
fix(relay): share notification policy and prioritize waiting agents (…
juliusmarminge Sep 8, 2026
3dfc134
fix(relay): recheck queued iOS alerts and retain fast completions (#1…
juliusmarminge Sep 8, 2026
9d6c43f
fix(mobile): respect notification permission when tokens rotate (#10850)
juliusmarminge Sep 8, 2026
3e6f856
fix(mobile): tolerate native Headers without getSetCookie (#10851)
juliusmarminge Sep 8, 2026
1862686
fix(relay): use current APNs registration routing for queued jobs (#1…
juliusmarminge Sep 9, 2026
08463e2
fix(server): release consumed event replay pages (#10777)
Gigioxx Sep 9, 2026
2a30353
feat(mobile): arrange threads with drag handles (#10496)
juliusmarminge Sep 9, 2026
6c58362
feat(mobile): add Android agent notifications and ongoing activity (#…
ryanrhughes Sep 9, 2026
a29a7cc
fix(mobile): blur glass fallbacks to prevent background text bleed (#…
juliusmarminge Sep 9, 2026
e16b8b0
feat(web): add provider model bulk toggle (#10947)
UtkarshUsername Sep 9, 2026
50f918c
fix(web): allow expanding duplicate tool call commands (#10981)
Yash-Singh1 Sep 9, 2026
75e4ceb
fix(mobile): prevent Android chat rows overlapping during sync (#10983)
SunkenInTime Sep 9, 2026
383cc40
fix(mobile): prevent text leaking through Android glass (#10998)
juliusmarminge Sep 9, 2026
afb8489
feat(pull-requests): link multiple pull requests to threads (#10839)
juliusmarminge Sep 9, 2026
f0401c6
feat(search): find threads by linked pull request (#10870)
juliusmarminge Sep 9, 2026
de37964
feat(prs): navigate, merge and rebase GitHub stacks (#10875)
juliusmarminge Sep 9, 2026
33242d0
fix(server): preserve recent PR reads across server restarts (#11007)
juliusmarminge Sep 9, 2026
8d8189e
feat(web): zoom and pan expanded images (#10869)
maria-rcks Sep 9, 2026
b7b3ef1
fix(ui): use available space for composer model names (#11002)
juliusmarminge Sep 9, 2026
addfb13
fix(web): restore pr list diff counts to the top right (#10609)
maria-rcks Sep 10, 2026
385cc0a
fix(web): show message copy buttons on touch devices (#11020)
maria-rcks Sep 10, 2026
d1eeb16
fix(web): middle-click pastes in the terminal on Linux (#11018)
maria-rcks Sep 10, 2026
0f602b3
fix(editors): open remote projects in Zed (#11022)
maria-rcks Sep 10, 2026
bb5e824
feat: add blue and orange diff color palette (#10671)
maria-rcks Sep 10, 2026
d29c56a
fix(server): resolve project identity before legacy pr relinks (#11045)
t3-code[bot] Sep 10, 2026
444fd8b
fix(mobile): keep Android markdown icons aligned with text (#11079)
SunkenInTime Sep 10, 2026
3836890
Revert "fix(mobile): keep Android markdown icons aligned with text" (…
juliusmarminge Sep 10, 2026
e784975
fix(ui): simplify multiple linked pull request badges (#11104)
maria-rcks Sep 10, 2026
0882431
fix(preview): return to pip when closing the right panel (#11102)
maria-rcks Sep 10, 2026
0527ddf
fix: quiet settled threads and simplify PR badges (#11101)
juliusmarminge Sep 10, 2026
f814983
fix(web): emphasize primary pull request actions (#11105)
juliusmarminge Sep 10, 2026
21a5ccf
fix(web): prevent seams in the topbar scroll fade (#10914)
caezium Sep 10, 2026
21d7440
fix(web): fit provider update text inside sidebar notices (#11034)
MatthewFeroz Sep 10, 2026
3997b9a
fix(web): align floating browser preview corners (#10915)
caezium Sep 10, 2026
60eff99
fix(web): save PR body edits with Cmd/Ctrl+Enter (#10660)
flamboh Sep 10, 2026
502131a
fix(web): collapse a tool call by clicking its expanded label (#11017)
maria-rcks Sep 10, 2026
dca7b59
feat(devices): add simulator and emulator support (#10677)
juliusmarminge Sep 10, 2026
e022fa4
feat(devices): scope targets and sessions to their hosts (#10854)
juliusmarminge Sep 10, 2026
7734c6d
feat(devices): target concurrent agent sessions across hosts (#10855)
juliusmarminge Sep 10, 2026
d2eeacd
feat(devices): connect simulator hosts over SSH (#10856)
juliusmarminge Sep 10, 2026
dfa345b
feat(web): use a compact right-panel surface menu (#11111)
maria-rcks Sep 10, 2026
32b6909
fix(mobile): keep Android markdown icons aligned (#11118)
none23 Sep 10, 2026
47dbb06
fix(mobile): add close controls to tablet files and terminal (#11115)
juliusmarminge Sep 10, 2026
96f4370
fix(mobile): preserve the final composer animation frame (#11114)
juliusmarminge Sep 10, 2026
859304b
fix(mobile): keep composer transitions aligned (#11127)
juliusmarminge Sep 10, 2026
1a9336b
refactor(mobile): name shared markdown renderer without iOS suffixes …
SunkenInTime Sep 10, 2026
a5ac766
fix(media): preserve playback during fullscreen transitions (#11113)
maria-rcks Sep 10, 2026
39ca417
fix(marketing): redirect /app to app.t3.codes (#11145)
t3-code[bot] Sep 10, 2026
2afa02a
chore(marketing): update to 300k users and 22k stars (#11146)
t3-code[bot] Sep 10, 2026
c52b8d9
feat(command-palette): show environments in search results (#10722)
Cyberlane Sep 10, 2026
6a2d246
fix(pr): update labels and reviewers without redundant reloads (#11117)
maria-rcks Sep 11, 2026
27eb79d
fix(chat): fold question answers into tool activity (#11014)
maria-rcks Sep 11, 2026
48654c1
fix(usage): flag unpriced model activity instead of showing $0.00 (#1…
maria-rcks Sep 11, 2026
5735693
fix(server): let Claude launch args override the derived permission m…
maria-rcks Sep 11, 2026
20ef250
fix(editors): accept root paths and Windows servers in Zed remote lin…
maria-rcks Sep 11, 2026
4d06156
fix(web): center pull request unavailable states (#11110)
maria-rcks Sep 11, 2026
0a37240
fix(web): remove sidebar pull request link icon (#11179)
maria-rcks Sep 11, 2026
02297e3
fix(ui): color linked pr counts by aggregate status (#11180)
maria-rcks Sep 11, 2026
6c69534
fix(preview): render website favicons for browser tool activity (#11032)
maria-rcks Sep 11, 2026
18c5a1d
fix(web): simplify pull request summary sections (#10612)
maria-rcks Sep 11, 2026
ef6fa11
fix(web): preserve drafts when compacting context (#11103)
maria-rcks Sep 11, 2026
57aee3e
fix(server): queue messages during context compaction (#11107)
maria-rcks Sep 11, 2026
8fc2536
perf(web): format minimap previews only when opened (#11181)
juliusmarminge Sep 11, 2026
a9dabbf
perf(web): reuse completed Markdown prefixes while streaming (#11193)
juliusmarminge Sep 11, 2026
d7d7f8f
perf(web): resume syntax highlighting from completed lines (#11196)
juliusmarminge Sep 11, 2026
8078c53
perf(web): preserve completed code-line DOM while streaming (#11198)
juliusmarminge Sep 11, 2026
211618f
perf(web): huge-thread switch no longer blanks the chat pane (#11169)
juliusmarminge Sep 11, 2026
fb3d165
fix(web): show platform file manager icons in Open menu (#11228)
Bil0000 Sep 11, 2026
26894dd
fix(server): detect file renames in review diffs (#8086)
jakeleventhal Sep 11, 2026
5eecc24
fix(cli): pin shared Effect dependency for npm installs (#11240)
jakeleventhal Sep 11, 2026
2ebc9fa
fix(mobile): prevent Hermes crashes when opening threads (#11233)
jakeleventhal Sep 11, 2026
05d4042
feat(web): open Usage on the Limits tab by default (#11261)
juliusmarminge Sep 11, 2026
2b7d3a4
perf(web): avoid scanning chat history for sidebar backgrounds (#11206)
juliusmarminge Sep 11, 2026
7bd7f99
perf(mobile): reuse completed code lines while streaming (#11211)
juliusmarminge Sep 11, 2026
aba0b1b
docs(fork): add fork rules, feature registry, agent skills, and branc…
q1 Sep 2, 2026
96482c1
feat(fork): add @q1code/core with flag registry, brand, and config; r…
q1 Sep 2, 2026
f158078
feat(fork): publish fork flags through environment capabilities and a…
q1 Sep 2, 2026
940aee6
feat(fork): brand as q1code with its own home dir, service unit, and …
q1 Sep 2, 2026
986191c
ci(fork): add fork CI, sync watch, and release workflows with mainten…
q1 Sep 2, 2026
bbb468a
chore(fork): exempt manifests, tests, and docs from the seam marker r…
q1 Sep 2, 2026
01a9f06
docs(fork): log sync 20260902T084653Z
q1 Sep 2, 2026
e44e778
fix(fork): pin gh to the fork repo in maintenance scripts
q1 Sep 2, 2026
b0d08b8
fix(fork): pack the release tarball from a resolved manifest like ups…
q1 Sep 2, 2026
d358b1f
fix(fork): publish release assets from the artifact's extraction root
q1 Sep 2, 2026
c0955d5
fix(fork): ship release notes inside the release-assets artifact
q1 Sep 2, 2026
6ccc26f
chore(fork): upload release assets from a single artifact root
q1 Sep 2, 2026
777f4ca
chore(fork): list downloaded release assets before publishing
q1 Sep 2, 2026
e7ac3b3
fix(fork): installer downloads the q1code asset and runs the t3 packa…
q1 Sep 2, 2026
47ed554
feat(fork-core): pin CLIProxyAPI and add the cliproxy config section
q1 Sep 2, 2026
82032b1
feat(server): run CLIProxyAPI as a flag-gated sidecar
q1 Sep 2, 2026
a0cafc9
ci(fork): bundle the pinned CLIProxyAPI sidecar into releases
q1 Sep 2, 2026
c190e5a
docs(fork): mark cliproxy phase 1 active and regenerate SEAMS.md
q1 Sep 2, 2026
cda7376
docs(fork): log sync 20260902T231054Z and regenerate SEAMS.md
q1 Sep 2, 2026
d53ca05
fix(fork): restore the executable bit on the bundled CLIProxyAPI binary
q1 Sep 2, 2026
4a904d0
fix(fork): installer restores executable bits on bundled binaries
q1 Sep 2, 2026
b4312c1
fix(fork): leak-check runs git in the current checkout, not the scrip…
q1 Sep 3, 2026
7c48dc5
feat(fork-core): cliproxy accounts API contract and sync config
q1 Sep 3, 2026
4186902
feat(server): cliproxy auth-file sync between environments
q1 Sep 3, 2026
9f1d79d
feat(server): cliproxy accounts HTTP API
q1 Sep 3, 2026
c0cc54d
feat(client-runtime): cliproxy accounts client
q1 Sep 3, 2026
c7c6cbf
docs(fork): cliproxy phase 2 endpoints, sync setup, and config
q1 Sep 3, 2026
2146281
docs(fork): log sync 20260903T020032Z
q1 Sep 3, 2026
fa1f758
feat(web): cliproxy accounts settings section
q1 Sep 3, 2026
ee5db6b
feat(mobile): read-only cliproxy accounts card
q1 Sep 3, 2026
068515f
docs(fork): cliproxy accounts UI phase and seams
q1 Sep 3, 2026
5f8bd44
fix(fork): sync creates the local main branch when missing; log sync …
q1 Sep 3, 2026
92f0bae
ci(fork): run flags-off parity on sync review PRs too
q1 Sep 3, 2026
f1b422e
feat(swift-ios): carry upstream SwiftUI client from PR #5178
q1 Sep 3, 2026
b956110
feat(swift-ios): local identity override via Config/Local.xcconfig
q1 Sep 3, 2026
d5d08da
fix(swift-ios): build against current contracts
q1 Sep 3, 2026
0c4cbd4
docs(fork): register the swift-ios carry and regenerate SEAMS.md
q1 Sep 3, 2026
1fc2194
feat(server): persist cliproxy routing strategy into fork.json
q1 Sep 3, 2026
dae8f16
feat(server): propagate cliproxy account deletions through sync
q1 Sep 3, 2026
3180387
feat(server): q1code fork secret CLI and store-first sync secrets
q1 Sep 3, 2026
e6d6c1a
fix(web): hide cliproxy settings search entries while the flag is off
q1 Sep 3, 2026
7e4d883
feat(cliproxy): per-account request counters in the accounts table
q1 Sep 3, 2026
e53497c
docs(fork): regenerate SEAMS.md for the cliproxy gap closures
q1 Sep 3, 2026
641ec44
chore(fork): exclude the generated SEAMS.md from the formatter
q1 Sep 3, 2026
cc46bca
feat(fork-core): external proxy mode, richer status, and a restart en…
q1 Sep 3, 2026
0e3cb42
feat(server): external CLIProxyAPI mode, richer proxy status, and res…
q1 Sep 3, 2026
65b8315
feat(server): cliproxy sync and account mtimes read the external prox…
q1 Sep 3, 2026
49631f7
docs(fork): describe cliproxy external mode, restart, and the new sta…
q1 Sep 3, 2026
213b8d0
feat(mobile): Prism settings screen with account, sign-in, restart, a…
q1 Sep 3, 2026
a5ee90b
docs(fork): describe the mobile Prism screen in the cliproxy entry
q1 Sep 3, 2026
03f5701
feat(web): move the cliproxy accounts UI to a Prism settings tab
q1 Sep 3, 2026
2f15880
docs(fork): describe the Prism settings tab in the cliproxy entry
q1 Sep 3, 2026
4db220d
docs(fork): regenerate SEAMS.md for the Prism settings tab and screen
q1 Sep 3, 2026
9f66165
test(server): the boot-service fake uses the q1code unit name
q1 Sep 4, 2026
94c22ed
fix(web): keep upstream's provider entry first for "Google sign in"
q1 Sep 4, 2026
a863f77
docs(fork): sync log for 20260904T090720Z and regenerated SEAMS.md
q1 Sep 4, 2026
22fa6d2
chore(fork): follow the upstream formatter bump and libsecret CI depe…
q1 Sep 4, 2026
03b0f2a
ci(fork): install libsecret before the desktop build in the Check job
q1 Sep 4, 2026
dc21e50
refactor(fork): rename the cliproxy feature to Prism
q1 Sep 4, 2026
6c45cab
docs(fork): regenerate SEAMS.md after the Prism rename
q1 Sep 4, 2026
0a59c54
feat(fork-core): usage-source toggle in the Prism contract
q1 Sep 4, 2026
a6e98e9
feat(server): publish Prism as a usage-limit source
q1 Sep 4, 2026
5d79a05
feat(web): show Prism in Usage providers and on the Limits view
q1 Sep 4, 2026
6e3e8b6
docs(fork): record the Prism usage-source bridge and its seams
q1 Sep 4, 2026
6f8e499
feat(server): q1code prism status|accounts CLI for fleet monitors
q1 Sep 4, 2026
e72a6a7
feat(mobile): usage-source switch on the Prism status section
q1 Sep 4, 2026
c6a1e1a
docs(fork): prism CLI, bin.ts seam, and mobile usage-source switch
q1 Sep 4, 2026
10671f6
docs(fork): regenerate SEAMS.md after the Prism CLI seam
q1 Sep 4, 2026
c23776e
docs(fork): name the prism CLI in owned dirs and refresh the web test…
q1 Sep 4, 2026
d54befc
chore(fork): keep @q1code/core only as a server devDependency after t…
q1 Sep 4, 2026
f467179
docs(fork): record the continued upstream sync and CI recovery
Sep 4, 2026
a7190c8
chore(prism): pin CLIProxyAPI 7.2.151
Sep 4, 2026
b64f8c1
fix(prism): check local gateway health without release access
Sep 4, 2026
1210c3f
docs(prism): define account lifecycle and engine fork boundaries
Sep 4, 2026
7183587
feat(prism): expose account health and token lifetime
Sep 4, 2026
33f9b2c
docs(prism): define single-owner credential distribution
Sep 4, 2026
42f5f96
feat(prism): distribute serving credentials from one refresh owner
Sep 4, 2026
c522349
docs(prism): define provider routing and navigation seams
Sep 4, 2026
4b97790
feat(prism): expose persistent sign-in quarantine to clients
Sep 4, 2026
a75333e
feat(prism): route Claude and Codex turns with bounded direct fallback
Sep 4, 2026
7a29f81
feat(prism): add a top-level account area on web and SwiftUI
Sep 4, 2026
883f278
build(prism): pin the verified maintained engine release
Sep 4, 2026
a7418c5
chore(prism): refresh the reviewed seam inventory
Sep 4, 2026
7624669
docs(fork): audit the September 5 upstream sync
Sep 5, 2026
bd35ae6
feat(identity): scaffold mic.sc Prism integration
Sep 5, 2026
0c38274
fix(prism): prevent policy bypass and replay on direct retry
Sep 5, 2026
7266ae0
feat(identity): validate mic.sc access and paired Prism discovery
Sep 5, 2026
ab8fde1
feat(prism): integrate mic.sc sign-in and permission-aware clients
Sep 5, 2026
9525173
feat(prism): connect mic.sc sessions to paired inference
Sep 5, 2026
0d94f0d
fix(prism): clarify scoped access and mobile QA evidence
Sep 5, 2026
f756a88
fix(prism): preserve legacy startup fallback after proxy exit
Sep 5, 2026
3033ca7
feat(prism): add native host pairing and recovery
Sep 5, 2026
3a42e10
feat(prism): restore shared and native management controls
Sep 8, 2026
86b5b31
fix(prism): restore model eligibility and native operation fences
Sep 8, 2026
89dee1f
style(prism): restore formatting of recovered sources
Sep 8, 2026
41fff29
fix(prism): timestamp management observations with Effect Clock
Sep 8, 2026
39bd5ee
fix(prism): authorize remote threads with delegated inference credent…
Sep 8, 2026
2296b09
feat(web): relay local browser Prism identity through its environment
Sep 8, 2026
171f57e
fix(prism): allow remote browser thread authorization preflights
Sep 8, 2026
06cf119
fix(prism): revoke browser grants issued after local logout
Sep 8, 2026
81194f9
refactor(prism): isolate composer policies and reduce upstream patch …
Sep 8, 2026
66f6936
chore(fork): account for completed Prism integration surfaces
Sep 8, 2026
c507953
build(prism): pin the published independent engine release
Sep 8, 2026
4346b15
fix(prism): scope browser preflights to enabled routes
Sep 8, 2026
63160dd
docs(fork): regenerate the completed Prism seam inventory
Sep 8, 2026
5f91930
fix(release): consume engine archive listings before selecting the ex…
Sep 8, 2026
0b7fa85
fix(swift-ios): preserve the qualified scene environment wrapper
Sep 8, 2026
bfdfea5
style(prism): format integration seams for CI
Sep 8, 2026
cbba9cf
chore: adapt upstream 7bd7f99e6cab
Sep 11, 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.
49 changes: 49 additions & 0 deletions .agents/skills/fork-audit/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
name: fork-audit
description: Compare upstream commits since the last audit against the q1code feature registry and report what upstream now provides, what upstream changed near a seam, and which new upstream extension points would shrink a seam. Use after a sync, on a weekly cadence, or before planning fork work, to keep the series small and catch semantic conflicts a clean rebase hides.
---

# Fork Audit

Read `fork/FORK.md` and `fork/FEATURES.md` first. A rebase that applies cleanly can still be wrong: upstream may have renamed the function a seam calls, reimplemented a fork feature, or added the hook a seam was faking. This skill finds those.

## 1. Find the range

The last audit is the newest file in `fork/docs/audits/` (its first line records the upstream SHA it ended at) or, if none, the upstream SHA in the newest `fork/docs/sync-log/*.md`. The range is `<that sha>..main`. If it is empty, say so and stop.

```
git log --oneline --no-merges <last>..main
git diff --stat <last>..main
```

## 2. Per feature, three questions

Walk every `active`, `paused`, and `planned` entry in `fork/FEATURES.md`.

**(a) Does upstream now provide it?** Search the range for commits whose title, touched paths, or contract changes overlap the feature's purpose (settings keys, capabilities fields, provider drivers, workflow files, docs under `docs/user/`). If upstream shipped the same behavior, propose `upstreamed` (drop the fork commits at the next sync) or a narrowing of the feature to what upstream still lacks. If upstream shipped something that makes the feature pointless, propose `dropped`.

**(b) Did upstream change near a seam?** For each seam file in the entry (and in `fork/SEAMS.md`), check whether the range touches it:

```
git log --oneline <last>..main -- <seam file>
git diff <last>..main -- <seam file>
```

Any hit is a semantic conflict risk even when the rebase was clean. Read the hunk against the seam's 3 lines: is the callee still there, same signature, same call order, same guard? Then run that feature's tests as listed in its entry, plus a flags-off parity check for the seam. Report pass or fail with the exact test command.

**(c) New extension points?** Scan the range for additions that a seam could use instead of a hand-placed hook: new optional keys on `ExecutionEnvironmentCapabilities`, new registries or arrays (drivers, settings search items, commands, routes), new slot components, new per-instance settings, new env passthroughs, new `docs/internals/` pages describing an extension mechanism. For each, name the seam it would shrink or delete and whether the change is a fork edit or an upstream candidate.

## 3. Also check

- Upstream workflows added in the range (`.github/workflows/`): confirm they are disabled on q1/q1code (`gh workflow list -R q1/q1code`).
- Upstream changes to `AGENTS.md`, `CONTRIBUTING.md`, `.agents/skills/`: anything that changes how the fork skills should behave.
- Version or packaging changes (`apps/server/package.json`, `pinnedRuntime.ts`, release workflow) that affect the `base` update seams.
- `Upstream: pr:<n>` commits in the series: check PR state with `gh pr view <n> -R pingdotgg/t3code`. Merged means note the SHA for the next sync; closed means decide `no` or retry.

## 4. Output

If an open sync PR exists for this range, append the audit as a comment there. Otherwise write `fork/docs/audits/<utc-stamp>.md` (first line: `Upstream: <end sha>`), commit it on `fork` or the open feature branch with `Fork-Feature: base`, `Upstream: no`.

Format: one section per feature with findings under (a), (b), (c); a final "Proposed changes" list with concrete edits to `fork/FEATURES.md` (status changes, seam list updates) and any follow-up work (a `fork-feature` change, a `fork-upstream-pr` candidate, a test to add). Do not apply status changes yourself unless asked; the sync that drops commits does that.

Keep findings specific: file, line, upstream commit SHA, what breaks or what improves. "Upstream touched ChatView" is not a finding.
4 changes: 4 additions & 0 deletions .agents/skills/fork-audit/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
interface:
display_name: "Fork Audit"
short_description: "Compare upstream changes against the fork feature registry"
default_prompt: "Use $fork-audit to review upstream commits since the last audit against fork/FEATURES.md and report absorbed features, seam risks, and new extension points."
77 changes: 77 additions & 0 deletions .agents/skills/fork-feature/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
name: fork-feature
description: Scaffold a new q1code fork feature: registry entry in fork/FEATURES.md, flag in packages/fork-core/src/flags.ts, fork-owned directories, a seam checklist, the every-surface walk from AGENTS.md, and a plan that splits the commit series into upstream candidates and fork-only wiring. Use when starting any fork feature, before writing feature code, or when an existing feature needs its seams or flags re-planned.
---

# Fork Feature

Read `fork/FORK.md` first, then the `base` and `prism` entries in `fork/FEATURES.md` as examples. This skill produces the skeleton and the plan; feature code comes after and follows the plan.

## 1. Name it

Pick a slug: lowercase, hyphenated, unique in `fork/FEATURES.md`. It becomes the `Fork-Feature:` trailer, the flag key, and the `// fork: <slug>` marker. Check `git log --format=%B main..fork | grep Fork-Feature` for collisions with dropped slugs.

## 2. Registry entry

Add an entry to `fork/FEATURES.md` with every field from its header. Status `planned` until the first commit lands, then `active`. Write the purpose as one line a stranger can test against. Fill "removal condition" honestly; a feature with no removal condition is a feature nobody will delete.

## 3. Flag

Add one entry to `FORK_FLAGS` in `packages/fork-core/src/flags.ts`:

```ts
"<slug>": { description: "...", default: false, scope: "server" | "client" | "both" },
```

Default is `false`. The only exception in the registry is `update-check`; do not add another without a written reason in the entry. Scope `server` for things that spawn, read files, or change env; `client` for pure UI preferences; `both` when the server decides and the client renders. Client-only state persists under a fork-namespaced localStorage key, never in `ClientSettingsSchema`.

## 4. Directories

Create only what the feature needs, under fork-owned locations:

- `apps/server/src/fork/<slug>/` for services, reactors, drivers, RPC handlers
- `apps/web/src/fork/<slug>/`, `apps/mobile/src/fork/<slug>/`, `apps/desktop/src/fork/<slug>/`
- `packages/fork-core/src/<slug>*` for shared types, config schema, fork RPC contracts (fork RPCs are typed here, not in `packages/contracts`)
- `packages/client-runtime` only for logic web and mobile both need

Config the feature reads lives in `~/.q1code/userdata/fork.json` under a `<slug>` key with a schema in `packages/fork-core`. Secrets go through the server secret store, never `fork.json`.

## 5. Seam checklist

For each upstream file the feature must touch, write down: file, the exact extension point, the 3 lines, the flag guard (or why it is inert), and the marker. Prefer the extension points listed in `fork/FORK.md`. Reject any seam that:

- exceeds 3 lines,
- sits in the body of `ChatView.tsx`, `Sidebar.tsx`, or `ChatComposer.tsx` (use a `<ForkSlot />`),
- restructures upstream code (that is an upstream PR first, or `Fork-Seam-Debt: yes` with a deadline in the entry),
- would push `fork/SEAMS.md` over its 40-file budget.

Run `node scripts/fork/seams.ts` after adding seams and paste the resulting rows into the registry entry.

## 6. Hit every surface

Walk the list from `AGENTS.md` and record a decision for each, including "not supported here":

- **Entry points**: chat view, Settings (the q1code section), command palette, keybindings.
- **Clients**: web, desktop, mobile. Shared logic in `packages/client-runtime`; fork UI in each app's `src/fork/`.
- **Providers**: Codex, Claude, Cursor, Grok, OpenCode. One decision per adapter.
- **Contracts**: fork RPCs in `packages/fork-core`; the only `packages/contracts` seam is `forkFlags` unless the entry justifies another optional key.
- **Reverse states**: the flag off must fully undo the feature at runtime, and every action needs its inverse.
- **Connection modes**: local, Tailscale, relay. Multi-environment: what happens when one environment has the flag on and another off.
- **Docs**: user-facing behavior in `fork/docs/<slug>.md` (not `docs/user/`, which is upstream's); design notes in the registry entry.

## 7. Candidate/no split

Before writing code, split the planned commits:

- **`Upstream: candidate`** first: generic changes upstream would plausibly take (a new optional setting, a passthrough, a bug fix, a model manifest entry). No `@q1code/` imports, no flag checks, no fork paths, no markers. Each must build and pass tests on plain `main`. Keep each under the size upstream's CONTRIBUTING.md calls small.
- **`Upstream: no`** after: the flag, the seams, the fork directories, the docs.

Write the split into the registry entry under "upstream" as a list of planned commit titles. If nothing is a candidate, say so; if everything is, the feature may be an upstream PR and not a fork feature at all.

## 8. Tests

List in the entry: behavior tests for the feature (server logic gets focused tests, receipts not sleeps), and one flags-off parity test proving the seam is inert when the flag is off (no process, no env var, no rendered element, no capabilities field).

## 9. Commit the scaffold

One commit: registry entry, flag, empty directories with an index file if the toolchain needs one, the seam checklist as part of the entry. Trailers `Fork-Feature: <slug>`, `Upstream: no`. Then implement in the order the split says.
4 changes: 4 additions & 0 deletions .agents/skills/fork-feature/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
interface:
display_name: "Fork Feature"
short_description: "Scaffold a flag-gated q1code fork feature"
default_prompt: "Use $fork-feature to register a new fork feature, add its flag, plan its seams and surfaces, and split the work into upstream candidates and fork-only commits."
77 changes: 77 additions & 0 deletions .agents/skills/fork-release/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
name: fork-release
description: Cut a q1code release: pick the version from the upstream tag the fork sits on, tag `fork-v<upstreamVersion>-q1.<n>`, trigger `fork-release.yml`, verify the published artifacts (server tarball, web bundle, checksums.txt, install.sh), and hand off to the private deploy step. Use when `fork` is green and a new build should reach Mic's machines, or when a rollback needs the previous release located.
---

# Fork Release

Read `fork/FORK.md` first. Releases are GitHub Releases on q1/q1code only; there is no npm publish and no desktop build. The desktop updater feed and the server's pinned-runtime installer both read from these releases (`T3CODE_DESKTOP_UPDATE_REPOSITORY=q1/q1code`, `pinnedRuntime.ts` seam under `base`).

Deploying is not part of this skill and never happens from a sync or release job. Mic triggers deploys from the private repo.

## 1. Pick the commit

Release from `fork` only, at a commit where `fork-ci.yml` is green:

```
git fetch origin --tags
git switch fork && git pull --ff-only
gh run list -R q1/q1code --workflow fork-ci.yml --branch fork --limit 1
```

Do not release from a `sync/` branch or with an open sync PR unresolved unless the release is explicitly meant to skip that sync.

## 2. Compute the version

`<upstreamVersion>` is the version in `apps/server/package.json` on `main` at the merge base (`git merge-base main fork`), which upstream's nightly tagging keeps current, e.g. `0.0.39-nightly.20260902.1253`. `<n>` starts at 1 per upstream version and increments for each fork release on the same upstream version:

```
git tag -l "fork-v<upstreamVersion>-q1.*" | sort -V | tail -1
```

Tag: `fork-v<upstreamVersion>-q1.<n>`. The release workflow derives the package version and the About label ("q1code <version> on T3 Code <upstream version>") from it.

## 3. Tag and push

```
git tag -a fork-v<upstreamVersion>-q1.<n> -m "q1code <upstreamVersion>-q1.<n>"
git push origin fork-v<upstreamVersion>-q1.<n>
```

The tag push triggers `.github/workflows/fork-release.yml`. If it does not (workflow disabled, or push filter mismatch), `gh workflow run fork-release.yml -R q1/q1code -f tag=<tag>` and fix the trigger afterwards.

## 4. Watch

```
gh run watch -R q1/q1code $(gh run list -R q1/q1code --workflow fork-release.yml --limit 1 --json databaseId -q '.[0].databaseId')
```

On failure, read the log, fix on `fork`, delete the tag locally and remotely, and start over at step 1. Never move a tag that a release already exists for.

## 5. Verify artifacts

```
gh release view <tag> -R q1/q1code --json assets -q '.assets[].name'
```

Required assets:

- `q1code-<version>.tgz`: server plus bundled web. Download it; `tar tzf` shows `package/dist/bin.mjs` and the web bundle under `package/dist/`. `npm pack`-style layout so `npm install <url>` works in the pinned-runtime installer.
- `checksums.txt`: SHA-256 for every other asset. Verify the tarball against it; this is the integrity check `pinnedRuntime.ts` performs, since GitHub releases carry no registry integrity field.
- `install.sh`: the manual install path (`curl -fsSL <asset url> | sh`). Run it with `sh -n` for syntax, and read it: it must install the tarball into the launcher layout under `~/.q1code/runtime/versions/<version>` and nothing else.
- Web bundle archive, if the workflow publishes it separately from the tarball.
- When the `prism` feature ships: the Prism engine (CLIProxyAPI) bundle per platform under `dist/prism/`, checksummed.

Confirm the release notes name the upstream tag and SHA the build sits on. Confirm the release is not marked pre-release unless the tag is a nightly-style build.

## 6. Smoke

On a disposable base directory, run the install path end to end: `sh install.sh` into a temp `HOME`, start the server with `--home-dir <temp>`, check the About label reports the expected q1code and upstream versions, stop it by the PID you captured. Do not point it at `~/.q1code` or `~/.t3`.

## 7. Hand off

Report: tag, release URL, asset list with sizes and checksums, upstream version and SHA, and what changed since the previous `fork-v` tag (`git log --oneline <prev>..<tag>` grouped by `Fork-Feature`). The deploy step lives in the private repo (`services/q1code`, pin in `UPSTREAM.json`, `manage.sh`) and is Mic's call; do not run it, do not restart anything.

## Rollback

A release is never deleted. To roll a machine back, the deploy step pins the previous tag. To fix a bad release, cut `q1.<n+1>`.
4 changes: 4 additions & 0 deletions .agents/skills/fork-release/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
interface:
display_name: "Fork Release"
short_description: "Tag and publish a q1code GitHub release"
default_prompt: "Use $fork-release to tag fork-v<upstreamVersion>-q1.<n>, run fork-release.yml, verify the tarball, checksums, and install.sh, and report for deploy."
Loading
Loading