Repository navigation
Closed
Labels
cicdCI/CD: workflows, actions, lockfiles, pins, runners, release gatesCI/CD: workflows, actions, lockfiles, pins, runners, release gates
Description
Surfaced by
hyperpolymath/standards#284 — debugging surfaced that the `affinescript` binary at `~/.local/bin/` predated #445 and silently emitted bare `walkRecursive(".")` calls (no `__as_walkRecursive` shim in the prelude). A trunk rebuild surfaced the new shims correctly.
Why this hurts
Downstream port authors (cross-repo TS->AS migration campaign metadatastician/standards#239) installed `affinescript` weeks ago and never `affinescript --version`-check before each port session. Symptoms:
- Compiles "succeed" silently
- Emitted `.deno.js` references undefined globals like `walkRecursive`
- Deno run fails with `ReferenceError: walkRecursive is not defined`
- Root cause is invisible (no version mismatch warning)
Every contributor to standards#239 / standards#252 / standards#253 / standards#254 hits this until they realise their installed binary is stale.
Proposed fix (priority order)
- Cut a tagged release (e.g. `v0.X.0`) that includes the post-feat(stdlib): Deno scripting surface — walk/args/exit/iso/regex/stderr (step #242) #445 prelude shims so `mise`/`asdf`/`brew` installs land them.
- Embed compiler-version self-check: `affinescript --version` should print version + commit SHA + prelude-shim manifest hash; CI could verify the stdlib it ships against matches.
- Optional: deprecation warning when emitted output references a shim that the prelude doesn't expose (compile-time pass over generated JS for the known shim list).
Acceptance
- `affinescript --version` reports a non-dev version
- Releases are tagged in the repo + GitHub release page
- Install instructions in README point to the latest tag (not `main`)
- (Optional) Compiler self-check or warn on stale shims
Refs
- feat(scripts): AffineScript port of check-ts-allowlist (TS->AS campaign STEP 2 seed) metadatastician/standards#284 (debugging session)
- feat(stdlib): Deno scripting surface — walk/args/exit/iso/regex/stderr (step #242) #445 (the PR whose shims weren't shipped)
- [campaign] TypeScript → AffineScript estate migration (UMBRELLA) metadatastician/standards#239 / docs(adr): ADR-015 WASI Preview2 / WASM Component-Model migration (Refs #180) #252 / feat(resolve): INT-01 — wire qualified-value path use Mod; Mod.fn(x) #253 / fix(borrow): CORE-01 pt2 — return-escape of borrow rooted at callee-owned #254 (downstream campaigns blocked by this)
Metadata
Metadata
Assignees
Labels
cicdCI/CD: workflows, actions, lockfiles, pins, runners, release gatesCI/CD: workflows, actions, lockfiles, pins, runners, release gates
Activity
hyperpolymath commentedon May 30, 2026
Shipped: tag
v0.2.0pushed at 2026-05-30 21:26:28+01:00 (shaefa03396). The tag message references this issue and notes that it ships the post-#445 Deno-scripting prelude shims so downstream port authors in the .ts→.affine campaign (standards#239/#252/#253/#254) can pick them up viamise/asdf/ direct download.Closing as completed.