Commit graph

100 commits

Author SHA1 Message Date
Kit Langton
bf5294121a refactor(core): simplify system context to a belief model
Reconcile never rewrites the baseline; only rebaseline (compaction) and
initialize (first turn) produce baseline text. The durable Applied record
tracks what the model was last told, per source.

- Incompatible stored values re-announce the source baseline as an update
  instead of forcing a full replacement
- Sources removed without removal text retain the model's belief silently;
  entries self-clean at the next rebaseline
- Rebaseline restates unobservable sources from their last-applied values
  instead of blocking; ReplacementBlocked and ReplacementReady are gone
- Rename Snapshot to Applied and Generation to Baseline {text, applied}
2026-07-02 21:20:38 -04:00
Kit Langton
7d598b5610 refactor(core): drop synchronous drain start from the coordinator
Drains now uniformly start one tick after wake or run, removing the
ready-deferred release that ran the first drain synchronously inside
the caller. The synchronous start was observable only by tests that
asserted state immediately after fire-and-forget calls, coupling them
to scheduler internals; those tests now synchronize explicitly through
session.wait or stream-start signals.
2026-07-02 21:15:15 -04:00
Kit Langton
fae51d853d refactor(core): dedupe context epoch initialization
Share one insertInitial path between initialize and prepare, and
document the runner's ordering constraint: epoch initialization runs
before promotion so a blocked System Context leaves prompts pending,
while reconciliation runs after promotion so ContextUpdated messages
sequence after promoted input.
2026-07-02 20:56:56 -04:00
Kit Langton
966dc54e1d refactor(core): rewrite run coordinator as an execution loop
One fiber now owns each execution (busy period) and consumes coalesced
doorbell wakes as a loop condition, replacing per-drain fiber chaining
with owner reassignment and entry reuse. Initial starts stay synchronous
so a prompt's wake reaches the provider in the same tick; successor
starts defer one tick so failing self-waking executions cannot grow the
stack.
2026-07-02 20:56:56 -04:00
Kit Langton
606de48d8b refactor(core): simplify prompt inbox promotion and projection
Remove the steer promotion cutoff: a turn boundary now promotes every
steer pending at promotion time instead of snapshotting the inbox at a
captured sequence, so late-arriving steers ride along into the turn.

Delete legacy projected-prompt synthesis from projectPrompted. The
event-sourced session input migration wiped pre-inbox event history,
so every Prompted event follows an admitted inbox row and a missing or
divergent row on replay is an invariant violation.

Inline the prompt equivalence predicate and update tests that seeded
history with bare Prompted events to publish PromptAdmitted first.
2026-07-02 16:46:16 -04:00
Kit Langton
0d1ef5adb6 fix(core): fail drains on tool output persistence failures
Restructure runner turn settlement: replace TurnTransitionError defect
control flow with tagged turn results and a plain restart loop, name the
settlement evidence, and merge duplicated interrupt branches.

Split settled tool-fiber failures: tool implementation defects keep
surfacing as model-visible tool errors and the turn continues, while
typed ToolOutputStore errors now fail the assistant and the drain
instead of being silently absorbed.
2026-07-02 16:19:46 -04:00
Simon Klee
f016392368
feat(mini): migrate mini to v2 (#34895)
feat(run): migrate non-interactive prompts to V2
feat(run): route mini prompts through V2
fix(run): use current session contracts
fix(run): fix V2 prompt turns
feat(cli): add mini subcommand
feat(run): use settled execution events
fix(run): handle remote prompt file attachments
feat(run): send prompt files as attachments
feat(run): use current APIs for run state
fix(run): adopt app-node runtime deps
feat(run): track subagent sessions
feat(run): move catalogs and default model onto current APIs
2026-07-02 12:06:49 +02:00
Aiden Cline
140224b0fc
fix(core): derive models.dev reasoning variants (#34726) 2026-07-02 00:23:46 -05:00
Kit Langton
674d08f9be
fix(core): route ChatGPT OAuth to the codex backend (#34843) 2026-07-02 00:15:34 -04:00
Dax Raad
50a1fe49bc fix(core): relativize instruction description to project root 2026-07-01 21:03:46 -04:00
Dax Raad
6380919fda fix(core): use relative paths in instruction load description 2026-07-01 21:02:47 -04:00
Dax Raad
d972aa9d83 feat(core): tool execute hooks, session instructions, synthetic endpoint
- V2 tool execute hooks: add `ctx.tool.execute.before/after` plugin API,
  core ToolHooks service, and registry wiring so hosted/local tool calls
  run registered before/after hooks; provider-executed calls are excluded.
- Session synthetic endpoint: add `POST /api/session/:sessionID/synthetic`
  with text/description/metadata plus regenerated Promise/Effect/JS client
  surfaces.
- SessionInstructions service: read tool discovers nearby AGENTS.md walking
  up to the Location root (exclusive) and injects them as durable synthetic
  instructions, with lazy history dedup of prior claims.
- to-llm-message: stop forwarding synthetic message metadata to the model so
  bookkeeping annotations stay model-hidden.
- schema changelog entry for synthetic metadata and the metadata leak fix.
2026-07-01 20:50:10 -04:00
James Long
8c94e9005f
chore: merge dev into v2 (#34788)
Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com>
Co-authored-by: Kit Langton <kit.langton@gmail.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: 𝓛𝓲𝓽𝓽𝓵𝓮 𝓕𝓻𝓪𝓷𝓴 <little-frank@opencord.local>
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>
Co-authored-by: Max Anderson <max.a.anderson95@gmail.com>
Co-authored-by: Brendan Allan <git@brendonovich.dev>
Co-authored-by: Jack <jack@anoma.ly>
Co-authored-by: Shoubhit Dash <shoubhit2005@gmail.com>
Co-authored-by: Dustin Deus <deusdustin@gmail.com>
Co-authored-by: starptech <starptech@starptechs-MBP.fritz.box>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
Co-authored-by: usrnk1 <7547651+usrnk1@users.noreply.github.com>
Co-authored-by: Jay <53023+jayair@users.noreply.github.com>
Co-authored-by: runvip <164729189+runvip@users.noreply.github.com>
Co-authored-by: opencode <opencode@sst.dev>
Co-authored-by: Julian Coy <julian@ex-machina.co>
Co-authored-by: Vladimir Glafirov <vglafirov@gitlab.com>
2026-07-01 17:12:00 -04:00
Dax Raad
fb884bb91e feat: update session notices and skill reloads 2026-07-01 14:37:27 -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
Aiden Cline
b1ca070b3b
feat(core): add mcp support (#34513) 2026-06-30 08:37:44 -05: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
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
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
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
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
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
d1d7ebc2c6
feat(tui): wire up undo/redo and revert for V2 sessions (#34263) 2026-06-28 00:04:53 +00:00
Dax Raad
b6553d14e1 fix(core): fail interrupted session steps 2026-06-27 01:16:30 -04:00
Dax Raad
6a16c41e8f fix(core): continue after tool defects 2026-06-26 22:02:30 -04:00
Dax Raad
e6f660fecf feat(tui): add v2 terminal interface 2026-06-26 14:38:25 -04:00
Kit Langton
ef5c9f4931
feat(sdk): expose active sessions (#33991) 2026-06-26 03:33:35 +00:00
James Long
0e731c2a1a
refactor(core): support tiered layer nodes (#33937) 2026-06-25 14:34:17 -04:00
Kit Langton
f44423609b
feat(sdk): restore session runtime operations (#33777) 2026-06-25 14:23:01 -04:00
Kit Langton
7854f5b9f7
refactor(schema): normalize module patterns (#33770) 2026-06-25 15:42:22 +00:00
opencode-agent[bot]
3730125f8f chore: generate 2026-06-24 23:43:02 +00:00
Dax
9bb5370205
feat(core): add session snapshot and revert system (#33226) 2026-06-24 23:41:16 +00:00
Kit Langton
24b0132bc5
refactor(schema): extract public event definitions (#33579) 2026-06-24 16:43:17 -04:00
Dax Raad
17f312d537 refactor(core): simplify model requests 2026-06-24 13:17:14 -04:00
Kit Langton
516cfe4e09
refactor(schema): extract shared public schemas (#33571) 2026-06-23 22:31:06 -04:00
opencode-agent[bot]
1490752059 chore: generate 2026-06-24 00:54:55 +00:00
Dax
4898263dec
feat(core): map providers to integrations (#33562) 2026-06-24 00:53:31 +00:00
Dax
cf80b5c470
feat(core): add opencode integration (#33555) 2026-06-23 23:45:02 +00:00
Aiden Cline
c17b9557f1
fix(core): preserve structured error messages (#33530) 2026-06-23 18:43:59 -05:00
Dax
909a1a6d78
feat(plugin): add namespaced hook API (#33416) 2026-06-22 19:06:57 -04:00
Kit Langton
dc468bdcfd
fix(core): reset steps for promoted prompts (#33452) 2026-06-22 19:01:14 -04:00
Kit Langton
f48f24ec4e
refactor(core): simplify session input promotion (#33443) 2026-06-22 17:51:49 -04:00
Kit Langton
1787fa4261
refactor(core): drop legacy compaction event (#33404) 2026-06-22 21:39:41 +02:00
opencode-agent[bot]
494123a875 chore: generate 2026-06-22 16:18:36 +00:00