spec: runtime-neutral OpenCode instance lifecycle (#376) #388
Labels
No labels
backend
bug
chore
duplication
effort:complex
effort:medium
effort:trivial
enhancement
frontend
fullstack
priority:high
ready-for-agent
refactor
security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
dries/ocman#388
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Spec for #376 (parent epic #375). Full document:
spec/runtime-neutral-lifecycle/requirements.md.Summary
Make ocman the authoritative, runtime-neutral owner of each managed project OpenCode instance, replacing the tmux+
lsof+random-port lifecycle with:internal/ocruntimeRuntimeinterface (Launch(spec)→Instance,Probe,Stop) — one interface, native-tmux impl now, container plugs in via #375.--port N); managed path dropslsof.GET /config200, not listener presence.state.dbregistry with probe-on-recovery (never trust stale port/PID).singleflightper repo root for at-most-one concurrent launch.EnsureProjectOpencodeResult(EndpointURL + opaqueInstance; tmux → observability).RestartProjectOpencodeonhostsvc.Host, owner-routed.HostCaps.OpencodeLaunchsplit fromTmux.secretseam reserved for #377 (kept separate).Primary seam:
hostsvc.Host.EnsureProjectOpencode(reshaped result, hardened body). Native tmux stays behaviorally compatible (AC-9).Next: break into tracer-bullet tickets (
to-tickets).