Commit graph

12329 commits

Author SHA1 Message Date
Dax Raad
716f6658db feat(core): add skill autoinvoke metadata 2026-07-01 15:13:40 -04:00
Dax Raad
b3650e2316 fix(core): provide job service in session default layer 2026-07-01 14:38:35 -04:00
Dax Raad
fb884bb91e feat: update session notices and skill reloads 2026-07-01 14:37:27 -04:00
Dax Raad
98c09884bf feat(protocol): publish package 2026-07-01 13:53:09 -04:00
Dax Raad
5e47501b8b feat(schema): publish package 2026-07-01 13:33:59 -04:00
Dax Raad
d51ba6ed94 fix(cli): run update check in background 2026-07-01 13:18:00 -04:00
Dax Raad
1a06198954 fix(tui): indent synthetic session notices 2026-07-01 12:39:06 -04:00
Dax Raad
72ec09cf74 fix(tui): keep backgrounded subagents spinning 2026-07-01 12:33:01 -04:00
Dax Raad
e2bca216a2 feat: background blocking tools 2026-07-01 12:18:04 -04:00
Shoubhit Dash
b5823d1077
fix(tui): show queued prompt admissions (#34771) 2026-07-01 21:27:56 +05:30
Dax
e1fafa2e54
fix(cli): start service in home directory 2026-07-01 11:36:57 -04:00
Dax Raad
ae49b21376 fix(core): save external permissions at project root 2026-07-01 11:27:24 -04:00
Dax Raad
5710064ae1 feat(core): generate session titles from first prompt
Add SessionTitle service that generates a session title from the
session's sole user message via the customizable "title" agent, then
renames the session. Runs once per session, gated on durable history
having exactly one user message (no default-title string comparison).

Wire it into SessionRunner as a background fork after the first turn's
prompt promotion makes the user message visible; forking before
promotion caused the first-message lookup to see zero rows and silently
no-op.

Closes #34364
2026-07-01 11:07:44 -04:00
Shoubhit Dash
4617b03ca9
fix: surface shell stderr output (#34761) 2026-07-01 20:33:48 +05:30
Dax Raad
6a91a682e4 feat(core): add plugin list endpoint
Adds a plugin.list HTTP endpoint that reports currently loaded plugins, wires it through protocol, server, and generated clients, and merges it into sdk-next's plugin API. Also updates the sample plugin to register a primary agent instead of a subagent for local testing.
2026-07-01 00:53:53 -04:00
Aiden Cline
f8626865b9
fix(core): expose models.dev modes as models (#34714) 2026-06-30 22:48:25 -05:00
opencode-agent[bot]
2324a63fc6
feat(cli): add session resume flags (#34713)
Co-authored-by: Kit Langton <7587245+kitlangton@users.noreply.github.com>
2026-06-30 23:37:25 -04:00
Kit Langton
1ce607c230
refactor(plugin): move tool implementation to plugin (#34665) 2026-06-30 23:30:56 -04:00
Dax Raad
c26f6f95f7 fix(core): deny subagent tool for default subagents 2026-06-30 23:11:06 -04:00
Dax Raad
d77b87ea65 feat(script): use GitHub run number for preview build identifier 2026-06-30 23:05:46 -04:00
Dax Raad
6ca6566bd3 fix(core): derive reasoning variants from models.dev 2026-06-30 22:50:20 -04:00
Dax Raad
8dd993d25a fix(tui): stabilize reload connection state 2026-06-30 22:31:51 -04:00
Dax Raad
24ab17e718 fix(tui): keep background shell spinner active 2026-06-30 21:56:45 -04:00
Aiden Cline
0a60662d71
feat(cli): add mcp list, add, auth, and logout commands (#34643) 2026-06-30 13:49:07 -05:00
Kit Langton
194b0615e0
feat(plugin): support plugin-provided tools (#34619) 2026-06-30 13:18:56 -04:00
opencode-agent[bot]
a5c51e11d0
fix(core): drop legacy config filename (#34650)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-06-30 11:12:15 -05:00
opencode-agent[bot]
8f1db7d06d
fix(tui): align cli model picker behavior (#34571)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-06-30 09:36:38 -05:00
Aiden Cline
b1ca070b3b
feat(core): add mcp support (#34513) 2026-06-30 08:37:44 -05:00
Aiden Cline
12887e572e
fix(core): align agent tests with universal default permissions (#34561) 2026-06-30 08:24:54 -05:00
Aiden Cline
75715e2115
fix(core): parse models.dev reasoning options (#34618) 2026-06-30 07:54:18 -05:00
Dax Raad
a1250cd690 test(sdk-next): update embedded client namespaces 2026-06-30 01:16:33 -04:00
Dax Raad
23adaaaeab feat(core): add native skill activation 2026-06-30 01:16:33 -04:00
opencode-agent[bot]
524ee8fc03
fix(core): gate v2 edit tools by model (#34558)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2026-06-29 23:53:41 -05:00
Dax Raad
0f9719a7b5 fix(cli): support service autostart setting 2026-06-30 00:28:11 -04:00
Dax Raad
1b83c08b8a Update service configuration CLI 2026-06-30 00:18:26 -04:00
Dax Raad
02cb350880 feat(tui): refresh agents after update events 2026-06-30 00:18:26 -04:00
opencode-agent[bot]
4ce830a919
fix(core): align v2 prompt tool names (#34557)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-06-29 22:53:56 -05:00
Kit Langton
461a1c3ab4
refactor(core): replace background job service (#34559) 2026-06-29 23:53:35 -04:00
Kit Langton
6846542115
fix(client): singularize generated api groups (#34534) 2026-06-29 21:07:01 -04:00
Aiden Cline
f928b5be07
fix(core): sanitize registered tool names (#34512) 2026-06-29 18:30:40 -05:00
Kit Langton
ecfa918760
feat(client): expose fs read in promise client (#34504) 2026-06-29 19:21:18 -04:00
Aiden Cline
f80624cf17
fix(tui): surface provider error in assistant footer (#34511) 2026-06-29 16:46:50 -05:00
Dax Raad
fe59174c23 fix(core): resume after synthetic session message 2026-06-29 17:32:54 -04:00
Dax Raad
2fe057324f fix(core): provide filesystem to shell tool 2026-06-29 17:27:24 -04:00
Dax Raad
19a5b5a05d feat(core): support background shell tool 2026-06-29 17:01:04 -04:00
Dax Raad
ff4cab03c1 refactor(core): simplify session fork event 2026-06-29 16:16:13 -04:00
Dax Raad
b2d46ecd7e feat(core): add durable session fork event 2026-06-29 16:13:51 -04:00
Dax Raad
360d85a521 fix(tui): indent subagent empty state 2026-06-29 15:46:51 -04:00
Dax Raad
c65a7d50c1 feat(tui): integrate composer picker 2026-06-29 15:37:09 -04:00
Dax Raad
fa73546a86 feat(tui): add composer tabs 2026-06-29 14:20:43 -04:00
Kit Langton
935ac2db91
feat(client): expose v2 project APIs (#34456) 2026-06-29 14:10:11 -04:00
Dax Raad
01edae4a7f fix(core): spawn shell non-interactively without sourcing rc files
ShellSelect.args() ran zsh/bash with -l and explicitly sourced .zshrc/.bashrc,
loading user functions and aliases that can shadow builtins and return non-zero
exit codes, breaking && chains. Match the old tool behavior: plain non-login
non-interactive shell -c command with cwd passed via spawn options.
2026-06-29 12:05:56 -04:00
Kit Langton
381d67572e
refactor(tui): wire generated client reads (#34381) 2026-06-29 11:36:10 -04:00
Dax Raad
e8ac44430b feat(cli): poll for updates every 10 minutes in serve 2026-06-29 00:59:01 -04:00
Dax Raad
5ae93092aa refactor(core): replace bash tool with shell tool 2026-06-29 00:44:17 -04:00
Kit Langton
595c6bd4a7
feat: add v2 generate text endpoint (#34371) 2026-06-28 22:43:58 -04:00
Kit Langton
7073e8797f
fix(core): remove per-prompt system option (#34361) 2026-06-28 21:56:59 -04:00
Kit Langton
f7034a35a8
feat(core): add v2 manual compaction (#34336) 2026-06-28 21:18:19 -04:00
Kit Langton
53b93b6991
feat(sdk-next): let embedders contribute plugins via opencode.plugin (#34356) 2026-06-28 20:30:21 -04:00
opencode-agent[bot]
6067019434
fix(core): restore v2 model prompts (#34275)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-06-28 14:47:20 -05:00
Dax
42a3cf9645
fix(core): commit staged revert before admitting new prompt (#34338) 2026-06-28 14:50:06 -04:00
Kit Langton
04c6bed240
feat(core): restore per-request system prompt (#34335) 2026-06-28 14:02:46 -04:00
Kit Langton
94e3a29d2f
feat(core): wire v2 subagent tool (#34320) 2026-06-28 12:52:39 -04:00
Kit Langton
41283933ff
chore: merge dev into v2 (#34317)
Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: Affan Ali <93028901+affanali2k3@users.noreply.github.com>
Co-authored-by: affanali2k3 <affanalikhanxx@gmail.com>
Co-authored-by: Frank <frank@anoma.ly>
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: James Long <longster@gmail.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: Jay V <air@live.ca>
Co-authored-by: Dax Raad <d@ironbay.co>
Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com>
Co-authored-by: OpeOginni <107570612+OpeOginni@users.noreply.github.com>
Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com>
Co-authored-by: Ben Guthrie <benjee.012@gmail.com>
Co-authored-by: Dax <mail@thdxr.com>
Co-authored-by: Filip <34747899+neriousy@users.noreply.github.com>
2026-06-28 11:30:38 -04:00
Dax Raad
11bf8d8a42 refactor(cli): simplify updater, remove cache and confirmation
- Remove the 24h disk cache (State, readState/writeState, checkInterval)
  that served stale latest versions within the TTL window
- Remove file lock (Flock) and confirmation prompt (Prompt/Terminal)
- Every check now hits the npm registry directly
- Updates always auto-install on any version mismatch within the same
  major, including rollbacks where the registry version is lower
- Drop the interactive option from check() and the confirm/declined/
  dismissed action concepts
2026-06-27 20:52:03 -04:00
Dax Raad
c22973ab9f fix(server): log undo revert operations 2026-06-27 20:32:58 -04:00
Dax Raad
612009e0f1 fix(tui): use span for inline styled hotkey in revert footer 2026-06-27 20:32:14 -04:00
Dax Raad
a0a6c9545e fix(tui): style redo hotkey as normal text in revert footer 2026-06-27 20:30:52 -04:00
Dax Raad
bceb6d0a9e feat(tui): add redo hotkey footer and pad file list in revert banner 2026-06-27 20:30:26 -04:00
Dax Raad
49e7dc191f fix(tui): make undo inclusive of last user message and simplify revert banner 2026-06-27 20:25:08 -04:00
Dax
d1d7ebc2c6
feat(tui): wire up undo/redo and revert for V2 sessions (#34263) 2026-06-28 00:04:53 +00:00
Dax Raad
cd942d0669 fix(tui): normalize abbreviated home paths to forward slashes 2026-06-27 18:54:06 -04:00
Dax Raad
4741e3ee6b fix(tui): remove redundant top spacer in session history 2026-06-27 13:54:16 -04:00
Dax Raad
4673bfbaa0 feat(cli): log startup info
Emit a log entry on CLI startup with version, channel, and local flag
so every CLI process is visible in opencode.log from the start.
2026-06-27 13:45:42 -04:00
Dax Raad
b458dd8c63 feat(cli): log updater check decisions
Add Effect.logInfo at every previously-silent path in the updater
check so each run is observable in opencode.log: skip reasons
(local install, disabled, policy), the resolved version with source
(cached vs registry), and the final action (up-to-date, dismissed,
declined).
2026-06-27 13:29:46 -04:00
Dax Raad
7edd6c3a1d feat(cli): use installation version and document API debugging
- Replace hardcoded "local" version string with InstallationVersion
- Document DESCRIPTION
  Make a request to the running server

USAGE
  opencode api [flags] <operation | method path...>

ARGUMENTS
  operation | method path... stringOpenAPI operation ID, or an HTTP method followed by a path

FLAGS
  --data, -d string      Request body
  --header, -H string    Request header in name:value form
  --param key=value      OpenAPI path or query parameter

GLOBAL FLAGS
  --help, -h                                                          Show help information
  --version, -v                                                       Show version information
  --completions <bash|zsh|fish|sh>                                    Print shell completion script (choices: bash, zsh, fish, sh)
  --log-level <all|trace|debug|info|warn|warning|error|fatal|none>    Sets the minimum log level (choices: all, trace, debug, info, warn, warning, error, fatal, none) server/API debugging command in AGENTS.md
2026-06-27 13:18:22 -04:00
Dax Raad
f43f066741 fix(tui): stop bash spinner when tool errors before command received 2026-06-27 13:17:21 -04:00
Dax Raad
b6553d14e1 fix(core): fail interrupted session steps 2026-06-27 01:16:30 -04:00
Dax Raad
ab0042a666 docs(opencode): mark package as v1 2026-06-27 01:16:30 -04:00
Dax Raad
5df049d081 feat(cli): add self-update service
Check the npm registry (at most once per 24h, file-locked) for newer
@opencode-ai/cli releases and act on a host-level autoupdate policy read
from config. Apply patch updates automatically, confirm minor updates
interactively, and never auto-update across majors. Skip local installs
and honor the disable flag. Wired into the default TUI command
(interactive) and serve (background).
2026-06-27 00:51:45 -04:00
Dax Raad
573ab9c24b fix(tui): interrupt v2 sessions with escape 2026-06-26 22:32:21 -04:00
Dax Raad
6a16c41e8f fix(core): continue after tool defects 2026-06-26 22:02:30 -04:00
Dax Raad
a491cbee64 fix(tui): hide prompt for running shell commands 2026-06-26 21:35:20 -04:00
Dax Raad
658cbe9caf fix(core): load OpenCode provider config asynchronously 2026-06-26 21:16:15 -04:00
Dax Raad
beb2c52c3f fix(cli): publish scoped package 2026-06-26 21:01:10 -04:00
Dax Raad
655adbf46e fix: stabilize v2 runtime behavior 2026-06-26 20:56:36 -04:00
Dax Raad
8b682c42b6 refactor(tui): use v2 client transport 2026-06-26 14:57:01 -04:00
Dax Raad
df9ecb8f6a fix(cli): publish v2 package 2026-06-26 14:52:30 -04:00
Dax Raad
e6f660fecf feat(tui): add v2 terminal interface 2026-06-26 14:38:25 -04:00
opencode-agent[bot]
0e2dd4ad15 chore: generate 2026-06-26 17:56:55 +00:00
Dax Raad
11d2f3e5f8 fix(llm): end reasoning before responses 2026-06-26 13:55:04 -04:00
Dax Raad
1ac6b4bec4 fix(core): authorize external read paths 2026-06-26 13:55:04 -04:00
opencode-agent[bot]
0befd9b049 chore: generate 2026-06-26 17:53:26 +00:00
Dax Raad
850a0dfe7c fix(core): resolve prompt attachment mime types 2026-06-26 13:51:00 -04:00
opencode-agent[bot]
18a419e634 chore: generate 2026-06-26 17:36:45 +00:00
Adam
82f47cb312
feat(stats): add clickable section headings (#34095) 2026-06-26 12:34:44 -05:00
Adam
7b1fe33ed3
fix(data): clarify unchanged rank 2026-06-26 12:29:29 -05:00
Stefan Avram
c72cca8def
docs: route enterprise contact links (#34080) 2026-06-26 12:05:24 -05:00
Adam
05ce6bc275
fix(data): canonicalize locale pages 2026-06-26 12:00:32 -05:00
Shoubhit Dash
1de7368580
fix(acp): send partial completed tool updates (#34091) 2026-06-26 22:21:35 +05:30
Brendan Allan
36f901588a
fix(app): wait for persisted home state before reading collapsed state (#34088) 2026-06-27 00:25:43 +08:00
Ariane Emory
92f1a17b67
docs(providers): document blacklist and whitelist model filtering (#33792) 2026-06-26 11:09:14 -05:00
Shoubhit Dash
ebf4007efd
fix(acp): enrich permission prompts (#34079) 2026-06-26 21:25:52 +05:30
Brendan Allan
1aea999d7c
fix(app): consolidate add project action (#34086) 2026-06-26 23:54:31 +08:00
Brendan Allan
4a8fee3b2d
feat(app): add new session workspace controls (#34085) 2026-06-26 23:43:41 +08:00
Aiden Cline
0d3e0fc8f4
fix(core): enlarge OAuth callback card (#34082) 2026-06-26 10:16:51 -05:00
Aiden Cline
f254476043
fix(llm): omit stateless response item ids (#34027) 2026-06-26 10:14:43 -05:00
Aiden Cline
639c8e6475
tweak: update OAuth callback branding (#34081) 2026-06-26 10:08:29 -05:00
Aiden Cline
e3bfd4cce6
fix(mcp): refresh credentials on reauthentication (#33717) 2026-06-26 10:03:39 -05:00
Shoubhit Dash
c2882268d6
fix(acp): skip resume transcript replay (#34070) 2026-06-26 14:12:05 +00:00
Aarav Sareen
9c38b91e91
feat(app): updates to design system (#34066) 2026-06-26 13:22:35 +00:00
Shoubhit Dash
6e8e772582
fix(acp): surface prompt errors (#34061) 2026-06-26 12:20:38 +00:00
Shoubhit Dash
971518c6d9
fix(core): refresh cached remote skills (#34059) 2026-06-26 12:12:50 +00:00
Shoubhit Dash
ae853561cd
fix(opencode): preserve skill resource paths (#34052) 2026-06-26 16:48:30 +05:30
Luke Parker
753d312c28
fix(tui): preserve renderer initialization errors (#33996)
Co-authored-by: Shoubhit Dash <shoubhit2005@gmail.com>
2026-06-26 15:14:28 +05:30
vimtor
eeb5b1d8bc
core: prevent UI imports compiling TSX source 2026-06-26 10:25:48 +02:00
opencode-agent[bot]
f8ceb30b43 chore: generate 2026-06-26 08:06:37 +00:00
usrnk1
78a5a030ce
feat(app): refine session UI styling (#33860)
Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com>
2026-06-26 08:04:56 +00:00
Aiden Cline
e8fea9e63a
feat(oauth): unify OAuth callback browser pages (#34025) 2026-06-26 00:36:40 -05:00
opencode-agent[bot]
11537260aa chore: generate 2026-06-26 05:31:26 +00:00
Brendan Allan
929c4aaf29
refactor(app): replace tab drag handling with dndkit (#33880)
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
2026-06-26 05:29:58 +00:00
opencode-agent[bot]
19e510f5d2
refactor(app): use dropdown for project selector (#33984) 2026-06-26 13:18:23 +08:00
opencode-agent[bot]
077deb9d82
fix(app): bump ghostty-web to prevent terminal resize hangs (#34020)
Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com>
2026-06-26 14:59:18 +10:00
opencode-agent[bot]
41f2705e72 chore: generate 2026-06-26 03:35:39 +00:00
Kit Langton
ef5c9f4931
feat(sdk): expose active sessions (#33991) 2026-06-26 03:33:35 +00:00
Kit Langton
40ecfceec2
fix(sdk): wake embedded session execution (#33992) 2026-06-25 23:04:14 -04:00
Kit Langton
a1f093a748
refactor(opencode): stop legacy v2 event emission (#33993) 2026-06-26 04:42:38 +02:00
opencode-agent[bot]
9859b19b93
fix(ui): normalize tooltip trigger layout (#33979)
Co-authored-by: Test <test@opencode.test>
Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com>
2026-06-26 02:42:16 +00:00
opencode-agent[bot]
45badf7163
fix(app): suspend hidden terminal renderer (#33990)
Co-authored-by: Test <test@opencode.test>
2026-06-26 02:28:36 +00:00
opencode-agent[bot]
28a00ad6af
fix(app): enable auto-accept in session settings (#33974) 2026-06-26 11:55:21 +10:00
Aiden Cline
0f272d931d
tweak: hide MCP access token prefix (#33711) 2026-06-25 20:32:36 -05:00
Aiden Cline
ded29f03f0
fix(core): refine small model defaults (#33926) 2026-06-25 20:31:53 -05:00
opencode-agent[bot]
f428755851
feat(core): split MCP timeout configuration (#33977)
Co-authored-by: Test <test@opencode.test>
2026-06-25 20:31:00 -05:00
opencode-agent[bot]
17166b271f
fix(app): simplify question prompt (#33968)
Co-authored-by: Test <test@opencode.test>
2026-06-26 09:22:36 +10:00
Aiden Cline
5f61d21487
feat(llm): pass strict through tool definitions for Codex parity (#33392) 2026-06-25 16:28:39 -05:00
opencode-agent[bot]
0568855cc6 chore: generate 2026-06-25 21:28:07 +00:00
Aiden Cline
3fbc005f26
fix(mcp): scope auth status to server URL (#33924) 2026-06-25 16:26:00 -05:00
opencode-agent[bot]
21c0e03a70 chore: generate 2026-06-25 20:26:11 +00:00
Brendan Allan
a2b847e29e
refactor(app): split session composer (#33954) 2026-06-25 20:23:58 +00:00
Brendan Allan
fae100fe72
fix(app): enable composer shortcuts on drafts (#33956) 2026-06-26 04:05:36 +08:00
Brendan Allan
b60c0a5e8c
fix(app): use tab-scoped servers in sessions (#33946) 2026-06-25 19:09:22 +00:00
opencode-agent[bot]
0870a838a8 chore: generate 2026-06-25 18:36:16 +00:00
James Long
0e731c2a1a
refactor(core): support tiered layer nodes (#33937) 2026-06-25 14:34:17 -04:00
opencode-agent[bot]
21b78c49fc chore: generate 2026-06-25 18:25:16 +00:00
Kit Langton
f44423609b
feat(sdk): restore session runtime operations (#33777) 2026-06-25 14:23:01 -04:00
Brendan Allan
44806777ca
feat(app): group prompt projects by server (#33941) 2026-06-25 17:47:45 +00:00
Kit Langton
a267222080
refactor(schema): isolate v1 contracts (#33769) 2026-06-25 17:26:47 +00:00
opencode-agent[bot]
ecabab49a7 chore: generate 2026-06-25 17:13:12 +00:00
Kit Langton
9e9d405d7e
refactor(schema): tighten public contracts (#33771) 2026-06-25 17:10:23 +00:00
opencode-agent[bot]
5682371d0a chore: generate 2026-06-25 17:03:14 +00:00