1.9 KiB
1.9 KiB
Mirror Time Anchor Contract
Module
AirGap
Status
VERIFIED
Description
Defines canonical time-anchor fields (generatedAt UTC ISO-8601, optional sourceClock hint) and staleness computation (now - generatedAt with +/-5s tolerance) for mirror bundles in air-gapped environments.
Implementation Details
- Time anchor module:
src/AirGap/StellaOps.AirGap.Time/-- full module with controllers, services, parsing, models, stores, config, hooks, health checks - Time anchor parsing:
src/AirGap/StellaOps.AirGap.Time/Parsing/-- token parsing for time anchor extraction - Staleness calculation: services compute
now - generatedAtwith tolerance handling - HLC merge services:
src/AirGap/StellaOps.AirGap.Time/Services/-- Hybrid Logical Clock for multi-node sync - Deterministic time fixtures:
src/AirGap/StellaOps.AirGap.Time/fixtures/ - Bundle integration:
src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/-- TimeAnchorContent, SnapshotBundleWriter.Sections.TimeAnchor, SnapshotBundleReader.Verify.TimeAnchor - Attestor timestamping:
src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/TimeCorrelationValidator.Validate.cs,TimeCorrelationStatus.cs - Tests:
src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/(TimeAnchorLoaderTests, StalenessCalculatorTests, TimeVerificationServiceTests, TimeTokenParserTests, etc.)
E2E Test Plan
- Verify time anchor is embedded in air-gap bundle with correct ISO-8601 format
- Verify staleness calculation correctly computes age with +/-5s tolerance
- Verify time anchor verification rejects bundles with tampered timestamps
- Verify HLC merge produces consistent ordering across multiple nodes
Related Documentation
- Source: SPRINT_0150_0001_0002_mirror_time.md
Verification
- Run:
docs/qa/feature-checks/runs/airgap/mirror-time-anchor-contract/run-001/ - Date (UTC): 2026-02-11