Repository navigation
Vendor mindwalk as a reference repo #2
Description
Activity
Resolution
.repos/mindwalkis vendored and pinned atv0.3.0(upstream commitb9c12798d, squashed in as4e371ae12). 104 files, MIT notice intact (.repos/mindwalk/LICENSE, © 2026 Ricko Yu).Branch
chore/vendor-mindwalk-reference, two commits, unpushed:86e650e26—chore(scripts): allow reference repos pinned to a fixed ref205e4778c— thegit subtree add --squash
The machinery needed a change first
referenceReposassumed every vendored checkout tracks an installed dependency: the ref is derived asversionTagPrefix+ the version string atpackageVersionPathinsideversionSourcePath. Mindwalk is not a dependency, so there is no version to read.That mattered more than it looks.
syncReferenceReposloops sequentially and fails fast, so a repo that cannot resolve a version would have aborted a plainsync:reposforeffect-smolandalchemy-effectas well.So the version source is now optional. A repo that omits it is pinned, and
latestRefis the ref, regardless of--latest. Backwards compatible; the two existing entries are untouched.Verified with a full dry run:
Syncing effect-smol from effect@4.0.0-beta.102 with git subtree pull. Syncing alchemy-effect from v2.0.0-beta.65 with git subtree pull. Syncing mindwalk from v0.3.0 with git subtree add.Why
v0.3.0and notmainUpstream HEAD (
e208b6b8) is exactly one commit ahead of the tag, and it isdocs: update demo video. So the tag is functionally identical to HEAD, matches the released binary being used as the visual reference, and cannot drift underneath a port whose whole value is diffing against a fixed baseline. Bump deliberately, never with the workspace.Tests
scripts/sync-reference-repos.test.ts: 11 passed, andtsc -p scripts/tsconfig.jsonis clean.Three pre-existing tests referenced
versionSourcePathas a required string and needed narrowing. One assertedexpectedRepoIdsdeep-equals a hardcoded["effect-smol", "alchemy-effect"]— now derived fromreferenceRepos, so it will not break the next time a repo is added. Added one test covering the pinned path: a repo with no version source resolves tolatestRefwithout touching the filesystem, with and without--latest.Line references confirmed against the pinned ref
Counts cited during charting all hold at
v0.3.0:CityScene.tsx638,TreeScene.tsx656,treeLayout.ts169,sceneUtils.ts144,dirLabels.ts145,trail.ts79,textures.ts60,playback/251,types.ts271,builder.go520.Two refs quoted during charting had drifted and are now corrected in Port the citymap builder to the T3 server: the
git ls-filescall isbuilder.go:91(not:88) and the weight string isbuilder.go:85(not:82). Still accurate:target.Weakatbuilder.go:47,subagentsDiratclaudecode/agents.go:41,fileFingerprintcache atserver/server.go:59.Two incidental notes
- This clone had no
node_modules— the sync script imports@effect/platform-node, so nothing could run or typecheck. Ranvp iperAGENTS.md. - Removed the stale git worktree left by the research agent. It was being globbed into test runs as a phantom second copy of this very test file, failing for lack of its own
node_modules. Theresearch/tool-call-classificationbranch is unaffected.
Correction — config registration dropped
Reworked after review. The previous resolution registered mindwalk in
scripts/lib/reference-repos.ts, which required making the version source optional across two shared scripts. That divergence is now gone.Nothing validates
.repos/against that config — CI only excludes the directory from path filters — so the registration was optional. And registering it was actively counterproductive: mindwalk would then be pulled by every routinesync:reposrun, dragging unrelated upstream changes into our history as merge commits at unpredictable times.Now: a plain
git subtree add, no config entry, no script changes.f6d00d61e Merge commit '040f6ee03...' as '.repos/mindwalk' 040f6ee03 Squashed '.repos/mindwalk/' content from commit b9c12798d a83fa5863 (main)Diff against
mainis 104 files, all additive under.repos/mindwalk/. Zero changes to shared files, so upstream merges frompingdotgg/t3codehave nothing to conflict with.scripts/is byte-identical to main;sync:repos --dry-runplans the same two repos as before; the 10 original tests pass unmodified.How to update mindwalk later
One command, run deliberately, never automatically:
git subtree pull --prefix=.repos/mindwalk https://github.com/cosmtrek/mindwalk.git <ref> --squashThe snapshot is
v0.3.0(upstreamb9c12798d), recorded in the squash commit message —git log --oneline -- .repos/mindwalkshows what we have and where it came from. There is no pin to maintain: nothing moves it until someone runs that command.MIT notice intact at
.repos/mindwalk/LICENSE. All line references confirmed against this snapshot, as in the previous comment.
Part of #1
Question
Register
cosmtrek/mindwalkinscripts/lib/reference-repos.tsand sync it to.repos/mindwalkviavpr sync:repos, pinned to a specific ref..repos/is tracked in git (12,961 files today) andAGENTS.mddescribes it as vendored read-only reference: "Prefer their patterns over invented ones. Never edit or import from them." That is exactly the relationship we want with mindwalk — we port from it by hand and diff against it forever to see what we changed and to pull upstream fixes.Resolved when
.repos/mindwalkexists, the sync config names a pinned ref, and the MIT notice (© 2026 Ricko Yu) is preserved. Record the pinned ref in the answer; later tickets cite line numbers against it.