Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
6317 commits
Select commit Hold shift + click to select a range
d10c993
fix(core): normalize and validate tool input schemas at registration …
rekram1-node Nov 4, 2026
d0441c2
perf(ui): hold the pointer on a resize handle while it drags (#61561)
Hona Nov 4, 2026
bfca16a
perf(app): keep the side panel's last tab mounted across a switch to …
Hona Nov 4, 2026
7aabf5e
fix(app): send a composer prompt once when Send follows Enter (#61581)
Hona Nov 4, 2026
125655e
fix(core): reject URL credentials and ignore fragments in web permiss…
rekram1-node Nov 4, 2026
0934293
fix(ui): draw menu and picker scrollbars over content (#61231)
usrnk1 Nov 4, 2026
dd9a5ab
fix(desktop): deliver each deep link once to its window (#61648)
Hona Nov 4, 2026
7f24020
fix(app): drive provider connection from an explicit state machine (#…
Hona Nov 4, 2026
e5f2dde
fix(app): surface exhausted auto-approve permission requests (#61584)
Hona Nov 4, 2026
3ed4731
fix(session-ui): run user message actions through one explicit machin…
Hona Nov 4, 2026
efd6041
fix(app): end voice delegations on their own instead of stalling the …
Hona Nov 4, 2026
eb21d2c
fix(app): restore provider row when disconnect finds no credentials (…
Hona Nov 4, 2026
b562a00
fix(desktop): run one job at a time per WSL distro (#61662)
Hona Nov 4, 2026
0c44147
fix(app): show failed terminal lists with retry and reject stale answ…
Hona Nov 4, 2026
3d051d6
fix(app): reset the session route when switching tabs after a session…
Hona Nov 4, 2026
9a7f22a
fix(app): derive server controllers from an explicit lifecycle machin…
Hona Nov 4, 2026
dbdb30b
fix(app): keep the draft when a new session fails to create (#61579)
Hona Nov 4, 2026
7ebb13e
fix(ui): keep the list filter query in one state machine (#61661)
Hona Nov 4, 2026
605e912
fix(app): give plugin startup an explicit gate that always opens (#61…
Hona Nov 4, 2026
095098f
fix(app): drive the session queue with an explicit state machine (#61…
Hona Nov 4, 2026
4a6067d
fix(desktop): restart plugins when an update handoff fails (#61649)
Hona Nov 4, 2026
5631621
docs(app): require explicit state machines for lifecycle state (#61718)
Hona Nov 4, 2026
0d226da
fix(client): clear pending prompts the transcript shows were delivere…
jlongster Nov 4, 2026
b92e085
feat(app): accept a pasted redirect URL for MCP sign-in (#61706)
neriousy Nov 4, 2026
66ba73a
fix(cli): submit arguments after separator once (#61721)
rekram1-node Nov 4, 2026
3343941
feat(app): group settings navigation and distinguish pairing and chan…
usrnk1 Nov 4, 2026
003d24e
feat(app): separate unread sessions in the inbox (#61691)
usrnk1 Nov 4, 2026
e1b3b05
fix(app): stop reopening the side panel from stacking New tabs (#61747)
rekram1-node Nov 4, 2026
1a8a369
fix(desktop): retry plugin host and CLI loads after a transient failu…
Hona Nov 4, 2026
8f5d192
feat(session-ui): show indentation rails in expanded tool groups (#61…
usrnk1 Nov 4, 2026
443878d
fix(app): badge permission requests that auto-approve gave up on (#61…
Hona Nov 4, 2026
fda5043
feat(go): add Hy4 (#61709)
opencode-agent[bot] Nov 4, 2026
2bb4988
feat(app): add project-organized side tabs with session previews (#61…
usrnk1 Nov 4, 2026
5aeb55d
feat(app): add dialog stories and Components Lab previews (#60264)
usrnk1 Nov 4, 2026
d356b9b
fix(desktop): reveal hidden windows on a bounded fallback and before …
Hona Nov 4, 2026
4c8b83f
fix(app): drive timeline follow mode with an explicit state machine (…
Hona Nov 4, 2026
490739a
fix(app): keep persisting after a localStorage quota failure (#61764)
Hona Nov 4, 2026
bd420e0
fix(app): name the MCP tool and its input in the permission dock (#60…
bjck Nov 4, 2026
ca545df
fix(app): improve quote toolbar separation in dark mode (#61781)
usrnk1 Nov 4, 2026
bbf71d6
feat(app): add a touch dock to the mobile composer (#61773)
Hona Nov 4, 2026
2047c0d
fix(desktop): serialize background service connects through one state…
Hona Nov 4, 2026
eab8f49
fix(app): drive server health and plugin server state with explicit m…
Hona Nov 4, 2026
0cb3d68
fix(app): retry failed namespace writes and settle load and clear rac…
Hona Nov 4, 2026
8a8a9d4
refactor(app): replace dead directory bootstrap with a directory cach…
Hona Nov 4, 2026
e4e55bd
fix(app): allow desktop zoom out below 100% (#61788)
usrnk1 Nov 4, 2026
f12abca
fix(app): sync the event stream only when live and keep the newest en…
Hona Nov 4, 2026
5ff7cfb
fix(app): end pane tab drags on unmount, session switch, and second p…
Hona Nov 4, 2026
3ca0739
fix(app): keep the activity pill clear of Working on touch (#61794)
Hona Nov 4, 2026
e0300a9
fix(core): stop repeated zsh q flags from freezing the shell scanner …
yangguan-xue Nov 4, 2026
65f646f
fix(tui): stop session titles with newlines from crashing the TUI (#5…
ruck-syu Nov 4, 2026
4cb7901
fix(app): keep timeline Find on one fenced seek (#61727)
Hona Nov 4, 2026
ded4c29
fix(app): shorten export filenames for long session titles (#60347)
craigalbrecht Nov 4, 2026
bf937be
fix(app): keep side panel New tabs until they are closed or used (#61…
Tarquinen Nov 4, 2026
88cc1e7
fix(core): finish MCP connect and disconnect when the caller is inter…
neriousy Nov 4, 2026
6000b7c
perf(core): write each assistant part as its own row instead of rewri…
kitlangton Nov 4, 2026
ce5c980
fix(desktop): bound the renderer startup splash with an explicit stat…
Hona Nov 4, 2026
2e5d757
fix(desktop): adopt the early window through an explicit state machin…
Hona Nov 4, 2026
1a25051
fix(desktop): retry failed storage writes and refuse writes after clo…
Hona Nov 4, 2026
36bdbb8
fix(app): reveal a cold timeline after a bounded wait (#61591)
Hona Nov 4, 2026
e6338d6
fix(app): keep a scrolled-up reader in place when they submit (#61769)
opencode-agent[bot] Nov 4, 2026
9a3f03e
refactor(ai): flatten generation knobs on requests and defaults (#60971)
rekram1-node Nov 4, 2026
2e56427
fix(app): track plugin Ipc subscriptions in one state machine (#61802)
Hona Nov 4, 2026
910832f
refactor(app): end each plugin dialog exactly once through a state ma…
Hona Nov 4, 2026
8eb3c0c
fix(app): flush pending scroll positions when the layout unmounts (#6…
Hona Nov 4, 2026
a3bcf75
fix(app): show Markdown frontmatter as a properties list in file prev…
neriousy Nov 4, 2026
134d1b4
fix(app): read timeline follow state on composer submit (#61822)
rekram1-node Nov 4, 2026
a0c6df8
fix(core): start background compaction a fixed lead before the thresh…
neriousy Nov 4, 2026
7ffde6c
fix(app): keep the server dialog open on an invalid address and close…
Hona Nov 4, 2026
6838d95
fix(app): make tab promotion and route-to-tab sync explicit state mac…
Hona Nov 4, 2026
452cfb5
fix(app): retry failed mark-viewed reports for every caller (#61809)
Hona Nov 4, 2026
b551f60
docs(go): set Hy4's Go Teams limit to $65 (#61836)
opencode-agent[bot] Nov 4, 2026
33d52e6
feat(core): share MCP connections across locations with pool: true (#…
rekram1-node Nov 4, 2026
9ff07c0
fix(app): drive window plugin activation through one state machine (#…
Hona Nov 4, 2026
64ca766
fix(core): fall back to legacy for stdio MCP servers that ignore the …
rekram1-node Nov 4, 2026
e42ac69
fix(app): reload a file tree directory changed during its listing (#6…
Hona Nov 5, 2026
71f1ad1
fix(app): drive the voice call lifecycle from one state machine (#61812)
Hona Nov 5, 2026
fa34b0e
fix(session-ui): keep the newest Mermaid diagram when renders finish …
Hona Nov 5, 2026
c777f9a
fix(app): reread a workspace file changed during its read (#61818)
Hona Nov 5, 2026
8bae6b5
fix(app): announce voice session replies from a state machine instead…
Hona Nov 5, 2026
6f725c6
fix(session-ui): end the live turn phase on retry, failure and interr…
Hona Nov 5, 2026
f8b951c
fix(session-ui): drive tool and message disclosures through one state…
Hona Nov 5, 2026
6d36519
chore(console): show the New badge only on Hy4 in Go charts (#61849)
MrMushrooooom Nov 5, 2026
fb26077
fix(app): close the slash commands on a second press or Backspace (#6…
Hona Nov 5, 2026
9b7ffd3
refactor(app): drop the unused file tree scope option (#61846)
Hona Nov 5, 2026
d3c9e75
fix(gui-plugins): report failed file link opens and key the file pick…
Hona Nov 5, 2026
fff7299
fix(app): keep terminal focus and tab renames on what the user chose …
Hona Nov 5, 2026
57b7c58
fix(gui-plugins): drive browser pane bindings and tabs through one st…
Hona Nov 5, 2026
8f3f7b7
fix(app): reconnect a terminal once its restarted server lists it aga…
Hona Nov 5, 2026
2428952
fix(tui): show an error when Ctrl+V can't read the clipboard (#61094)
jimmyallinai Nov 5, 2026
4e8c27f
fix(gui-plugins): run browser pane attachments through one state mach…
Hona Nov 5, 2026
63a8aef
fix(gui-plugins): drive SSH connections and connect attempts with exp…
Hona Nov 5, 2026
14638b5
chore: bench with strobe 0.7.0; page cases check the OpenCode title (…
Hona Nov 5, 2026
a4b754e
fix(app): remove the new messages divider (#61878)
Hona Nov 5, 2026
c5105b8
fix(app): drive older-history paging with an explicit state machine (…
Hona Nov 5, 2026
1d7b842
fix(app): scroll the narrow review only to files focused there (#61868)
Hona Nov 5, 2026
94bb890
fix(app): keep each screen's review model while anything holds it (#6…
Hona Nov 5, 2026
9dc8105
refactor(gui-plugins): never share machine state objects that reach a…
Hona Nov 5, 2026
6469454
fix(app): show failed and offline review diffs instead of a clean tre…
Hona Nov 5, 2026
6b4fdc2
fix(app): keep browser refs through downloads and blocked navigations…
Hona Nov 5, 2026
e38c009
fix(app): show a failed site cookie read and let it retry (#61857)
Hona Nov 5, 2026
1e4ad07
fix(app): drive the active message cursor with an explicit state mach…
Hona Nov 5, 2026
22c7bf8
fix(app): show the browser element picker as on only once the page co…
Hona Nov 5, 2026
6f4fd90
fix(session-ui): drive shell runs, paced text and copy feedback throu…
Hona Nov 5, 2026
66b25c2
feat(core): one registry for feature flags, on by default in dev buil…
kitlangton Nov 5, 2026
6540d9b
fix(app): make blank /btw answers retryable (#61883)
Hona Nov 5, 2026
d1da426
fix(desktop): serialize force focus and fix the debug bar toggle (#61…
Hona Nov 5, 2026
20c94b7
fix(core): keep retrying while the provider's host is unreachable (#6…
kitlangton Nov 5, 2026
aff4323
feat(core): a switch that turns every feature flag on (#61826)
kitlangton Nov 5, 2026
2b6e6d8
fix(gui-plugins): drive the Office viewer worker with one explicit st…
Hona Nov 5, 2026
139a620
fix(gui-plugins): run pairing setup and copy feedback through explici…
Hona Nov 5, 2026
b13149d
fix(desktop): drive the updater through one explicit state machine (#…
Hona Nov 5, 2026
16c4b36
fix(gui-plugins): drive the spreadsheet frame pipeline with an explic…
Hona Nov 5, 2026
c579f9a
fix(app): model the Extensions flyout, MCP toggles and config actions…
Hona Nov 5, 2026
5eeb906
fix(ui): drive the dialog stack through one state machine (#61903)
Hona Nov 5, 2026
bc8cb10
fix(gui-plugins): drive Word progressive layout with an explicit stat…
Hona Nov 5, 2026
483969a
fix(desktop): drive renderer recovery with an explicit state machine …
Hona Nov 5, 2026
b6f3294
fix(app): drive rewind, undo and redo with one explicit state machine…
Hona Nov 5, 2026
24cddd1
fix(app): stop hash targets that can never load and wait for the time…
Hona Nov 5, 2026
d22f9b8
fix(session-ui): keep line comment drafts and edits in one state mach…
Hona Nov 5, 2026
e1296da
fix(app): drive the sidebar hover peek with one explicit state machin…
Hona Nov 5, 2026
4fcad73
fix(app): keep a running rewind's echo through a commit (#61920)
Hona Nov 5, 2026
b9e8b04
fix(app): drive the connect-provider dialog and Console catalog wait …
Hona Nov 5, 2026
eb463de
docs(legal): describe first-party product analytics in the privacy po…
adamdotdevin Nov 5, 2026
90544c9
fix(app): model session fork, compact, export and the Cmd+W close gua…
Hona Nov 5, 2026
c1cfbd1
fix(app): drive Home session list, search and row gestures with expli…
Hona Nov 5, 2026
65d59b9
fix(app): drive the composer focus handoff with an explicit state mac…
Hona Nov 5, 2026
c3f9fbb
fix(app): recover the optimistic prompt handoff when its admission ec…
Hona Nov 5, 2026
0d18f55
fix(desktop): model migration poll, picked files, plugin host follow …
Hona Nov 5, 2026
331a3b9
fix(session-ui): reveal a focused review comment through one state ma…
Hona Nov 5, 2026
1802d25
fix(app): drive embed freeze and flight stills with explicit state ma…
Hona Nov 5, 2026
8288ef7
fix(app): keep HostApis writes in call order with an explicit attach …
Hona Nov 5, 2026
ba5f113
fix(ui): drive createAutoScroll with an explicit state machine (#61931)
Hona Nov 5, 2026
2eedbc5
fix(app): drive plugin store loads and deferred writes with explicit …
Hona Nov 5, 2026
404259b
fix(app): drive model selection through one workspace state machine (…
Hona Nov 5, 2026
09dcb47
fix(app): drive the composer morph and Grow springs with explicit sta…
Hona Nov 5, 2026
32e70a8
fix(app): drive the voice WebRTC transport from an explicit state mac…
Hona Nov 5, 2026
602725f
fix(session-ui): drive file line selection with one state machine (#6…
Hona Nov 5, 2026
795ffef
fix(app): drive the directory picker with explicit state machines (#6…
Hona Nov 5, 2026
aa048bc
fix(app): track declared session-store retention in an explicit state…
Hona Nov 5, 2026
5e76d6a
fix(app): drive the terminal pane through one state machine (#61941)
Hona Nov 5, 2026
2b9216a
fix(app): settle permission replies and the session header fit throug…
Hona Nov 5, 2026
c293e53
fix(session-ui): drive the Pierre viewer render lifecycle with one st…
Hona Nov 5, 2026
8217d4d
fix(session-ui): drive the markdown worker with an explicit state mac…
Hona Nov 5, 2026
ceb8288
ci(process-daemon): stop pinning the protocol in the Windows smoke te…
jlongster Nov 5, 2026
438ca53
fix(ui): drive tooltip open and popup suppression through one state m…
Hona Nov 5, 2026
3fa4f63
fix(app): move sessions to new worktrees through one state machine an…
Hona Nov 5, 2026
36f40c8
fix(desktop): native menu routing and plugin instance lifecycle as st…
Hona Nov 5, 2026
961f3ae
fix(app): drive the settings search session with an explicit state ma…
Hona Nov 5, 2026
833b3e1
fix(app): resolve settings server availability and retry with explici…
Hona Nov 5, 2026
2aa8b9b
fix(app): drive the Settings Models provider reveal with an explicit …
Hona Nov 5, 2026
ee6b870
fix(app): drive the terminal attachment through one state machine (#6…
Hona Nov 5, 2026
5ea5c5e
fix(gui-plugins): drive the Pierre file tree through one state machin…
Hona Nov 5, 2026
8fd7c61
fix(app): drive the model chip, location dialog and pin board with ex…
Hona Nov 5, 2026
b6cfbec
fix(core): find Microsoft Store PowerShell 7 on Windows (#61952)
Hona Nov 5, 2026
75e5879
fix(app): retry inbox branch loads and lease keybind suspension per c…
Hona Nov 5, 2026
0280763
fix(ui): drive the image preview through flight and zoom state machin…
Hona Nov 5, 2026
a4ce0b0
fix(desktop): drive the IPC port handshake and event stream through s…
Hona Nov 5, 2026
19ad73b
fix(app): show the server's release in the web About page (#61965)
Hona Nov 5, 2026
9d89512
fix(app): drive pane sizing and the question dock through state machi…
Hona Nov 5, 2026
12c371e
fix(app): drive the web search consent dock through one state machine…
Hona Nov 5, 2026
8a12d6b
fix(app): keep the missing-folder view across reconnects and stop voi…
Hona Nov 5, 2026
14df429
fix(app): drive request slots and draft image retention through state…
Hona Nov 5, 2026
f5783b0
fix(app): drive lab Play, voice turn gate and voice panel drag throug…
Hona Nov 5, 2026
54dbbdd
fix(app): drive plugin link checks, located writes and side layout th…
Hona Nov 5, 2026
c7ee32b
fix(session-ui): retry local Markdown images and stop leaking gutter …
Hona Nov 5, 2026
6eb22e7
fix(app): drive usage, worktree delete, MCP toggles and the QR scanne…
Hona Nov 5, 2026
bc4a83a
chore: bench with strobe 0.7.3 (#61976)
Hona Nov 5, 2026
1337df3
fix(app): settle CSS exit presence through one state machine (#61978)
Hona Nov 5, 2026
77a4285
fix(app): drive titlebar tab rename, tab loads and palette search thr…
Hona Nov 5, 2026
b9ead97
fix(app): drive shell history, intents, hydration and panel motion th…
Hona Nov 5, 2026
008bb30
fix(app): drive the branch picker and wordmark lodger through state m…
Hona Nov 5, 2026
ae828d7
fix(app): settle settings writes, version copy, renames and shortcut …
Hona Nov 5, 2026
3b1ab8d
fix(app): keep composer comment focus and editor caret through explic…
Hona Nov 5, 2026
00c25e8
fix(ui): make scroll thumb, typeahead, resize handle and animated num…
Hona Nov 5, 2026
4f6a84c
fix(app): drive plugin GUI loading, New tabs, deferred menus and comp…
Hona Nov 5, 2026
ca1050c
fix(app): drive Home's server and project selection with an explicit …
Hona Nov 5, 2026
1a1993e
fix(ui): keep theme previews on screen and out of storage (#61979)
Hona Nov 5, 2026
dd39237
fix(plugin-browser): drive browser attachments through one state mach…
Hona Nov 5, 2026
8b29d45
fix(browser): drive tunnel, proxy and network hop lifecycles through …
Hona Nov 5, 2026
491c8cd
fix(ui): drive text reveal, copy feedback, menu modality and avatar h…
Hona Nov 5, 2026
c605ac3
fix(gui-plugins): drive the artifact viewer, image pan, video overlay…
Hona Nov 5, 2026
0b21b76
fix(ui): drive line comment mentions, popovers, toasts and segmented …
Hona Nov 5, 2026
4fa365f
feat(app): update the web app and PWA in place (#61995)
Hona Nov 5, 2026
9b86075
feat(process-daemon): protocol v8 for shell commands (#61875)
jlongster Nov 5, 2026
7f40c50
fix(app): drive knobs panel, goal pill and catalog sync through state…
Hona Nov 5, 2026
ec4f872
fix(desktop): drive browser pane load, profiling, address field and d…
Hona Nov 5, 2026
b6a5a10
fix(app): keep the Office worker queue moving and bound What's New (#…
Hona Nov 5, 2026
621f0ee
fix(app): explicit review folder loads, render gate and narrow scroll…
Hona Nov 5, 2026
026dedb
fix(gui-plugins): drive context export and scroll, heap capture and m…
Hona Nov 5, 2026
fe19d9b
fix(session-ui): drive file media, find, sources expand and markdown …
Hona Nov 5, 2026
2ec6485
fix(app): make tab preview, crash page actions, notification focus lo…
Hona Nov 5, 2026
96e0422
fix(gui-plugins): make details list loads, popover open modality and …
Hona Nov 5, 2026
418f862
fix(gui-plugins): drive ssh, wsl and pairing lifecycles through state…
Hona Nov 5, 2026
ae3de41
fix(app): explicit state machines for timeline sync, quote toolbar, q…
Hona Nov 5, 2026
2a9c54c
fix(gui-plugins): drive the terminal quote toolbar through a state ma…
Hona Nov 5, 2026
5f0d45c
fix(app): drive the Go hero loop, model picker flyout and drawer, and…
Hona Nov 5, 2026
af5d3b5
fix(gui-plugins): make Office sheet pick, grid drag, slide paint and …
Hona Nov 5, 2026
883249d
fix(session-ui): drive markdown readiness, steer grow-in and tool sta…
Hona Nov 5, 2026
008619a
fix(app): select the session route view from one resolution machine (…
Hona Nov 5, 2026
118d967
fix(gui-plugins): make file view scroll, Git init and Open in app exp…
Hona Nov 5, 2026
3698a9b
fix(app): drive the shell panel, route reveal, header actions and kep…
Hona Nov 5, 2026
e99b6c5
fix(session-ui): show token speed with the response footer (#62020)
usrnk1 Nov 5, 2026
42be645
fix(app): drive quote comment, upload and @-mention search lifecycles…
Hona Nov 5, 2026
1c3decd
fix(app): drive composer history, shell mode and retry IDs through ex…
Hona Nov 5, 2026
7e42be4
fix(core): follow Console redirects for skills and web search (#62015)
kitlangton Nov 5, 2026
893e8dc
fix(core): honor an MCP server's startup timeout when waiting for it …
kitlangton Nov 5, 2026
fa2843f
fix(app): show the main checkout's branch for Local in new sessions (…
usrnk1 Nov 5, 2026
97be25f
fix(ui): prevent plain comment clicks from sending prompts (#62070)
usrnk1 Nov 5, 2026
79de5cb
chore: bench with strobe 0.8.0 (#62069)
Hona Nov 5, 2026
d7d8581
fix(app): increase busy tab spinner contrast in dark theme (#62074)
usrnk1 Nov 5, 2026
d0045aa
feat(app): show a failed dot on tabs whose run failed (#62077)
usrnk1 Nov 5, 2026
ee368d2
fix(app): settle quote sends with the composer submit (#62037)
Hona Nov 5, 2026
926b2af
docs(legal): drop the cookie banner from the privacy policy (#62084)
adamdotdevin Nov 5, 2026
6bd4719
fix(app): show a prompt sent while agents and models load in the time…
Hona Nov 5, 2026
d8cb7c7
fix(desktop): settle renderer storage, plugin menubar and fullscreen …
Hona Nov 5, 2026
dbc3f50
fix(desktop): route OS session end, CLI install, debug export and dra…
Hona Nov 5, 2026
e90f8d4
refactor(ai): move endpoint support flags to model capabilities (#61492)
rekram1-node Nov 5, 2026
74fb861
fix(console): keep download buttons on one line (#62079)
caseclose Nov 5, 2026
187486e
fix(session-ui): drop the leading slash from project file labels (#55…
Velmet44 Nov 5, 2026
e716e75
fix(tui): add right padding to messages and tool blocks (#62104)
Tarquinen Nov 5, 2026
c9a9ac1
fix(session-ui): drive mentions, attachment media, review resize and …
Hona Nov 5, 2026
2f31b3d
fix(core): keep anthropic-beta values on Copilot requests (#62107)
Tarquinen Nov 5, 2026
121d822
fix(app): fence session navigation, share session exports, and claim …
Hona Nov 5, 2026
17100fc
fix(app): give composer recovery, queue mutations, row stops and /rel…
Hona Nov 5, 2026
61695d1
fix(gui-plugins): explicit machines for Keep screen active and the WS…
Hona Nov 5, 2026
10db139
fix(app): make archived restore, inbox delete, sidebar rename and inb…
Hona Nov 5, 2026
6666acc
fix(desktop): settle startup asset gate, plugin catalogs and first-la…
Hona Nov 5, 2026
e6e6a51
refactor(ai): replace model and route defaults with model options (#6…
rekram1-node Nov 5, 2026
c999e81
fix(tui): suspend with ctrl+z while a form or dialog is open (#62118)
Tarquinen Nov 5, 2026
3a58140
fix(app): drop the models line when a connection adds no models (#62119)
Tarquinen Nov 5, 2026
47cace6
fix(app): make settings account holds, worktree delete check, extensi…
Hona Nov 5, 2026
b903ae5
fix(app): switch language atomically and bound camera, sound preview …
Hona Nov 5, 2026
f019cea
fix(gui-plugins): bound terminal, updater and lazy chunk work with ex…
Hona Nov 5, 2026
b8a9e8a
fix(app): show load failures in review previews, details changes, fil…
Hona Nov 5, 2026
50971ae
fix(app): bound MCP elicitation and auto-approve requests with explic…
Hona Nov 5, 2026
48f88b4
fix(ui): give text shimmer, typewriter and markdown worker explicit l…
Hona Nov 5, 2026
5b6a872
fix(ui): give text shimmer, typewriter and markdown worker explicit l…
Hona Nov 5, 2026
686c569
fix(ui): explicit machines for menu scroll thumb, list async load and…
Hona Nov 5, 2026
f9d01ab
fix(app): bound new-session start phases, fix brick breaker phase tim…
Hona Nov 5, 2026
7452716
fix(tui): contain plugin dialogs that throw while rendering (#62110)
Tarquinen Nov 5, 2026
f39aa60
fix(app): recover MCP sign-in and provider form steps that could get …
Hona Nov 5, 2026
b4c5c9c
fix(app): retry failed turn diffs and make timeline touch, side panel…
Hona Nov 5, 2026
a316ae6
ci(process-daemon): read the release protocol version from the source…
jlongster Nov 5, 2026
1009033
chore(process-daemon): release 0.5.0 (#62007)
jlongster Nov 5, 2026
18a74af
chore: merge upstream opencode dev into mobilecode
hsandhu Nov 5, 2026
9f994c9
fix(desktop): re-apply MobileCode identity on upstream's new desktop …
hsandhu Nov 5, 2026
af59841
feat(core): port device preview to upstream's tool plugins and http-api
hsandhu Nov 5, 2026
7b2d621
chore(protocol): regenerate OpenAPI document
hsandhu Nov 5, 2026
5802c33
chore: keep only the Release macOS workflow
hsandhu Nov 5, 2026
44695ba
feat(gui-plugins): port the device preview pane to a built-in plugin
hsandhu Nov 5, 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.
9 changes: 9 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,11 @@
packages/core/migration/**/snapshot.json linguist-generated
packages/core/src/database/migration.gen.ts linguist-generated
packages/core/src/models-dev/snapshot.txt linguist-generated
packages/core/src/database/schema.gen.ts linguist-generated
packages/desktop/src/main/storage/migration.gen.ts linguist-generated
packages/protocol/openapi.json linguist-generated
packages/client/src/promise/generated/** linguist-generated
packages/client/src/effect/generated/** linguist-generated
packages/client/src/effect/api/** linguist-generated
packages/core/src/**/*.txt text eol=lf
packages/httpapi-codegen/test/generated/*.ts text eol=lf
8 changes: 8 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# web + desktop packages
packages/app/ @Hona @Brendonovich
packages/desktop/ @Hona @Brendonovich

# GUI plugin SDK
# changes here must be meticulous - pls chat first :)
packages/plugin/src/gui/ @Hona

# CI and releases. Release jobs that hold secrets run only .github/workflows/release.yml and .github/release/,
# which makes this path the release security boundary.
/.github/ @anomalyco/releasers
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ body:
- type: textarea
id: screenshot-or-link
attributes:
label: Screenshot and/or share link
description: Run `/share` to get a share link, or attach a screenshot
placeholder: Paste link or drag and drop screenshot here
label: Screenshot
description: Attach a screenshot or recording
placeholder: Drag and drop screenshot here
validations:
required: false

Expand Down
13 changes: 7 additions & 6 deletions .github/RELEASING.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
# MobileCode releases

MobileCode publishes unsigned Apple-silicon macOS builds from `release-macos.yml`. The workflow creates a GitHub release with the DMG, ZIP, and `latest-mac.yml`, and also retains those files as workflow-run artifacts.
MobileCode publishes unsigned Apple-silicon macOS builds from `release-macos.yml`, the only workflow in this repository. It runs the desktop and device-preview tests, builds the bundled CLI and the desktop app, attaches the DMG to a GitHub release, and also keeps it as a workflow-run artifact.

## One-time GitHub setup

1. In **Settings → Actions → General**, enable GitHub Actions and allow actions created by GitHub and verified creators.
2. In the **Actions** tab, disable inherited OpenCode workflows that MobileCode does not use. Leave **Release macOS** enabled. Workflow enabled/disabled state is stored by GitHub, so this avoids changing upstream workflow files and keeps upstream merges straightforward.
3. In **Settings → Actions → General → Workflow permissions**, select **Read and write permissions**. The release workflow also declares its narrower `contents: write` permission.
2. In **Settings → Actions → General → Workflow permissions**, select **Read and write permissions**. The release workflow also declares its narrower `contents: write` permission.

No Apple secrets are required while builds are unsigned. macOS auto-update is intentionally disabled for unsigned builds because Squirrel.Mac requires code signing. Users download each release manually and must approve the app on first launch.

## Create a release

Open **Actions → Release macOS → Run workflow**, choose `dev`, and choose whether to publish immediately. The workflow reads the version from `packages/opencode/package.json` and creates the matching tag. For example, OpenCode version `1.18.29` produces `v1.18.29`. If an unpublished tag or draft release already exists for that version, a manual run safely moves the tag to the selected commit. Published release tags remain immutable.
Open **Actions → Release macOS → Run workflow**, choose `dev`, and choose whether to publish immediately. The workflow reads the version from `packages/desktop/package.json` and creates the matching tag. For example, version `2.2.5` produces `v2.2.5`. If an unpublished tag or draft release already exists for that version, a manual run safely moves the tag to the selected commit. Published release tags remain immutable.

Pushing a `v*` tag is also supported and creates a draft release for review, but the tag version must match `packages/opencode/package.json`.
Pushing a `v*` tag is also supported and creates a draft release for review, but the tag version must match `packages/desktop/package.json`.

## Sync from OpenCode

Expand All @@ -26,7 +25,9 @@ git checkout dev
git merge upstream/dev
```

Keep upstream's internal `@opencode-ai/*` workspace package names, `OPENCODE_*` environment variables, server protocol, and CLI terminology. They are implementation contracts, not installed-app identity, and retaining them minimizes merge conflicts. MobileCode-specific identity is limited to packaging metadata, application data directories, URL protocol, assets, and release configuration.
Keep upstream's internal `@opencode/*` workspace package names, `OPENCODE_*` environment variables, server protocol, and CLI terminology. They are implementation contracts, not installed-app identity, and retaining them minimizes merge conflicts. MobileCode-specific identity is limited to packaging metadata, application data directories, URL protocol, assets, and release configuration.

Upstream adds and changes workflows under `.github/workflows/`. MobileCode keeps only `release-macos.yml`, so delete any new upstream workflow files during the merge (`git rm`), and resolve modify/delete conflicts on removed workflows by keeping them deleted.

After resolving any branded-file conflicts, verify from `packages/desktop`:

Expand Down
1 change: 0 additions & 1 deletion .github/TEAM_MEMBERS
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,3 @@ Slickstef11
usrnk1
vimtor
StarpTech
vaprdev
39 changes: 24 additions & 15 deletions .github/actions/setup-bun/action.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
name: "Setup Bun"
description: "Setup Bun with caching and install dependencies"
inputs:
bun-version:
description: "Bun version to install instead of the root packageManager version"
required: false
default: ""
install-flags:
description: "Additional flags to pass to 'bun install'"
required: false
Expand All @@ -15,56 +19,61 @@ runs:
with:
node-version: "24"

- name: Get Bun version and baseline download URL
- name: Get baseline download URL
id: bun-url
shell: bash
run: |
V=$(node -p "require('./package.json').packageManager.split('@')[1]")
# Bun 1.4.2 includes the patched peer-variant fix in oven-sh/bun#33646.
if [ "$RUNNER_OS" = "Windows" ]; then V=1.4.2; fi
echo "version=$V" >> "$GITHUB_OUTPUT"
if [ "$RUNNER_ARCH" = "X64" ]; then
V="${{ inputs.bun-version }}"
if [ -z "$V" ]; then V=$(node -p "require('./package.json').packageManager.split('@')[1]"); fi
TAG=$([ "$V" = "canary" ] && echo "canary" || echo "bun-v${V}")
case "$RUNNER_OS" in
macOS) OS=darwin ;;
Linux) OS=linux ;;
Windows) OS=windows ;;
esac
echo "url=https://github.com/oven-sh/bun/releases/download/bun-v${V}/bun-${OS}-x64-baseline.zip" >> "$GITHUB_OUTPUT"
echo "url=https://github.com/oven-sh/bun/releases/download/${TAG}/bun-${OS}-x64-baseline.zip" >> "$GITHUB_OUTPUT"
fi

- name: Setup Bun
id: setup-bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: ${{ !steps.bun-url.outputs.url && steps.bun-url.outputs.version || '' }}
bun-version: ${{ !steps.bun-url.outputs.url && inputs.bun-version || '' }}
bun-version-file: ${{ !steps.bun-url.outputs.url && !inputs.bun-version && 'package.json' || '' }}
bun-download-url: ${{ steps.bun-url.outputs.url }}

- name: Get cache directory
id: cache
shell: bash
run: echo "dir=$(bun pm cache)" >> "$GITHUB_OUTPUT"
run: |
echo "dir=$(bun pm cache)" >> "$GITHUB_OUTPUT"
echo "version=$(bun --version)" >> "$GITHUB_OUTPUT"

# On Windows, extracting the cache archive takes longer than Bun downloading and
# extracting the same packages itself, so Windows installs skip the cache.
- name: Restore Bun dependencies
id: bun-cache
if: runner.os != 'Windows'
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.cache.outputs.dir }}
key: ${{ runner.os }}-bun-${{ steps.setup-bun.outputs.bun-version }}-${{ hashFiles('**/bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-${{ steps.setup-bun.outputs.bun-version }}-
key: ${{ runner.os }}-${{ runner.arch }}-bun-${{ steps.cache.outputs.version }}-${{ hashFiles('bun.lock', 'patches/**') }}
# Each dev merge changes beta's bun.lock. Beta falls back to the newest cache for the same Bun version
# (Bun's cache stores every package version separately) instead of installing everything from npm.
restore-keys: ${{ (github.ref_name == 'beta' && format('{0}-{1}-bun-{2}-', runner.os, runner.arch, steps.cache.outputs.version)) || '' }}

- name: Install setuptools for distutils compatibility
# Ubuntu 24.04 marks its Python as externally managed (PEP 668); allow the install rather than log an error.
run: python3 -m pip install --break-system-packages setuptools || pip install setuptools || true
shell: bash

- name: Install dependencies
run: bun install ${{ inputs.install-flags }}
run: bun install --frozen-lockfile ${{ inputs.install-flags }}
shell: bash

- name: Save Bun dependencies
if: steps.bun-cache.outputs.cache-hit != 'true' && github.event_name != 'pull_request' && github.event_name != 'pull_request_target'
if: runner.os != 'Windows' && steps.bun-cache.outputs.cache-hit != 'true' && github.event_name != 'pull_request' && github.event_name != 'pull_request_target'
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.cache.outputs.dir }}
key: ${{ runner.os }}-bun-${{ steps.setup-bun.outputs.bun-version }}-${{ hashFiles('**/bun.lock') }}
key: ${{ steps.bun-cache.outputs.cache-primary-key }}
43 changes: 0 additions & 43 deletions .github/actions/setup-git-committer/action.yml

This file was deleted.

71 changes: 0 additions & 71 deletions .github/publish-python-sdk.yml

This file was deleted.

7 changes: 7 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@ Please provide a description of the issue, the changes you made to fix it, and w

### How did you verify your code works?

### Visual

_Optional, for user-facing changes: a small looping animated SVG (240×72) of the change, shown in the desktop app's "What's new in beta". Replace the block below or delete this section._

```svg
```

### Screenshots / recordings

_If this is a UI change, please include a screenshot or recording._
Expand Down
24 changes: 0 additions & 24 deletions .github/workflows/close-issues.yml

This file was deleted.

50 changes: 0 additions & 50 deletions .github/workflows/close-prs.yml

This file was deleted.

Loading