fix: portable anima paths + portable-path CI gate#17
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
import "/Users/ghost/.../impl/anima/<f>.hexa"→ sibling-relativeimport "<f>.hexa". Verified hexa resolvesimportagainst the caller's dir (the imported libs are siblings inimpl/anima/), matching the existingimport "limen.hexa"pattern.kosmos_emitter.hexa(2 sites):KOSMOS_ANCHOR_DIRdefault/Users/ghost/.../anchors→anchors/anima(committed repo anchor dir, relative to cwd). Env override path unchanged.(B) Test fixtures — portable placeholder, tests stay green
consciousness_carving_smoke.hexaandtest_kosmos_roundtrip.hexaanchor-dir literals →KOSMOS_ANCHOR_DIRenv override with theanchors/anima/relative default.(C) Comment/doc — updated the two stale doc comments that referenced the foreign default /
abs-path onlyimport 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)
Not made portable / honest note
consciousness_carving_smoke.hexaF-CARVE-5 returnsfalse— but this is a pre-existing test-fixture/data drift, NOT a path issue: the smoke asserts thetensionpayload form is"pending", while the committedanchors/anima/knuth_077_mandala.kosmoshastension_form == "ref". F-CARVE-1..4 all pass; F-CARVE-5 fails identically even with an absoluteKOSMOS_ANCHOR_DIRand 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 torefor re-emit the anchor).🤖 Generated with Claude Code