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
Commit f2030f5
Browse filesBrowse the repository at this point in the historyBrowse files
A dependency with a namespace prefix whose package declares the split form
(`name="tensorvia-cpu"`, `namespace="aimol"`) and is filed under a non-canonical
filename in a shared index (`pkgs/t/tensorvia-cpu.lua`, not the canonical
`pkgs/a/aimol.tensorvia-cpu.lua`) failed to resolve:
error: dependency 'aimol.tensorvia-cpu': index entry not found in local clone
while the bare form `tensorvia-cpu` resolved and installed correctly. Root cause:
`selectDependencyCandidate` disambiguated the dotted-selector candidate ladder
[(mcpplibs.aimol, tensorvia-cpu), (aimol, tensorvia-cpu)] by probing whether each
candidate's CANONICAL FILENAME `<ns>.<short>.lua` exists on disk. The descriptor's
bytes live under a non-canonical name, so the correct peer-root candidate
(aimol, tensorvia-cpu) was invisible, the request stayed pinned to the wrong front
candidate (mcpplibs.aimol, …), and the load-path identity gate rejected it.
Fix: candidate selection is now identity-first. It locates each candidate via the
same identity-verified readers the load path uses (`read_xpkg_lua*`), which key on
the descriptor's DECLARED (ns, name) and already cover non-canonical filenames — so
selection and loading can never disagree. The canonical-filename-only strict reader
(`readStrictLuaFromPkgsDir` / `canonicalXpkgLuaFilename`) is removed; the filename is
no longer an identity key.
This is Step 0 of the identity-first architecture; the §5 PackageLocator/IdentityIndex
choke-point consolidation remains follow-up. Design + research + the complete
(ns,name) matching-rules table + test-coverage-gap analysis:
.agents/docs/2026-06-26-identity-first-resolution-no-filename.md
Tests:
- unit PmPackageFetcher.ResolvesCustomNamespaceDescriptorUnderNonCanonicalFilename
(locks the read-layer identity-not-filename invariant)
- e2e 76_qualified_custom_ns_noncanonical_filename.sh (the full repro: builtin index
× non-canonical filename × qualified request; asserts resolve + lock ns="aimol" +
clean not-found for a genuinely wrong namespace)
0 commit comments