Repository navigation
feat(opencode-claimant): laptop-side claimant/executor for opencode-lane tasks (#3026 slice 1) - #3032
Conversation
…ane tasks (#3026 slice 1)
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 1 minute. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fd471d1e75
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…prompt send (#3026) Codex P2s on #3032: (1) supervision sat after the gate/cap early-returns, so the normal all-bound state never got bound-session checks -- supervision is now step 1 on every live fire, independent of launch gates (shadow mode runs its read-only part). (2) A prompt send whose response was lost left a possibly-executing session unbound and the task eligible for a second launch -- the flow now binds the session id immediately after creation, BEFORE the prompt send, and a failed/lost send reconciles that bound session (check messages, resend once to the SAME session only if the prompt demonstrably never landed) instead of ever relaunching. bun test 7/7 in pm-stack/opencode-claimant.
|
Codex Review: Didn't find any major issues. Breezy! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Slice 1 of #3026 (queue task 4387), with Drew's 2026-10-31 mechanism correction applied: the claimant/executor is an OpenChamber native scheduled task, not the systemd service the original packet framing named (that framing is superseded on the issue; #2019's systemd composition stays fallback-only).
What's here (
pm-stack/opencode-claimant/)prompt.md— the scheduled task's prompt (source of truth): polls the four repo-health queues for claimed tasks lane-assignedopencodewith no bound session, launches worker sessions on the standing OpenCode server with the packet's route (Workhorse default), binds the session id in the task record at launch (pm-dispatch PATCH-then-ledger precedent), enforces the 12-session cap, and leaves terminal states to the worker session's helper verbs with--executionrecords.poll.py— read-only candidate discovery + cap count. It cannot mutate anything.install.mjs— idempotent installer into the laptop's code-project OpenChamber store (stable task id, preserves other tasks, timestamped backup,--dry-runwrites nothing). Installs disabled; shadow mode is also the prompt's own default.test/install.test.mjs— bun tests: 7/7 pass (merge idempotence, prompt embedding, store-shape refusal, foreign-prompt rejection).Worked example (shadow/dry-run, recorded on #3026)
install.mjs --dry-runagainst the live store: would insert the task disabled, 2 existing tasks preserved, nothing written. The real install was then run: taskf1b4a33b…now sits disabled in the store beside the two live code lanes.poll.pylive shadow run: all four queues read (claimed 4/1/2/0), 0 unbound opencode-lane candidates, live root sessions listed = 41 → cap_room 0 (fails closed).Known gap (in README, named on the issue): the session count includes finished-but-unarchived sessions, so the cap reads saturated until the gate packet refines it to active-only. Shadow mode launches nothing, so slice 1 is safe beside the live conductor; enabling + live mode belong to the slice-2 gate packet, which this task's completion enqueues.
Supervision choice (#3026 work item 4): claimant self-check on each fire + fleet-watchdog ledger backstop — recorded on the issue.
Refs #3026 (does not close it — the issue stays open until the stand-down lands).
Need help on this PR? Tag
@codesmith-botwith what you need.