Skip to content

fix: portable anima paths + portable-path CI gate#17

Merged
dancinlife merged 1 commit into
mainfrom
fix/portable-path
Jun 1, 2026
Merged

fix: portable anima paths + portable-path CI gate#17
dancinlife merged 1 commit into
mainfrom
fix/portable-path

Conversation

@dancinlife

Copy link
Copy Markdown
Contributor

What

Removes author-machine absolute paths (/Users/ghost/...) from the anima impl, which broke compilation/runtime on any checkout other than the original author's machine, and adds a CI gate to prevent regressions.

Triage (14 hits, all /Users/ghost/...)

(A) Runtime breakage — fixed portably

  • All import "/Users/ghost/.../impl/anima/<f>.hexa" → sibling-relative import "<f>.hexa". Verified hexa resolves import against the caller's dir (the imported libs are siblings in impl/anima/), matching the existing import "limen.hexa" pattern.
  • kosmos_emitter.hexa (2 sites): KOSMOS_ANCHOR_DIR default /Users/ghost/.../anchorsanchors/anima (committed repo anchor dir, relative to cwd). Env override path unchanged.

(B) Test fixtures — portable placeholder, tests stay green

  • consciousness_carving_smoke.hexa and test_kosmos_roundtrip.hexa anchor-dir literals → KOSMOS_ANCHOR_DIR env override with the anchors/anima/ relative default.

(C) Comment/doc — updated the two stale doc comments that referenced the foreign default / abs-path only import rule (no separate deferral needed).

CI gate

.github/workflows/portable-path-gate.yml — pure-bash, fails any PR whose added (non-comment) source line introduces /Users/<name>/ or /home/<name>/.

Tests (verbatim)

$ hexa run impl/test_limen_roundtrip.hexa
limen self-test: 14/14
PASS

$ hexa run impl/anima/test_kosmos_roundtrip.hexa
PASS  F-KOSMOS-RT  round-trip + real-anchor — 14/14 checks

$ hexa run impl/anima/consciousness_carving_smoke.hexa
=== F-CARVE-1..5 compiled-native selftest: false (5/5) ===

Not made portable / honest note

consciousness_carving_smoke.hexa F-CARVE-5 returns false — but this is a pre-existing test-fixture/data drift, NOT a path issue: the smoke asserts the tension payload form is "pending", while the committed anchors/anima/knuth_077_mandala.kosmos has tension_form == "ref". F-CARVE-1..4 all pass; F-CARVE-5 fails identically even with an absolute KOSMOS_ANCHOR_DIR and from any cwd, so it is independent of the portability change. Recorded as a deferred handoff for the kosmos owner to decide (fix the assertion to ref or re-emit the anchor).

🤖 Generated with Claude Code

Author-machine absolute paths (/Users/ghost/...) broke the anima impl on
any other checkout. Replace them with portable equivalents:

- imports → sibling-relative (hexa resolves `import` against caller_dir),
  so impl/anima/*.hexa load each other regardless of checkout location.
- kosmos_emitter KOSMOS_ANCHOR_DIR default → `anchors/anima` (the committed
  repo anchor dir, relative to cwd; env override unchanged).
- carving_smoke / kosmos_roundtrip anchor dir → KOSMOS_ANCHOR_DIR env
  override with the same `anchors/anima/` relative default; tests stay green.

Add .github/workflows/portable-path-gate.yml — pure-bash PR gate that fails
any added (non-comment) source line introducing /Users/<name>/ or
/home/<name>/.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@dancinlife dancinlife merged commit b329901 into main Jun 1, 2026
@dancinlife dancinlife deleted the fix/portable-path branch June 1, 2026 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant