Skip to content

Commit a9acf25

Browse files
hyperpolymathclaudehyperpolymath
authored
docs(svalinn): record migration state + blockers in the apparatus (STATE.a2ml + runbook) (#109)
## What Closes the documentation gap flagged while wrapping up: the AffineScript-migration outcome lived only in merged-PR bodies (#105/#106) and chat, while the repo's durable **apparatus** understated reality. - **`STATE.a2ml`** previously said `# No blockers recorded` → now records the real blocked-on-upstream WASM constructor-link dependency (carried patch over `58dc2a0`; #105), the **4/11** gateway-compile status, the specific parse / sibling-resolution / `float_to_string` blockers, and ordered `[critical-next-actions]`. - **`AFFINE-MIGRATION-TASK.md`** gains a dated **Current status** section with the same, superseding the stale PR #46 framing. A future session reading `STATE.a2ml` + the runbook is now self-sufficient — no need to dig through merged PRs. Docs-only. Refs #96. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01EsxEhRW4rDbxMo2c9xaa7Z --- _Generated by [Claude Code](https://claude.ai/code/session_01EsxEhRW4rDbxMo2c9xaa7Z)_ --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: hyperpolymath <paraordinate@yahoo.co.uk>
1 parent 33505a7 commit a9acf25

2 files changed

Lines changed: 33 additions & 3 deletions

File tree

container-stack/svalinn/.machine_readable/6a2/STATE.a2ml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
[metadata]
66
project = "svalinn"
77
version = "0.1.0"
8-
last-updated = "2026-03-13"
8+
last-updated = "2026-06-21"
99
status = "active"
1010
session = "converted from scheme — 2026-04-11"
1111

@@ -36,13 +36,18 @@ milestones = [
3636
]
3737

3838
[blockers-and-issues]
39+
# NOTE: milestone %s above reflect ReScript feature-completeness; the
40+
# ReScript -> AffineScript MIGRATION (PR #46 / stapeln #96) is NOT complete.
3941
issues = [
40-
# No blockers recorded
42+
{ id = "as-wasm-ctor-link", severity = "high", status = "fixed-carried", note = "AffineScript core-WASM codegen did not link cross-module enum constructors (gen_imports dropped TopType) -> `use prelude::{Some,None,...}` consumers failed `compile` with Codegen.UnboundVariable. Fixed + proven (stapeln #105); carried as container-stack/svalinn/patches/affinescript-wasm-ctor-link.patch over affinescript 58dc2a0 until it lands upstream. NOT affinescript #138 (closed = front-end half)." },
43+
{ id = "gateway-port-4of11", severity = "medium", status = "in-progress", note = "4/11 src/*.affine compile to WASM (auth/AuthTypes, gateway/GatewayTypes, gateway/RateLimiter, vordr/VordrTypes). Remaining: 4 parse errors (Main `None=>{}`, host/Json `pub extern fn`, policy/PolicyEngine, vordr/Client); 2 sibling-module resolutions (auth/Authz `use AuthTypes`, gateway/SecurityHeaders `use Json` -- single-file compile has no src/** search path, needs a project/manifest build mode upstream); 1 WASM builtin gap (gateway/Metrics `float_to_string` unimplemented in core-WASM codegen)." },
4144
]
4245

4346
[critical-next-actions]
4447
actions = [
45-
# No actions recorded
48+
{ priority = 1, action = "Land the constructor-link patch upstream in hyperpolymath/affinescript (ready-to-file issue text + patch in maintenance/affinescript-wasm-ctor-link/), then re-pin AFFINESCRIPT_REF to the merged SHA and drop the carried `git apply` in Containerfile + .github/workflows/svalinn-affine-build.yml." },
49+
{ priority = 2, action = "Resolve the 4 gateway parse errors, the Metrics float_to_string WASM gap, and the sibling-module search-path need; re-run the per-module compile gate toward 11/11." },
50+
{ priority = 3, action = "Wire svalinn-affine-build.yml to a green build at 11/11, then cut over (delete .res) per AFFINE-MIGRATION-TASK.md." },
4651
]
4752

4853
[maintenance-status]

container-stack/svalinn/AFFINE-MIGRATION-TASK.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,31 @@ Do not claim done until every verification gate below passes locally.
1616
Work on branch `claude/stapeln-maintenance-followup-iEUKy` (PR #46, draft).
1717
Commit per logical module; push; keep the PR draft until all gates pass.
1818

19+
## Current status — 2026-06-21 (updated this session; supersedes the PR #46 framing)
20+
21+
**Compiler blocker cracked + partial port landed.** The root blocker was NOT
22+
affinescript #138 (closed — that was the front-end/resolver half); it was an
23+
untracked **WASM-codegen** gap: `gen_imports` never linked imported enum
24+
constructors, so `use prelude::{Some, None, ...}` consumers failed `compile`
25+
with `Codegen.UnboundVariable`. Fixed + proven (stapeln #105) and **carried** as
26+
`container-stack/svalinn/patches/affinescript-wasm-ctor-link.patch` over
27+
affinescript `58dc2a0` (the current `AFFINESCRIPT_REF`) until it lands upstream.
28+
29+
**Gateway port: 4/11 `src/*.affine` compile to WASM**`auth/AuthTypes`,
30+
`gateway/GatewayTypes`, `gateway/RateLimiter`, `vordr/VordrTypes`. Remaining:
31+
- **4 parse errors**`Main` (`None => {}`), `host/Json` (`pub extern fn`),
32+
`policy/PolicyEngine`, `vordr/Client` (compiler-rejected syntax).
33+
- **2 sibling-module resolutions**`auth/Authz` (`use AuthTypes`),
34+
`gateway/SecurityHeaders` (`use Json`): single-file `compile` has no `src/**`
35+
search path; needs a project/manifest build mode upstream.
36+
- **1 WASM builtin gap**`gateway/Metrics`: `float_to_string` not implemented
37+
in the core-WASM codegen.
38+
39+
**Next:** land the patch upstream → re-pin `AFFINESCRIPT_REF` to the merged SHA
40+
and drop the carried `git apply` → fix the parse/type/sibling issues → 11/11
41+
green → cutover. Full analysis + ready-to-file affinescript issue text:
42+
`maintenance/affinescript-wasm-ctor-link/README.adoc`.
43+
1944
## Prerequisites (must exist locally)
2045

2146
- `opam` + OCaml ≥ 5.1, `dune` ≥ 3.14, `m4`, `git`

0 commit comments

Comments
 (0)