Skip to content

feat(control-plane): MW Phase 3 B4 — durable reel.completed outbox (Option B) - #7

Merged
tha-hammer merged 2 commits into
mainfrom
feat/mw-phase3-b4
Jul 13, 2026
Merged

feat(control-plane): MW Phase 3 B4 — durable reel.completed outbox (Option B)#7
tha-hammer merged 2 commits into
mainfrom
feat/mw-phase3-b4

Conversation

@tha-hammer

Copy link
Copy Markdown
Owner

MW Phase 3 B4 (human-approved Option B). (1) Registers frozen com.silmari.reel.completed.v1 contract. (2) Generalizes completeExecution to select the outbox builder by AgentNodeID + adds BuildReelCompletedOutboxRecord, so reel-af completions append reel.completed.v1 in the SAME terminal-write tx as research.completed (preserves C-Outbox/C-AtLeastOnce). Go: ok events+handlers; Python 53 passed (research.completed unchanged). Pairs with reel-af announce (PR Agent-Field#14) + deep-research dispatch (DR PR #3).

tha-hammer and others added 2 commits July 13, 2026 18:33
… (MW Phase 3 B4 pt1)

Add the frozen JSON-Schema for the reel.completed handoff DTO
{run_id, status, reel_ref, source_execution_id, duration_s, beat_count},
auto-registered by presence exactly like research.completed. This is the
PREREQUISITE for announce() validation.

New registry/validation/freeze tests mirror research.completed's.
research.completed registry tests stay green (53 passed total).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… by AgentNodeID (MW Phase 3 B4 pt2, Option B)

Generalize completeExecution's terminal-write outbox hook to select the builder
by exec.AgentNodeID (events.BuildCompletedOutboxRecord — a tiny ordered builder
registry), and add BuildReelCompletedOutboxRecord mirroring the research one. A
reel-af completion now appends com.silmari.reel.completed.v1 IN THE SAME terminal
state-write tx as the execution result — identical durability path (C-Outbox /
C-AtLeastOnce) to research.completed. No new lossy mechanism.

DTO {run_id, status, reel_ref, source_execution_id, duration_s, beat_count};
video/narration body never leaks (C-Notification). Subject = execution_id
(C-Correlation). Emits for succeeded only.

research.completed unchanged — its builder is untouched and first in the registry;
its event + wiring tests stay green. New closure tests mirror research's:
in-tx append for reel node, no append for unrelated agents.

go test ./internal/events/ ./internal/handlers/ : ok / ok.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Performance

SDK Memory Δ Latency Δ Tests Status
Python 9.5 KB +6% 0.31 µs -11%

✓ No regressions detected

@tha-hammer
tha-hammer merged commit 6f6b3f7 into main Jul 13, 2026
27 of 33 checks passed
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