diff --git a/plans/agent-briefings/primitives-loop.md b/plans/agent-briefings/primitives-loop.md index d7ff332c..1387e641 100644 --- a/plans/agent-briefings/primitives-loop.md +++ b/plans/agent-briefings/primitives-loop.md @@ -156,8 +156,13 @@ Fix O(n²) string concatenation in loops across Lua, Ruby, Common Lisp, Tcl. `string-buffer-length` to primitives. OCaml: `Buffer.t` wrapper. JS: array+join. Also: string-buffer? predicate; SxStringBuffer._string_buffer marker for typeOf/dict? exclusion; inspect case in sx_types.ml. 17/17 tests OCaml+JS. -- [ ] Tests: 15+ tests. -- [ ] Commit: `spec: string-buffer primitive` +- [x] Tests: 15+ tests. + 17 tests written inline with Spec+OCaml step: construction, type-of, empty/length, + single/multi-append, append-returns-nil, empty-string-append, reuse-after-to-string, + independence, loop-building, CSV-row, unicode, repeated-to-string, join-pattern. + 17/17 OCaml+JS. +- [x] Commit: `spec: string-buffer primitive` + Committed as d98b5fa2 — all work in one commit (OCaml type + primitives + JS + spec + 17 tests). --- @@ -678,6 +683,7 @@ Brief each language's loop agent (or do inline) after rebasing their branch onto _Newest first._ +- 2026-04-26: Phase 5 complete — string buffer fully landed (d98b5fa2). 17 tests, 17/17 OCaml+JS. Phase 6 (ADTs) next. - 2026-04-26: Phase 5 Spec+OCaml+JS step done — StringBuffer of Buffer.t in sx_types.ml; make-string-buffer/append!/->string/length/string-buffer? in sx_primitives.ml; SxStringBuffer with _string_buffer marker + typeOf/dict? fixes in platform.py; JS rebuilt. 17/17 tests OCaml+JS. - 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.