- runtime/src/crypto.c: hand-rolled cores, whole-value over Bytes, allocation-free tails; VM half returns fresh Bytes, WO_T_BOUNDS on wrong class id (Bytes builtins' message shape) - test_crypto: RFC 3174 + FIPS 180-4 + RFC 4231 (incl. long-key case 6) + 63/64/65 block-boundary sweep + the RFC 6455 handshake input, 18/0 - compiler surface flat per house convention (sha1, not crypto.sha1 — matches base64_encode): types.ml signatures + result types, emit.ml ids/dispatch/arity/known-list/drop-table (fresh-Bytes entries so results get their drops) - corpus run/crypto-digests pins the .wo path through base64_encode - no .wob bump (ticks-84 precedent); WO_B_MAX 87; surface doc rows - slice marker + board row: iteration 24 (absorbing 31+34) executing - battery 12/12 fresh-built Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
663 B
663 B
In progress — chat + actor lifecycle (iteration 24, absorbing 31 + 34)
Active slice, branch chat-ws-lifecycle. Spec:
../superpowers/specs/2026-08-23-chat-websocket-actor-lifecycle-design.md
· plan:
../superpowers/plans/2026-08-23-chat-ws-lifecycle.md.
Stages: 1 crypto builtins (85–87) · 2 lifecycle (cap/call/monitor/
time.after, ids 88–90, WO_T_ACTOR, WO-E226) · 3 framework WS
(ws_accept + wsframe) · 4 chat sample + gate · 5 closeout.
This file is deleted when the slice lands (board convention).