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
Choose and implement one authoritative schema contract for the Install identity so Bash install/uninstall and PowerShell install/uninstall cannot drift independently. Preserve the current format-1 compatibility and the rule that state is parsed strictly as data, never sourced or evaluated.
This is deliberately deferred until after v1.1 qualification because changing the cross-language generation/validation seam late in the release would create more migration risk than the regression-locked duplication it replaces.
Acceptance criteria
Record the chosen schema ownership/generation strategy in an ADR, including why it works in bootstrap environments before optional tooling exists.
One authoritative field/constraint definition drives or mechanically verifies all four adapter-native readers and writers.
Format 1 remains readable without executing state content; unknown, missing, duplicate, malformed, unsafe-path, semantic, and case-identity violations still fail closed.
Bash and PowerShell emit byte-compatible field names and equivalent constraints for stable, prerelease, legacy, edge, adopted-home, and rootless Podman identities.
Generated artifacts are reproducible from the authoritative schema and CI fails on an ungenerated or hand-diverged adapter.
Cross-language fixtures cover valid and adversarial state, including CRLF, non-ASCII paths, path case rules, and future-format rejection.
Migration/versioning rules are documented before adding any format-2 field.
Type: HITL
What to build
Choose and implement one authoritative schema contract for the Install identity so Bash install/uninstall and PowerShell install/uninstall cannot drift independently. Preserve the current format-1 compatibility and the rule that state is parsed strictly as data, never sourced or evaluated.
This is deliberately deferred until after v1.1 qualification because changing the cross-language generation/validation seam late in the release would create more migration risk than the regression-locked duplication it replaces.
Acceptance criteria
Blocked by