up
Some checks failed
Signals CI & Image / signals-ci (push) Has been cancelled
Signals Reachability Scoring & Events / reachability-smoke (push) Has been cancelled
Signals Reachability Scoring & Events / sign-and-upload (push) Has been cancelled
Manifest Integrity / Validate Schema Integrity (push) Has been cancelled
Manifest Integrity / Validate Contract Documents (push) Has been cancelled
Manifest Integrity / Validate Pack Fixtures (push) Has been cancelled
Manifest Integrity / Audit SHA256SUMS Files (push) Has been cancelled
Manifest Integrity / Verify Merkle Roots (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Some checks failed
Signals CI & Image / signals-ci (push) Has been cancelled
Signals Reachability Scoring & Events / reachability-smoke (push) Has been cancelled
Signals Reachability Scoring & Events / sign-and-upload (push) Has been cancelled
Manifest Integrity / Validate Schema Integrity (push) Has been cancelled
Manifest Integrity / Validate Contract Documents (push) Has been cancelled
Manifest Integrity / Validate Pack Fixtures (push) Has been cancelled
Manifest Integrity / Audit SHA256SUMS Files (push) Has been cancelled
Manifest Integrity / Verify Merkle Roots (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
This commit is contained in:
@@ -6,9 +6,9 @@ Scope: Define time-anchor fields and freshness calculation for mirror bundles us
|
||||
|
||||
## Contract
|
||||
- **Fields** (mirror manifest root):
|
||||
- `generatedAt`: ISO-8601 UTC timestamp when manifest was produced.
|
||||
- `sourceClock`: optional string describing clock source (e.g., `ntp:chrony`, `hw:tcxo`).
|
||||
- `validForSeconds`: optional TTL; if absent, default freshness budget = 24h.
|
||||
- `generatedAt`: ISO-8601 UTC timestamp when manifest was produced.
|
||||
- `sourceClock`: optional string describing clock source (e.g., `ntp:chrony`, `hw:tcxo`).
|
||||
- `validForSeconds`: optional TTL; if absent, default freshness budget = 24h.
|
||||
- **Staleness computation:** stalenessSeconds = `nowUtc - generatedAt`; import rejects when stalenessSeconds > `validForSeconds` (or 24h default) plus ±5s skew.
|
||||
- **Determinism:** timestamps in `generatedAt` rounded to whole milliseconds; no leap-second smoothing; manifests sorted by `path`.
|
||||
- **Surface mapping:** Excititor airgap import records store `generatedAt` and computed `stalenessSeconds`; timeline events include staleness for Advisory AI.
|
||||
|
||||
Reference in New Issue
Block a user