Skip to content

beads: file orca-y5r.9–.12 (worker comms + lifecycle cleanup); close orca-82z - #275

Open
cweill wants to merge 1 commit into
mainfrom
beads/orca-y5r-comms-followups
Open

beads: file orca-y5r.9–.12 (worker comms + lifecycle cleanup); close orca-82z#275
cweill wants to merge 1 commit into
mainfrom
beads/orca-y5r-comms-followups

Conversation

@cweill

@cweill cweill commented May 29, 2026

Copy link
Copy Markdown
Contributor

Motivation

While reviewing how well orca handles autonomous beads delegation (the worksource pull loop), we identified the remaining gaps and lifecycle-noise bugs not yet tracked in beads. This files them under the orca-y5r worksource epic and retires the now-shipped comms spec.

Summary

Files four follow-up beads:

  • orca-y5r.9 (feature, P1) — Worker ask-and-wait + autonomous-loop escalation. Lets a worker block on a question and resume on the lieutenant's reply; with no notification_pane, route the question through orca's stuck/escalation path. Implements worker→lieutenant comms open questions 2 & 3. The key gap for trustworthy unattended pull-loop delegation.
  • orca-y5r.10 (feature, P2) — orca notify structured channel (event log + post), replacing raw send-keys. Open question 1.
  • orca-y5r.11 (bug, P2) — Stop benign worker.merge_notify_failed / task.completion_failed on successful merge (postmortem keeps the pane busy past the idle-wait). Observed on LAB-1965: Treat no-CI PRs as mergeable #271 and LAB-1969: Support direct branch landing #274.
  • orca-y5r.12 (chore, P3) — Quiet issue.status_skipped for beads-only items with no linked Linear issue.

Also closes orca-82z (spec shipped in PR #268); the implementation follow-ups above replace it.

This is a .beads/issues.jsonl-only change — no code.

Testing

bd ready --json shows orca-y5r.9–.12 as ready/unblocked under the epic; bd show orca-82z confirms status=closed. The JSONL was regenerated with bd export (not a partial auto-flush) so the committed graph matches the live Dolt DB exactly.

Review focus

  • The four bead descriptions/priorities — whether the scoping matches your intent, especially orca-y5r.9 (the ask-and-wait design space is wide: poll-own-pane vs reply-file).
  • That this is purely additive to the work graph (4 new + 1 close), with no other beads mutated.

…orca-82z

File four follow-up beads under the orca-y5r worksource epic, capturing the
remaining gaps in autonomous beads delegation surfaced while reviewing the
worksource pull loop:

- orca-y5r.9  (feature, P1): worker ask-and-wait + autonomous-loop escalation
  (worker→lieutenant comms open questions 2 & 3). The key gap for trustworthy
  unattended pull-loop delegation.
- orca-y5r.10 (feature, P2): `orca notify` structured channel (open question 1).
- orca-y5r.11 (bug, P2): stop benign worker.merge_notify_failed /
  task.completion_failed on successful merge (observed on #271, #274).
- orca-y5r.12 (chore, P3): quiet issue.status_skipped for beads-only items.

Close orca-82z (spec shipped in PR #268); the implementation follow-ups above
replace it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented May 29, 2026

Copy link
Copy Markdown

Claude finished @cweill's task in 1m 41s —— View job


Review

  • Read changed files
  • Verify bead structure and correctness
  • Check graph integrity (deps, status, priorities)
  • Post review findings

.beads/issues.jsonl

Structure / schema — All four new beads are well-formed. dependency_count: 0 is correct for items with only a parent-child dep (consistent with orca-y5r.1, which also has only the parent-child dep and dependency_count: 0). Timestamps, priorities, and issue_type values all match the PR description.

Possible missing dep edge: orca-y5r.9 → orca-y5r.10

orca-y5r.10's description ends with: "Foundational for the ask-and-wait bead." If orca-y5r.9's implementation is expected to build on the orca notify channel that orca-y5r.10 introduces, there should be a blocks edge from orca-y5r.9 to orca-y5r.10 so a worker can't start ask-and-wait while the channel foundation is still open. Without the edge both are unblocked now and could race.

That said, orca-y5r.9's own description explicitly routes the autonomous-loop fallback through the existing stuck/escalation path, and doesn't reference orca-y5r.10 at all. If the intent is that orca-y5r.9 can be fully implemented without orca-y5r.10 (the notify channel comes later as an improvement), the current state is correct. Worth confirming which design is intended — poll-own-pane / reply-file can work without orca notify, but if the reply mechanism is orca notify, a dep is warranted.

orca-82z re-export — The diff shows this was already status: closed before the PR; bd close was re-run to enrich close_reason from "PR #268 merged""PR #268 merged (spec shipped)" and update its timestamps. The PR description saying "closes orca-82z" is slightly imprecise (it re-exports an already-closed item), but the end state is correct.


One soft question on the dep edge above; nothing structurally wrong with the JSONL.

LGTM

@greptile-apps

greptile-apps Bot commented May 29, 2026

Copy link
Copy Markdown

Greptile Summary

This is a data-only change to .beads/issues.jsonl, filing four follow-up beads under the orca-y5r worksource epic and refreshing the metadata on the already-closed orca-82z spec bead.

  • orca-y5r.9 (ask-and-wait, P1) and orca-y5r.10 (structured orca notify channel, P2) land as open features; orca-y5r.10 is described as foundational for orca-y5r.9 but no explicit blocks dependency edge links them in the graph.
  • orca-y5r.11 (lifecycle noise bug) and orca-y5r.12 (verbose status_skipped log) land as open bug/chore under the same epic; orca-82z is re-exported with an updated close_reason and timestamp.

Confidence Score: 4/5

Safe to merge — the change is purely additive metadata with no code impact; the one concern is a missing ordering edge in the work graph.

All four new bead records are structurally valid and the orca-82z metadata refresh is consistent, but orca-y5r.10's own description labels it as foundational for orca-y5r.9 without a corresponding blocks edge in the graph. Without that edge the pull loop treats both beads as simultaneously unblocked, which could cause orca-y5r.9 to be dispatched and attempted before the notify infrastructure exists.

.beads/issues.jsonl — specifically the dependency section of orca-y5r.9 and orca-y5r.10.

Important Files Changed

Filename Overview
.beads/issues.jsonl Adds four new open issues (orca-y5r.9–.12) and re-exports orca-82z with updated close metadata; all JSONL records are well-formed but orca-y5r.10 is described as foundational for orca-y5r.9 with no blocks edge capturing that ordering in the graph.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    epic["orca-y5r (epic)\nAdopt beads as worksource"]

    y5r9["orca-y5r.9 (open, P1)\nWorker ask-and-wait +\nautonomous-loop escalation"]
    y5r10["orca-y5r.10 (open, P2)\norca notify: structured\nworker→lieutenant channel"]
    y5r11["orca-y5r.11 (open, P2)\nStop benign merge_notify_failed /\ntask.completion_failed"]
    y5r12["orca-y5r.12 (open, P3)\nQuiet issue.status_skipped\nfor beads-only items"]
    closed82z["orca-82z (closed)\nSpec: worker spawner-awareness\n+ notify/ask channel"]

    epic --> y5r9
    epic --> y5r10
    epic --> y5r11
    epic --> y5r12
    closed82z -. "spec shipped (PR #268)" .-> y5r9
    closed82z -. "spec shipped (PR #268)" .-> y5r10

    y5r10 -. "described as foundational for\nask-and-wait — no blocks edge" .-> y5r9
Loading

Reviews (1): Last reviewed commit: "beads: file orca-y5r.9–.12 (worker comms..." | Re-trigger Greptile

Comment thread .beads/issues.jsonl
{"_type":"issue","id":"orca-y5r.2","title":"Phase 2: BeadsSource (shells bd --json) + Verify","description":"Exec bd --json; ErrAlreadyClaimed via 'already claimed' string on non-zero exit; parse stdout only (Linear nag on stderr); Verify bd identity (version --json + dolt subcommand). Fixtures in internal/worksource/testdata.","status":"closed","priority":1,"issue_type":"task","assignee":"orca","owner":"charles@weill.dev","created_at":"2026-05-26T06:15:26Z","created_by":"Charles Weill","updated_at":"2026-05-26T19:34:38Z","started_at":"2026-05-26T19:07:07Z","closed_at":"2026-05-26T19:34:38Z","close_reason":"PR #251 merged (449c96a)","external_ref":"LAB-1928","dependencies":[{"issue_id":"orca-y5r.2","depends_on_id":"orca-y5r","type":"parent-child","created_at":"2026-05-26T06:15:26Z","created_by":"Charles Weill","metadata":"{}"},{"issue_id":"orca-y5r.2","depends_on_id":"orca-y5r.1","type":"blocks","created_at":"2026-05-26T06:15:47Z","created_by":"Charles Weill","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0}
{"_type":"issue","id":"orca-y5r.3","title":"Phase 3: idle-pull dispatch loop (opt-in, default OFF)","description":"monitorTickPull in runLoop; free clones -\u003e Ready -\u003e Claim -\u003e existing assign path; filter epic-type out of ready; fail-fast Verify at startup.","status":"closed","priority":1,"issue_type":"task","assignee":"orca","owner":"charles@weill.dev","created_at":"2026-05-26T06:15:26Z","created_by":"Charles Weill","updated_at":"2026-05-26T21:23:38Z","started_at":"2026-05-26T19:50:42Z","closed_at":"2026-05-26T21:23:38Z","close_reason":"PR #252 merged","external_ref":"LAB-1933","dependencies":[{"issue_id":"orca-y5r.3","depends_on_id":"orca-y5r","type":"parent-child","created_at":"2026-05-26T06:15:26Z","created_by":"Charles Weill","metadata":"{}"},{"issue_id":"orca-y5r.3","depends_on_id":"orca-y5r.2","type":"blocks","created_at":"2026-05-26T06:16:27Z","created_by":"Charles Weill","metadata":"{}"}],"dependency_count":1,"dependent_count":2,"comment_count":0}
{"_type":"issue","id":"orca-y5r","title":"Adopt beads as a worksource in orca","description":"Pull-based dependency-aware dispatch via a worksource.Source interface + BeadsSource. orca stays a thin executor; Linear stays system of record. Plan + status: Linear LAB-1922.","status":"open","priority":1,"issue_type":"epic","owner":"charles@weill.dev","created_at":"2026-05-26T06:15:25Z","created_by":"Charles Weill","updated_at":"2026-05-26T06:41:18Z","external_ref":"LAB-1922","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"orca-y5r.10","title":"orca notify: structured worker-\u003elieutenant channel (event log + post)","description":"Implements open question 1 from docs/specs/worker-lieutenant-comms.md.\n\nReplace raw 'amux send-keys' as the only worker-\u003elieutenant mechanism with an 'orca notify' subcommand that records the message to the event log AND posts it to the destination pane. Benefits over raw send-keys: auditable (shows in orca events/status), rate-limitable (soft guardrail against a misbehaving worker spamming the lead), and survives a busy/absent lead.\n\nDestination resolution stays as designed: notify-pane flag -\u003e caller AMUX_PANE (manual) -\u003e notification_pane config (autonomous) -\u003e omit. Foundational for the ask-and-wait bead.","status":"open","priority":2,"issue_type":"feature","owner":"charles@weill.dev","created_at":"2026-05-29T18:03:39Z","created_by":"Charles Weill","updated_at":"2026-05-29T18:03:39Z","dependencies":[{"issue_id":"orca-y5r.10","depends_on_id":"orca-y5r","type":"parent-child","created_at":"2026-05-29T18:03:38Z","created_by":"Charles Weill","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Missing blocks edge between orca-y5r.10 and orca-y5r.9

orca-y5r.10's own description calls it "Foundational for the ask-and-wait bead," yet neither issue carries a blocks dependency linking them. In the current graph both are unblocked simultaneously, so the autonomous pull loop could dispatch orca-y5r.9 (ask-and-wait) before orca-y5r.10 (the orca notify infrastructure it relies on) is complete, leading to an implementation that has to stub or skip the foundational channel.

@codecov

codecov Bot commented May 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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