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
Copy file name to clipboardExpand all lines: .agents/docs/2026-05-30-bmi-cache-custom-index-fix.md
+26Lines changed: 26 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -81,3 +81,29 @@ There is also a cache-key correctness gap: all dependency cache entries currentl
81
81
- Local verification: `mcpp build` succeeded, then `MCPP=target/x86_64-linux-gnu/4d24c8b57fdbbbb4/bin/mcpp bash tests/e2e/49_bmi_cache_nested_custom_index.sh` returned `OK`.
82
82
-`mcpp test -- --gtest_filter=BmiCache.*` initially exposed an unrelated local environment issue: `~/.mcpp/registry/data/xpkgs/xim-x-binutils/2.42` only had `.xpkg.lua` and no `bin/as`. Re-running with a temporary `MCPP_HOME` pointed at the complete installed mcpp registry passed: 15 test binaries ok, 0 failed.
83
83
- Remote custom-index first-use sync keeps the mcpp-level `Fetching custom index repos (first use)` status, but calls `update_index(..., quiet=true)` so `mcpp build` does not expose xlings update output. A non-zero update exits with a concise mcpp-level error.
84
+
85
+
## Final Outcome
86
+
87
+
- Landed with PR #88: https://github.com/mcpp-community/mcpp/pull/88
88
+
- Released in `mcpp 0.0.35`: https://github.com/mcpp-community/mcpp/releases/tag/v0.0.35
89
+
- The mcpp status line remains visible, but internal `xlings update` output is quiet.
90
+
- The xlings migration PR #314 completed without `warning: bmi cache populate failed` in the Linux `E2E-00: mcpp builds xlings from source` log.
91
+
92
+
## Follow-up: Default Index Freshness
93
+
94
+
The final local xlings verification exposed a separate default-index freshness bug:
95
+
when `~/.mcpp/registry/data` contained other xlings-managed index clones but no
96
+
`mcpplibs` clone, `mcpp` treated the registry as fresh and skipped the default
97
+
index update. `mcpp build` then failed before dependency resolution with:
98
+
99
+
```text
100
+
error: dependency 'compat.libarchive': index entry not found in local clone
101
+
```
102
+
103
+
Fix for `0.0.36`:
104
+
105
+
-`is_index_fresh()` now requires `registry/data/mcpplibs/pkgs` specifically.
106
+
- Regression coverage verifies that an unrelated `xim-pkgindex/pkgs` tree no
107
+
longer satisfies default `mcpplibs` freshness.
108
+
- A fresh/mixed user cache will trigger the normal default-index update path
109
+
before searching or building `compat.*` dependencies.
0 commit comments