Skip to content

Support OpenCode V2 alongside V1 - #35

Merged
moritzWa merged 12 commits into
mainfrom
v2-opencode
Oct 17, 2026
Merged

moritzWa merged 12 commits into
mainfrom
v2-opencode

Conversation

@moritzWa

@moritzWa moritzWa commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Preserve V1 and add explicitly selected V2 service authentication, catalogs, transcripts, controls, restart/continuation, and root-TUI attach.
  • Require advertised exact-client targeting for cross-directory selection and speech pause, with no V2 broadcast fallback.
  • Preserve V2/mixed SQLite history, hierarchy, and incremental FTS through read-only compatibility views.
  • Add private frozen-snapshot handoff import/adoption into a new V2 ownership map. Explicitly selected continuations use stable per-root input IDs journaled before admission and reconciled on retry/restart.
  • Reject stale metadata/watermarks, pending forms/permissions, completed roots, unsettled tools, and uncertain outcomes before handoff continuation. Preserve adopted title/summary/model/location/creation time and managed controls.
  • Repair baseline CI blockers tracked in Restore the failing baseline CI checks #32 (Restore the failing baseline CI checks): Rust 1.75 process probes, exact visible README inventory, percentage usage forecasts, count-free PTY assertions, and the asynchronous Claude model-probe fixture race.
  • Document exact manifest schema, CLI invocation, isolated configuration, and evidence in docs/opencode-v2-parity.md.

Verification

  • COMPLETE locked local macOS suites PASS on Rust 1.75.0 and stable, without test-name filters or exclusions: 712 library, 21 CLI, 5 README, 24 PTY tests, and all remaining enabled integration/doc targets. Existing opt-in provider/benchmark ignores are unchanged.
  • Canonical Rust 1.75 formatting and all-target Clippy with warnings denied PASS. Debug build and isolated installer/package fixtures PASS.
  • Assertions retain exact inventories/rows, pagination bounds, responsiveness thresholds, and terminal restoration. No tests or hooks were disabled to make the branch green.
  • Actual unified V2 handoff test passes: existing imported IDs, public CLI adoption/resume, managed Reply and successful Interrupt, forms/permissions and late-form rejection, private-file/endpoint/model checks, immutable repeated manifest, and source title/summary/creation-time preservation.
  • Lost-ACK proof restores the exact pre-POST journal after real admission, then restarts while the provider stream is active. Reconciliation retains exactly one continuation input ID; restart sends no anonymous duplicate. Admission deduplication is not an exactly-once tool claim.
  • Two real TUI PTYs pass source and compiled-candidate targeting: bidirectional exact-client cross-directory route/location/title/OSC changes, non-target unchanged. Harmless speech.pause fixture proves targeted dispatch; actual audio acceptance remains manager-owned.
  • Stock compiled V2 lifecycle passes, including discovery/FTS, registration authentication, PID renewal, stop/relaunch, reconnect, and verified shutdown.
  • All 20 remote checks PASS on head 4a94f81: canonical quality/MSRV/stable suites, native Linux x86/ARM, macOS ARM/Intel, Windows compilation/runtime/startup/package checks, and OpenCode move regressions. Both push and pull-request runs completed successfully.

Integration review

Do not merge until the migration manager reviews integration. No install or shared-server restart performed; worktree retained. Manager owns final frozen snapshot, outcome reconciliation, quiescent cutover, and real read-aloud/audio VM acceptance. Docker V2 discovery and unmanaged stock explicit-model foreground launch remain documented boundaries.

@moritzWa
moritzWa merged commit 293dd40 into main Oct 17, 2026
20 checks passed
@moritzWa
moritzWa deleted the v2-opencode branch October 17, 2026 23:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant