diff --git a/plans/agent-briefings/primitives-loop.md b/plans/agent-briefings/primitives-loop.md index 708f702f..d2eb3186 100644 --- a/plans/agent-briefings/primitives-loop.md +++ b/plans/agent-briefings/primitives-loop.md @@ -142,7 +142,9 @@ using call/cc+perform/resume. 27 tests: added 10 new — state field inspection (ready/suspended/dead), yield from nested helper, initial resume arg ignored, mutable closure state, complex yield values, round-robin scheduling, factory-shared-no-state, non-coroutine error. 27/27 OCaml+JS. -- [ ] Commit: `spec: coroutine primitive (make-coroutine/resume/yield)` +- [x] Commit: `spec: coroutine primitive (make-coroutine/resume/yield)` + Phase 4 landed across 4 commits: 21cb9cf5 (spec library), 9eb12c66 (ocaml verified), + b78e06a7 (js pre-load), 0ffe208e (27 tests). Phase 4 complete. --- @@ -674,6 +676,7 @@ Brief each language's loop agent (or do inline) after rebasing their branch onto _Newest first._ +- 2026-04-26: Phase 4 complete — coroutine primitive fully landed (4 commits: spec library + OCaml verified + JS pre-load + 27 tests). Phase 5 (string buffer) next. - 2026-04-26: Phase 4 Tests step done — 27 tests total (10 new: state field inspection, yield-from-helper, initial-arg-ignored, mutable-closure, complex-values, round-robin, factory-no-state, non-coroutine-error). 27/27 OCaml+JS. - 2026-04-26: Phase 4 JS step done — all CEK primitives already in sx-browser.js; fix was pre-loading spec/coroutines.sx+spec/signals.sx in run_tests.js so (import (sx coroutines)) resolves synchronously. 17/17 coroutine tests pass JS. 1965/2500 total (+25), zero new failures. - 2026-04-26: Phase 4 OCaml step done — no native SxCoroutine type needed; existing cek-step-loop/cek-resume/perform/make-cek-state primitives in run_tests.ml fully support the spec/coroutines.sx library. 284/284 pass (coroutines+vectors+numeric-tower+dynamic-wind), zero regressions.