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
Their large "drift" counts in the audit are the vendored affinescript
negative/test corpus, not independent consumer drift — i.e. phantom drift
that tracks whatever upstream snapshot was copied. Risk: the vendored copies
silently rot vs upstream main (stale stdlib/grammar/conformance), and they
inflate every estate-wide .affine scan.
Describe the solution you'd like
De-vendor: replace each embedded affinescript tree with a pinned dependency
(submodule / package ref / documented snapshot with a refresh job), so there is
one source of truth and no phantom drift.
Fold into the dialect-conformance campaign — rejected: distinct problem class
(supply-chain / vendoring policy, not dialect drift). Tracked separately here.
Additional context
DEFERRED — explicitly out of scope for the dialect-conformance campaign
(#228/#229); filed so it is not silently forgotten (user decision 2026-05-18).
Not blocked by #228. Audit harness + evidence: /home/hyperpolymath/dev/repos/.affine-audit/ (results.tsv rows for
bofj-kitt / proof-burrower / developer-ecosystem).
Cross-link from the #229 closure (2026-05-19) — #230 is the home for this.
The #229 post-port truthing (docs/RESCRIPT-ELIMINATION.adoc §"#229
closure status") found that every ReScript-surface file the audit
flagged in developer-ecosystem, proof-burrower, and bofj-kitt is a vendored copy of the affinescript repo itself — affinescript/stdlib/effects.affine, affinescript/tests/conformance/run_all.affine, affinescript/docs/guides/warmup/02_ownership.affine (dev-ecosystem nests
it deeper under affinescript-ecosystem/rattlescript/affinescript/…). The mutable matches were comments ("// State effect - mutable references",
"// ── mut: mutable borrow ──"), i.e. scanner false positives — the same
discipline as the affinescript-own-corpus exclusion and the panll FP.
#230 pulls copies INTO upstream alignment; #392 pushes subtrees OUT of upstream. Inverse directions, disjoint target sets, distinct problem classes. Consolidation is not safe.
The ambiguity is with #392, and it is not mine to resolve.#392 asks for the binding subtrees (affinescript-vite/, affinescript-dom/, affinescript-pixijs/, affinescript-tea/, affinescriptiser/) to be moved out of the affinescript repo and into developer-ecosystem — i.e. developer-ecosystem is the intended destination for those trees. But the affinescript/ copy sitting inside affinescript-ecosystem/ is still a vendored duplicate of the main repo, which is what this issue is about.
So: proof-burrower is unambiguously actionable; developer-ecosystem needs #230 and #392 reconciled first — either the vendored affinescript/ is removed and only the binding subtrees stay, or the two issues agree a different shape. I have not deleted anything there.
Activity
hyperpolymath commentedon May 19, 2026
Cross-link from the #229 closure (2026-05-19) — #230 is the home for this.
The #229 post-port truthing (
docs/RESCRIPT-ELIMINATION.adoc§"#229closure status") found that every ReScript-surface file the audit
flagged in
developer-ecosystem,proof-burrower, andbofj-kittis avendored copy of the affinescript repo itself —
affinescript/stdlib/effects.affine,affinescript/tests/conformance/run_all.affine,affinescript/docs/guides/warmup/02_ownership.affine(dev-ecosystem nestsit deeper under
affinescript-ecosystem/rattlescript/affinescript/…). Themutablematches were comments ("// State effect - mutable references","// ── mut: mutable borrow ──"), i.e. scanner false positives — the same
discipline as the affinescript-own-corpus exclusion and the
panllFP.Consequence:
reclassified OUT of ESTATE: total ReScript-surface elimination from all .affine (committed goal; blocked-on #228) #229 permanently (recorded in
RESCRIPT-ELIMINATION.adoc).affinescript trees — which is exactly this issue (ESTATE: de-vendor embedded affinescript trees (bofj-kitt / proof-burrower / developer-ecosystem) #230), not ESTATE: total ReScript-surface elimination from all .affine (committed goal; blocked-on #228) #229.
ESTATE: total ReScript-surface elimination from all .affine (committed goal; blocked-on #228) #229 will not re-list them.
No action change to #230's scope; this just makes it the explicit,
authoritative home so the overlap is not re-litigated under #229.
Refs #229.
hyperpolymath commentedon May 27, 2026
Cross-reference (triage 2026-05-27): scope-disambiguated against #229 and #392 — these three are distinct, not consolidatable.
.affinefiles in independent consumer repos (burble, idaptik-dlc-vm, git-scripts, …). Blocked-on LANG: type/effect grammar has no module-qualified path —Pkg.Type/Pkg.Effectunrepresentable (estate-wide port blocker; ADR-014) #228. Per this issue's existing comment, the 3 vendored-tree repos were reclassified OUT of ESTATE: total ReScript-surface elimination from all .affine (committed goal; blocked-on #228) #229.Pkg.Type/Pkg.Effectunrepresentable (estate-wide port blocker; ADR-014) #228.affinescript-*subtrees to their own repos (or to developer-ecosystem/) #392 — extraction: push five misplaced subtrees (affinescript-vite/,affinescript-dom/,affinescript-pixijs/,affinescript-tea/,affinescriptiser/) OUT of the affinescript repo itself into their proper homes. Reverts the 2026-04-22 consolidation mistake.#230 pulls copies INTO upstream alignment; #392 pushes subtrees OUT of upstream. Inverse directions, disjoint target sets, distinct problem classes. Consolidation is not safe.
hyperpolymath commentedon Sep 19, 2026
Status measured today (2026-09-19) — one of the three is done, one is ambiguous and needs your ruling before anything is deleted.
bofj-kittaffinescript/path exists onmainproof-burroweraffinescript/developer-ecosystemaffinescript-ecosystem/holdsaffinescript/,affinescript-vite/,affinescriptiser/,rattlescript/,affinescript-deno-test/— 1,701 entriesThe ambiguity is with #392, and it is not mine to resolve. #392 asks for the binding subtrees (
affinescript-vite/,affinescript-dom/,affinescript-pixijs/,affinescript-tea/,affinescriptiser/) to be moved out of the affinescript repo and into developer-ecosystem — i.e. developer-ecosystem is the intended destination for those trees. But theaffinescript/copy sitting insideaffinescript-ecosystem/is still a vendored duplicate of the main repo, which is what this issue is about.So:
proof-burroweris unambiguously actionable;developer-ecosystemneeds #230 and #392 reconciled first — either the vendoredaffinescript/is removed and only the binding subtrees stay, or the two issues agree a different shape. I have not deleted anything there.