# Offline Operations UI ## Module Web ## Status VERIFIED ## Description Shipped the canonical offline and air-gap operations flow under `Ops > Operations`, repaired stale deep links from legacy `ops` and `platform-ops` aliases, and completed the previously half-wired Offline Kit actions so operators can load bundles, export summaries, inspect trust anchors, and hand off into Evidence and Trust surfaces without dead ends. ## Implementation Details - **Feature directories**: - `src/Web/StellaOps.Web/src/app/features/offline-kit/` - `src/Web.StellaOps.Web/src/app/features/platform/ops/` - **Primary components**: - `offline-kit` (`src/Web.StellaOps.Web/src/app/features/offline-kit/offline-kit.component.ts`) - `offline-dashboard` (`src/Web.StellaOps.Web/src/app/features/offline-kit/components/offline-dashboard.component.ts`) - `bundle-management` (`src/Web.StellaOps.Web/src/app/features/offline-kit/components/bundle-management.component.ts`) - `verification-center` (`src/Web.StellaOps.Web/src/app/features/offline-kit/components/verification-center.component.ts`) - `jwks-management` (`src/Web.StellaOps.Web/src/app/features/offline-kit/components/jwks-management.component.ts`) - `platform-feeds-airgap-page` (`src/Web.StellaOps.Web/src/app/features/platform/ops/platform-feeds-airgap-page.component.ts`) - **Canonical routes**: - `/ops/operations/offline-kit` - `/ops/operations/offline-kit/dashboard` - `/ops/operations/offline-kit/bundles` - `/ops/operations/offline-kit/verify` - `/ops/operations/offline-kit/jwks` - `/ops/operations/feeds-airgap` - **Legacy aliases**: - `/ops/offline-kit/*` - `/ops/feeds/*` - `/platform-ops/*` - `/platform/ops/*` - **Secondary entry points**: - `Evidence > Export Center` - `Evidence > Verify & Replay` - `Setup > Trust & Signing` - context status chips and Ops navigation ## E2E Test Plan - **Setup**: - [x] Start the local Angular test server with `npm run serve:test`. - [x] Open `/ops/operations/offline-kit`. - [x] Use a test session with Ops and admin scopes. - **Core verification**: - [x] Verify Offline Kit renders its canonical shortcuts and child tabs. - [x] Verify bundle and verification actions are usable instead of placeholder logs. - [x] Verify trust-anchor inspection and export flows render inside the shell. - **Legacy verification**: - [x] Verify stale `/platform/ops/offline-kit/*` bookmarks land on `/ops/operations/offline-kit/*`. - [x] Verify stale `/ops/feeds/airgap/import` lands on the canonical `Feeds & Airgap` page with preserved tab or action context. ## Verification - Run: - `npm test -- --watch=false --include src/tests/offline/offline-kit-ui-integration.spec.ts --include src/tests/offline/verification-center.component.spec.ts --include src/tests/offline/jwks-management.component.spec.ts --include src/tests/platform-ops/platform-feeds-airgap-page.component.spec.ts --include src/tests/platform-ops/platform-ops-routes.spec.ts` - `npm run serve:test` - `PLAYWRIGHT_BASE_URL=https://127.0.0.1:4400 npx playwright test tests/e2e/offline-operations.spec.ts --workers=1` - `npm run build` - Tier 0 (source): pass - Tier 1 (build/tests): pass - Tier 2 (behavior): pass - Notes: - Angular targeted tests passed: `5` files, `17` tests. - Playwright passed: `2` scenarios. - Production build passed; existing bundle-budget warnings remain unchanged from the baseline. - Verified on (UTC): 2026-03-08T00:54:00Z