release: freeze Nexus One AI 1.0.0-rc1
This commit is contained in:
1 parent
63acefd890
commit
4f1419ca93
152 files changed
+9445
-828
No files matched your search
@@ -0,0 +1,62 @@
|
||||
# Artifact Compatibility Evaluation Contract
|
||||
|
||||
This contract defines deterministic pre-mutation evaluation for ISO payloads, model packs, update
|
||||
bundles, and trust bundles. Signature and object verification occur separately; compatibility cannot
|
||||
turn an untrusted artifact into a trusted one.
|
||||
|
||||
## Installed Context
|
||||
|
||||
The evaluator receives a locally derived, non-secret context containing product category, internal
|
||||
tier, platform version, Ubuntu release, architecture, hardware profile/capabilities, available bytes,
|
||||
installed security floor, current revocation-list version/age, and current artifact inventory. Missing
|
||||
required context fails closed; it is never replaced by a network lookup.
|
||||
|
||||
## Evaluation Order
|
||||
|
||||
Evaluation stops at the first failure in this order so every implementation returns the same primary
|
||||
reason:
|
||||
|
||||
1. `ARTIFACT_SCHEMA_UNSUPPORTED` — manifest or signature-envelope schema is not supported.
|
||||
2. `TRUST_POLICY_UNSUPPORTED` — declared trust policy cannot be evaluated.
|
||||
3. `KEY_UNKNOWN`, `KEY_REVOKED`, or `REVOCATION_POLICY_STALE` — signer is not currently acceptable.
|
||||
4. `MANIFEST_DIGEST_MISMATCH` — envelope digest does not match canonical manifest bytes.
|
||||
5. `SIGNATURE_INVALID` — detached signature does not verify the canonical manifest bytes.
|
||||
6. `OBJECT_DIGEST_MISMATCH` — any declared object is absent, different in size, or fails SHA-256.
|
||||
7. `ARCHITECTURE_INCOMPATIBLE` — target architecture is neither installed architecture nor `multi`.
|
||||
8. `CATEGORY_INCOMPATIBLE` — installed category is not explicitly allowed.
|
||||
9. `TIER_INCOMPATIBLE` — installed internal tier is not explicitly allowed.
|
||||
10. `PLATFORM_VERSION_INCOMPATIBLE` — current/from/to rules reject the installed version.
|
||||
11. `SECURITY_FLOOR_VIOLATION` — activation would move below the installed signed floor.
|
||||
12. `UBUNTU_RELEASE_INCOMPATIBLE` — base release is outside the declared target.
|
||||
13. `HARDWARE_PROFILE_INCOMPATIBLE` or `CAPABILITY_MISSING` — required local hardware is absent.
|
||||
14. `SPACE_INSUFFICIENT` — available staging/rollback space is below `required_free_bytes`.
|
||||
15. `ROLLBACK_PREREQUISITE_MISSING` — required snapshot/backup/last-known-good state is not verified.
|
||||
16. `ACTION_GRAPH_INVALID` — actions are unordered, duplicated, cyclic, or reference absent objects.
|
||||
|
||||
Only a result of `COMPATIBLE` permits staging. Staging still cannot mutate the active installation;
|
||||
activation is a separately authorized durable operation.
|
||||
|
||||
## Category and Tier Invariants
|
||||
|
||||
- `workstation` category accepts only tier `workstation`.
|
||||
- `server` category accepts only `starter`, `basic`, `pro`, or `max`.
|
||||
- A Workstation artifact listing a Server tier, or Server artifact listing `workstation`, is invalid
|
||||
even when both values separately appear in their allowlists.
|
||||
- Offline Server S/M permits only `starter` and `basic`; Offline Server L/Max permits only `pro` and
|
||||
`max`. Online Universal Server may permit all four Server tiers.
|
||||
- Compatibility never grants entitlement. License evaluation can further restrict an otherwise
|
||||
compatible artifact.
|
||||
|
||||
## Version Rules
|
||||
|
||||
`platform_versions` and update `from_versions` use a single approved semantic-version range grammar;
|
||||
prerelease versions match only when explicitly named. `to_version` is exact. Downgrade is any target
|
||||
lower than current and is rejected unless both the manifest and a separately signed break-glass
|
||||
authorization permit it. String or lexical version comparison is forbidden.
|
||||
|
||||
## Test Vector Policy
|
||||
|
||||
Files under `test-vectors/` are intentionally non-production examples. Repeated hexadecimal values,
|
||||
`example.invalid`, test key IDs, and zero-value signatures MUST never be accepted as release data.
|
||||
Structural/compatibility vectors may use them; cryptographic positive vectors require a dedicated
|
||||
published test key and real signature before Gate 1 approval.
|
||||
Reference in new issue
Block a user