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
{{ message }}
Repository navigation
Papercut: shuv2code lean CI succeeds but checkout reports a missing .gitmodules mapping for… #253
Papercutpc_cf5a5bfa6330 · severity minor · logged 2026-08-17
What happens
shuv2code lean CI succeeds but checkout reports a missing .gitmodules mapping for .repos/alchemy-effect/.vendor/alchemy; remove or correctly declare the nested submodule so self-hosted checkout can clean without recreating the repository.
Current evidence
In ~/repos/shuv2code, git ls-files -s shows gitlink 160000 for .repos/alchemy-effect/.vendor/alchemy with no .gitmodules; git submodule status fails 'no submodule mapping found'.
Suggested fix
git rm --cached .repos/alchemy-effect/.vendor/alchemy (and re-add as a regular subtree/vendored content or add a .gitmodules mapping) and commit on a branch.
Filed from the papercuts log during triage on 2026-10-04. Once it's fixed, reference the cut ID in the commit.
.repos/alchemy-effect/.vendor/alchemy is a mode 160000 gitlink (c9f5e549cf023632c3df948c207a58336192b3c7) and this repo has no root .gitmodules. git submodule status exits 128 with no submodule mapping found in .gitmodules for path '.repos/alchemy-effect/.vendor/alchemy'. It is the only gitlink in the index.
The pointer arrived with the alchemy-effect subtree in bd851c020 (chore: add Alchemy reference repo subtree). Upstream .repos/alchemy-effect/.gitmodules declares that path as a submodule of https://github.com/alchemy-run/alchemy.git with update = none, and comments that it is a ~900MB reference-only checkout skipped even by alchemy-effect CI. git subtree copies the gitlink and does not promote the nested .gitmodules entry, so the parent repo has a submodule pointer and no mapping.
Lean GitHub-hosted CI still succeeds: actions/checkout clones into an empty workspace, and .github/workflows/ci.yml deliberately avoids persist-credentials: false because that path runs git submodule foreach and dies on this gitlink. A self-hosted checkout that cleans a persistent worktree runs the same git submodule foreach during clean, fails, and has to recreate the repository.
Scope
Remove the unmapped gitlink with git rm --cached. Do not materialize the ~900MB checkout, and do not add a root .gitmodules mapping — .repos/ is vendored as a subtree, not a submodule. Drop the CI comment that only exists to dodge this pointer, and strip unmapped gitlinks after sync:repos so the next alchemy-effect subtree pull does not put it back.
Activity
shuv1337 commentedon Oct 4, 2026
Diagnosis
.repos/alchemy-effect/.vendor/alchemyis a mode160000gitlink (c9f5e549cf023632c3df948c207a58336192b3c7) and this repo has no root.gitmodules.git submodule statusexits 128 withno submodule mapping found in .gitmodules for path '.repos/alchemy-effect/.vendor/alchemy'. It is the only gitlink in the index.The pointer arrived with the alchemy-effect subtree in
bd851c020(chore: add Alchemy reference repo subtree). Upstream.repos/alchemy-effect/.gitmodulesdeclares that path as a submodule ofhttps://github.com/alchemy-run/alchemy.gitwithupdate = none, and comments that it is a ~900MB reference-only checkout skipped even by alchemy-effect CI.git subtreecopies the gitlink and does not promote the nested.gitmodulesentry, so the parent repo has a submodule pointer and no mapping.Lean GitHub-hosted CI still succeeds:
actions/checkoutclones into an empty workspace, and.github/workflows/ci.ymldeliberately avoidspersist-credentials: falsebecause that path runsgit submodule foreachand dies on this gitlink. A self-hosted checkout that cleans a persistent worktree runs the samegit submodule foreachduring clean, fails, and has to recreate the repository.Scope
Remove the unmapped gitlink with
git rm --cached. Do not materialize the ~900MB checkout, and do not add a root.gitmodulesmapping —.repos/is vendored as a subtree, not a submodule. Drop the CI comment that only exists to dodge this pointer, and strip unmapped gitlinks aftersync:reposso the next alchemy-effect subtree pull does not put it back.Suggested labels
bug,size:XS