Skip to content

Commit bbbcc11

Browse files
author
Claude
committed
docs(proofs): correct svalinn target to Ephapax (was AffineScript)
Per maintainer decision, svalinn migrates ReScript → Ephapax (Ephapax replaces ALL ReScript); AffineScript is not the target — it appeared only as a format exemplar for the migration map. Update D3, the estate map, the disposed-track brief, and model guidance accordingly. Record that the first svalinn deliverable is the migration-map (critical chain) handed to an offline Claude with ephapax access, that the chain's root unknown is whether Ephapax is yet an implementable application language, that svalinn main CI is red on pre-existing ReScript breakage (not to be fixed in ReScript), and that the migration structurally discharges svalinn security issue #13.
1 parent b6645b3 commit bbbcc11

1 file changed

Lines changed: 28 additions & 14 deletions

File tree

docs/PROOFS.adoc

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ Three repositories are in scope. "Verification" means something different in eac
3030
| Docs/Interface harvest only — core is deleted, not proven.
3131

3232
| `svalinn`
33-
| ReScript edge gateway → migrating to AffineScript + Ephapax. Type-safety and
34-
schema/property tests, not dependent types.
33+
| ReScript edge gateway → migrating to *Ephapax* (replaces all ReScript).
34+
Type-safety and schema/property tests, not dependent types.
3535
| *No — disposed* to a delegated session (see Disposed Tracks). Specs tracked here.
3636
|===
3737

@@ -57,11 +57,13 @@ Three repositories are in scope. "Verification" means something different in eac
5757

5858
| *D3 — svalinn: migrate before proving*
5959
| Prove where the language is final; migrate-then-prove where it is changing.
60-
svalinn migrates ReScript → *AffineScript* (gateway bulk; affine boundary
61-
decoders eliminate `Obj.magic`) + *Ephapax* linear tokens (surgical: JWT/JTI
62-
single-use & revocation, OAuth nonce/PKCE, session/container lifecycle). Its
63-
*specifications* are captured now (Disposed Tracks); its *proofs* come after
64-
migration. Proving the about-to-be-deleted ReScript is waste.
60+
svalinn migrates ReScript → *Ephapax* — Ephapax replaces *all* the ReScript.
61+
Its linear/exactly-once types make JWT/JTI single-use & revocation, OAuth
62+
nonce/PKCE, and session/container lifecycle *compile-time* guarantees, and typed
63+
boundary decoders eliminate the 20+ `Obj.magic`. Its *specifications* are
64+
captured now (Disposed Tracks); its *proofs* come after migration. Proving the
65+
about-to-be-deleted ReScript is waste. (AffineScript is *not* the target — it
66+
surfaced only as a format exemplar for the migration map.)
6567
|===
6668

6769
== Current proof state (ochrance, canonical)
@@ -153,18 +155,26 @@ documented, never faked), disposed tracks handed off, PRs landed.
153155
These are *not* this thread's work. Each is a brief for a delegated session,
154156
disposed at Compaction 1. Specs live here so nothing is lost.
155157

156-
=== svalinn — migrate (AffineScript + Ephapax), then verify [model: Sonnet]
158+
=== svalinn — migrate ReScript → Ephapax, then verify [model: Sonnet]
157159

158-
PRECONDITION: language migration precedes proof (Decision D3).
160+
PRECONDITION: language migration precedes proof (Decision D3). The *first*
161+
deliverable is a migration map (the critical chain of blockers) — handed to an
162+
offline Claude with `hyperpolymath/ephapax` access, targeting
163+
`svalinn/docs/ephapax-migration/BLOCKER-LINEAGE.adoc`. ROOT of that chain, and the
164+
one thing this session could not settle (ephapax is out of scope here): whether
165+
Ephapax is yet an implementable application language (compiler, runtime,
166+
HTTP/async I/O, JSON, fetch, crypto, FFI) or still a proof-level calculus.
159167

160-
. *Migrate* ReScript → AffineScript (gateway, auth, policy, MCP, vörðr, compose).
161-
Affine boundary-decoders replace the *20+ `Obj.magic`* casts in security paths.
168+
. *Migrate* ReScript → Ephapax (gateway, auth, policy, validation, MCP, vörðr,
169+
compose; ~27 `src/` modules + the `ui/` ReScript frontend). Typed boundary
170+
decoders make the *20+ `Obj.magic`* casts in security paths impossible.
162171
. *Ephapax linear tokens* for exactly-once resources: JWT/JTI single-use + the
163172
revocation ledger (fixes the `hasRevocationList = false // TODO` hazard by
164-
construction), OAuth nonce/PKCE, session/container lifecycle.
173+
construction), OAuth nonce/PKCE, session/container lifecycle, vörðr delegation.
165174
. *Unblock CI*: the 53 ReScript unit/security tests don't execute under Deno
166175
(`@rescript/core` resolution) — they vanish with the migration; ensure the
167-
AffineScript suite runs in CI.
176+
Ephapax suite runs in CI. (svalinn `main` CI is currently red on pre-existing
177+
ReScript breakage — do not fix it in ReScript; it is being replaced.)
168178
. *Specs to discharge after migration* (language-agnostic): policy determinism;
169179
`allow ∩ deny` composition + monotonicity; JWT single-use & revocation;
170180
no unchecked boundary casts; JSON-Schema conformance of all 9 gateway types.
@@ -173,6 +183,10 @@ PRECONDITION: language migration precedes proof (Decision D3).
173183
+
174184
DEPENDENCY: Ephapax has *3 Admitted* (Coq) — svalinn's linear guarantees inherit
175185
those holes until closed. Track upstream.
186+
+
187+
DISCHARGES: svalinn security issue #13 (19 Critical/High panic-attack findings —
188+
`decodeJwt()` without `jwtVerify()`, `JSON.parseExn`) is addressed structurally by
189+
this migration (verified JWT + typed deserialisation), not by patching ReScript.
176190

177191
=== ochrance-framework — retire core, harvest Interface, keep docs [model: Sonnet]
178192

@@ -206,7 +220,7 @@ Keep PR #32 (combiner generalisation) shepherded to green; it is subscribed.
206220
novel theorem or structural-wall reasoning.
207221
| *Sonnet 4.6*
208222
| Proof *mechanisation* (known shape), refactors, tests, and the disposed-track
209-
application work (svalinn AffineScript, framework, ABI).
223+
application work (svalinn Ephapax migration, framework, ABI).
210224
| *Haiku 4.5*
211225
| Grunt sweeps — suites, grep, SPDX/format, CI watch.
212226
|===

0 commit comments

Comments
 (0)