- Introduced Storybook configuration files (`main.ts`, `preview.ts`, `tsconfig.json`) for Angular components. - Created motion tokens in `motion-tokens.ts` to define durations, easing functions, and transforms. - Developed a Storybook story for motion tokens showcasing their usage and reduced motion fallback. - Added SCSS variables for motion durations, easing, and transforms in `_motion.scss`. - Implemented accessibility smoke tests using Playwright and Axe for automated accessibility checks. - Created portable and sealed bundle structures with corresponding JSON files for evidence locker. - Added shell script for verifying notify kit determinism.
Evidence Locker Golden Fixtures (EB10)
Purpose: reference bundles and replay records used by CI to prove deterministic packaging, DSSE subject stability, and portable redaction behaviour.
Layout
sealed/– sealedbundle.tgzartifacts with matchingmanifest.json,checksums.txt, and expected Merkle root inexpected.json.portable/– redactedportable-bundle-v1.tgzpaired withexpected.jsonnoting masked fields.replay/–replay.ndjsonrecords aligned to the bundle fixtures; ordering is canonical (recordedAtUtc, scanId).
Expectations
- Gzip timestamp pinned to
2025-01-01T00:00:00Z; tar entries use0644perms and fixed mtime. checksums.txtsorted lexicographically bycanonicalPath; Merkle root equalssha256sum checksums.txt.- DSSE subject ties to the Merkle root; manifest validates against
schemas/bundle.manifest.schema.json. - Portable bundles must exclude tenant identifiers and include redaction metadata in the manifest.
How to (re)generate
- Set
TZ=UTCand ensure deterministic tool versions. - Run EvidenceLocker pipeline to produce sealed bundle; copy outputs here with expected hash values.
- Produce portable bundle and replay records using the same input set; write
expected.jsoncapturing root hashes and replay digests. - Update xUnit tests in
StellaOps.EvidenceLocker.Teststo consume these fixtures without network calls.