You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(adr): CORE-02 / #234 / ADR-016 — truth ledger to "DELIVERED" (#336)
## Summary
The effect-threaded async-boundary work (issue #234, ADR-016) shipped
end-to-end on 2026-05-19 via PRs #270 / #275 / #276 / #277 / #278, but
the ledger entries and several in-source comments were still describing
intermediate states (`"S1 done"`, `"Built, not yet consumed"`, `"falls
back to the structural recogniser"`). This PR brings them into agreement
with the realised end state. **No behavioural change** — pure
documentation truthing of work already merged.
### Ledger refresh
- `docs/TECH-DEBT.adoc` — **CORE-02** and **CONV-02** marked `*CLOSED
2026-05-19*` with the full S1..S4 / PR cross-reference and the
steady-state miss path.
- `docs/specs/SETTLED-DECISIONS.adoc` +
`.machine_readable/6a2/META.a2ml` ADR-016 — staging block records
per-slice PR numbers and `DONE` status; the *Fallback / safety*
paragraph rewritten so the steady-state miss path is "no transform" (S4
retired the structural recogniser).
- `docs/ECOSYSTEM.adoc` + `docs/specs/async-on-wasm-cps.adoc` — #234
marked DELIVERED with the PR list, removing the "follow-up, still
tracked" framing.
### In-source comment refresh
- `lib/codegen.ml` — `is_async_prim_call` docstring + the
`bind_consumer` call-site comment rewritten to describe the realised
behaviour (single-sourced from `Effect_sites.is_async_call`; table-miss
= no transform).
- `lib/effect_sites.ml` — async-oracle header no longer claims "falls
back to the structural recogniser".
- `lib/typecheck.ml` — `call_effects` field doc +
`populate_call_effects` comment no longer say "Built, not yet consumed".
- `test/test_main.ml` — Alcotest suite label `"Effect-sites (#234 S2a)"`
→ `"Effect-sites (#234, ADR-016)"`.
### Why zero behaviour risk
Code-side edits touch only `(* … *)` / `(** … *)` comment blocks
(stripped by the OCaml lexer) and one Alcotest suite-label string. No
identifier, no expression, no top-level binding is changed.
## Test plan
- [ ] CI: `dune build` clean
- [ ] CI: `dune test --force` green (gate baseline holds — the S2a
`Effect_sites` test suite + the S3
`tests/codegen/effect_async_boundary.affine` e2e are the in-tree
witnesses of the delivered behaviour)
- [ ] No new lints flagged
> Local `dune test` was not run in this session because the
remote-execution env's network policy blocks the non-GitHub opam hosts
(`erratique.ch`, `gitlab.inria.fr`, `ocaml.janestreet.com`) that
`menhir`, `cmdliner`, `fmt`, `sexplib0`, … fetch from, so the switch
could not be brought up. The actual S1..S4 behaviour was CI-verified at
merge time on each of #270/#275/#276/#277/#278.
https://claude.ai/code/session_01HZ3i2wX5R5rbY8Ycmug4Ao
---
_Generated by [Claude
Code](https://claude.ai/code/session_01HZ3i2wX5R5rbY8Ycmug4Ao)_
Co-authored-by: Claude <noreply@anthropic.com>
0 commit comments