Nightly update: we broke cartridge manifests, and this fixes it
The previous nightly introduced the new effect axis for cap URNs and
made cap:effect=none the only legal identity cap. That part was
intentional. What we broke was the migration around it: some cartridge
manifests were still being published with the old vacuous identity
forms such as cap: or cap:in=media:;out=media:.
This nightly is the fix.
What changed
- Cartridge identity handling was tightened so published manifests now
use the new legal identity form consistently:
cap:effect=none
- The app and engine now fail on the old vacuous top-cap identity forms instead of quietly treating them as valid.
- Runtime output inference continues to respect the new
effectaxis, so broad declaredout=values no longer incorrectly drive file extension and persistence decisions when a cap actually preserves the concrete runtime media type. - Manifest/test coverage around cartridge identity was tightened so this regression is less likely to slip back in unnoticed.
What was broken
- Some cartridges were still advertising old identity caps in their manifests.
- That caused registry indexing failures such as:
- invalid cap URN
cap: - invalid cap URN
cap:in=media:;out=media:
- invalid cap URN
- In practice, that could prevent cartridges from being indexed or discovered correctly even though the fabric registry itself had been updated.
Why it matters
- The new cap-URN regime only works if the cartridge registry and the fabric registry agree on what a legal identity cap is.
cap:effect=noneis now the explicit identity morphism across the stack. This nightly closes the gap between the new rules and the cartridge manifests being published in the wild.
Notes
- This is a nightly build intended for testing and feedback.
- The main purpose of this build is to repair the cartridge-manifest
breakage introduced during the
effectmigration.
Feedback
- Email: [email protected]
- Discord: https://discord.gg/utwdVm6tYB