Summary
PR #455 (S-D24) deleted the unsigned pre-signed-path sidecar type (AssetSidecar) and its reader, and replaced them with an explicit one-time migration, Workspace::migrate_unsigned_sidecars, which carries the only remaining decoder of the legacy shape as a private LegacyRecord in capsule-core/src/lifecycle/migrate_unsigned.rs, plus the LegacyUnsigned arm of the crate-private probe capsule-core/src/sidecar/shape.rs.
Both exist so that a library written before the signed path can be brought forward. Once no such library remains — every library in existence today is developer-recreated (SLICES S-D23), and the migration is idempotent — they are dead weight in a frozen crate.
Deliverable
- Delete
lifecycle/migrate_unsigned.rs's decoder and verb, the UnsignedMigrationOptions / UnsignedMigrationReport / MigrationSkip / UnmigratedShape::LegacyUnsigned public items, and SidecarShape::LegacyUnsigned; keep the open-time report of chainless sidecars (Workspace::unmigrated_sidecars) if it still earns its place, or fold it into the maintenance scrub's quarantine surface.
- Keep reading the fold: a migrated asset's signed sidecar carries the legacy map under
_unknown["legacy-unsigned-sidecar"], covered by the signature, and the never-strip rule means it stays there forever. Nothing in this retirement touches signed bytes.
- Retire the CLI verb from the follow-up that adds it, and the maintenance-table row in
design/filesystem/maintenance.md.
Precondition
A recorded decision that no unsigned library remains (or a deprecation window has elapsed). Recorded as decision 5's "Filed" line in PR #455.
Refs #412, #455.
Summary
PR #455 (S-D24) deleted the unsigned pre-signed-path sidecar type (
AssetSidecar) and its reader, and replaced them with an explicit one-time migration,Workspace::migrate_unsigned_sidecars, which carries the only remaining decoder of the legacy shape as a privateLegacyRecordincapsule-core/src/lifecycle/migrate_unsigned.rs, plus theLegacyUnsignedarm of the crate-private probecapsule-core/src/sidecar/shape.rs.Both exist so that a library written before the signed path can be brought forward. Once no such library remains — every library in existence today is developer-recreated (SLICES
S-D23), and the migration is idempotent — they are dead weight in a frozen crate.Deliverable
lifecycle/migrate_unsigned.rs's decoder and verb, theUnsignedMigrationOptions/UnsignedMigrationReport/MigrationSkip/UnmigratedShape::LegacyUnsignedpublic items, andSidecarShape::LegacyUnsigned; keep the open-time report of chainless sidecars (Workspace::unmigrated_sidecars) if it still earns its place, or fold it into the maintenance scrub's quarantine surface._unknown["legacy-unsigned-sidecar"], covered by the signature, and the never-strip rule means it stays there forever. Nothing in this retirement touches signed bytes.design/filesystem/maintenance.md.Precondition
A recorded decision that no unsigned library remains (or a deprecation window has elapsed). Recorded as decision 5's "Filed" line in PR #455.
Refs #412, #455.