feat(ui): ship offline operations cutover
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
# Sprint 20260308-002 - Offline Operations Cutover
|
||||
|
||||
## Topic & Scope
|
||||
- Restore the dropped and weakly surfaced offline capability by making one canonical offline operations owner fully usable instead of leaving Offline Kit, feed air-gap flows, and evidence export handoffs split across stale aliases.
|
||||
- Ship a working `Ops > Operations > Offline Kit` and `Ops > Operations > Feeds & Airgap` flow with repaired secondary entry points, bookmark-safe legacy aliases, and usable offline shell actions.
|
||||
- Complete the UI workflows that were still half-wired: route-aware tabs, real drill-ins, usable export and verification actions, and cross-links into Evidence and Trust surfaces.
|
||||
- Working directory: `src/Web/StellaOps.Web/src/app/features/offline-kit`.
|
||||
- Allowed coordination edits: `src/Web/StellaOps.Web/src/app/routes/`, `src/Web/StellaOps.Web/src/app/core/navigation/`, `src/Web.StellaOps.Web/src/app/layout/context-chips/`, `src/Web.StellaOps.Web/src/app/features/platform/ops/`, `src/Web.StellaOps.Web/src/tests/offline/`, `src/Web.StellaOps.Web/src/tests/platform-ops/`, `src/Web.StellaOps.Web/src/tests/navigation/`, `src/Web.StellaOps.Web/tests/e2e/`, `docs/modules/ui/offline-operations/`, `docs/features/checked/web/`, `docs/modules/ui/TASKS.md`, `docs/modules/ui/implementation_plan.md`, and `docs/modules/ui/component-preservation-map/RESTORATION_PRIORITIES.md`.
|
||||
- Expected evidence: one mounted canonical offline route family, working alias redirects for old bookmarks, usable offline shell actions, repaired cross-shell links, targeted Angular tests, Playwright verification, and synced docs.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on:
|
||||
- `docs/modules/ui/component-preservation-map/RESTORATION_PRIORITIES.md`
|
||||
- `docs/modules/ui/platform-ops-consolidation/README.md`
|
||||
- `docs/modules/ui/contextual-actions-patterns/README.md`
|
||||
- `src/Web.StellaOps.Web/src/app/routes/operations.routes.ts`
|
||||
- `src/Web.StellaOps.Web/src/app/features/offline-kit/offline-kit.routes.ts`
|
||||
- `src/Web.StellaOps.Web/src/app/features/platform/ops/platform-feeds-airgap-page.component.ts`
|
||||
- Safe parallelism:
|
||||
- canonical route and alias contract must freeze before deep-link cleanup starts
|
||||
- offline-shell action completion can proceed in parallel with docs drafting once route targets are fixed
|
||||
- QA and checked-feature docs can proceed in parallel after the final route contract is stable
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/ui/platform-ops-consolidation/README.md`
|
||||
- `docs/modules/ui/contextual-actions-patterns/README.md`
|
||||
- `docs/modules/ui/component-preservation-map/RESTORATION_PRIORITIES.md`
|
||||
- `docs/modules/ui/implementation_plan.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### FE-OFF-001 - Freeze canonical offline owner and alias contract
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Product Manager, FE Architect
|
||||
Task description:
|
||||
- Make `Ops > Operations` the owner shell for offline and air-gap operational workflows, with `Offline Kit` and `Feeds & Airgap` as first-class child routes.
|
||||
- Define and implement bookmark-safe redirects from stale `/ops/offline-kit/*`, `/ops/feeds/*`, `/platform-ops/*`, and `/platform/ops/*` variants into the active canonical routes.
|
||||
|
||||
Completion criteria:
|
||||
- [x] One canonical offline route family exists under `/ops/operations/*`.
|
||||
- [x] Legacy aliases land on working offline child pages without dropping query params.
|
||||
- [x] Navigation and contextual chips point at the same canonical owner.
|
||||
|
||||
### FE-OFF-002 - Make offline shell actions usable and route-aware
|
||||
Status: DONE
|
||||
Dependency: FE-OFF-001
|
||||
Owners: Developer, FE Architect
|
||||
Task description:
|
||||
- Repair the Offline Kit shell so its header actions, dashboard cards, tabs, and cross-links are real operator actions instead of dead buttons or isolated status text.
|
||||
- Ensure the `Feeds & Airgap` page is route-aware, query-driven, and able to hand operators into the right offline or evidence workflow.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Offline Kit actions navigate to working canonical routes or perform a real local workflow.
|
||||
- [x] Feeds & Airgap tabs are linkable and preserve state through the URL.
|
||||
- [x] Cross-links between Offline Kit, Feeds & Airgap, Evidence, and Trust work from the mounted shell.
|
||||
|
||||
### FE-OFF-003 - Complete supporting export, verification, and trust workflows
|
||||
Status: DONE
|
||||
Dependency: FE-OFF-002
|
||||
Owners: Developer
|
||||
Task description:
|
||||
- Replace the remaining no-op Offline Kit actions with usable FE behavior, including bundle export, verification detail drill-ins, report export, and trust-material import or inspection where practical inside the current UI contract.
|
||||
- Make the restored surfaces useful for operators even without backend changes by providing deterministic local export and inspection flows where the prior UI stopped at placeholders.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Bundle export and verification actions no longer end in `console.log` dead ends.
|
||||
- [x] Verification history supports detail drill-in and report export.
|
||||
- [x] JWKS or trust-anchor actions provide a usable inspection or import path inside the shell.
|
||||
|
||||
### FE-OFF-004 - Verify canonical offline operations journeys
|
||||
Status: DONE
|
||||
Dependency: FE-OFF-003
|
||||
Owners: QA, Test Automation
|
||||
Task description:
|
||||
- Add targeted UI verification for canonical routes, alias redirects, offline-shell actions, and at least one end-to-end journey that starts from a secondary entry point and reaches a usable offline workflow.
|
||||
- Prove the restored capability is usable, not just mounted.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Angular tests cover canonical routes, alias redirects, and representative offline workflows.
|
||||
- [x] Playwright covers the main offline landing and at least one stale-alias journey.
|
||||
- [x] Verification explicitly checks that dead buttons and stale routes are gone from the active operator path.
|
||||
|
||||
### FE-OFF-005 - Sync docs, archive the sprint, and record the shipped feature
|
||||
Status: DONE
|
||||
Dependency: FE-OFF-004
|
||||
Owners: Documentation author, Project Manager
|
||||
Task description:
|
||||
- Publish the shipped offline operations contract, checked-feature note, task-board updates, and restoration backlog update.
|
||||
- Archive the sprint only after code and verification evidence are complete.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Shipped offline operations UX is documented with canonical routes and alias behavior.
|
||||
- [x] Checked-feature note records the exact verification commands and outcomes.
|
||||
- [x] Sprint is archived only after all delivery tasks are marked done.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-08 | Sprint created to restore Offline Operations by making `Ops > Operations` the canonical owner and completing the remaining half-wired offline shell actions. | Project Manager |
|
||||
| 2026-03-08 | Repaired canonical offline and feed-airgap aliases, updated navigation and context chips, and made the `Feeds & Airgap` page route-aware instead of button-stub driven. | Developer |
|
||||
| 2026-03-08 | Completed Offline Kit workflows with manifest loading, bundle export, verification detail and report export, trust-anchor inspection, and Evidence or Trust handoffs. | Developer |
|
||||
| 2026-03-08 | Verified targeted Angular coverage with `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`: 17 tests passed. | QA |
|
||||
| 2026-03-08 | Verified browser flows with a prestarted local Angular test server plus `PLAYWRIGHT_BASE_URL=https://127.0.0.1:4400 npx playwright test tests/e2e/offline-operations.spec.ts --workers=1`: 2 scenarios passed. | QA |
|
||||
| 2026-03-08 | Production build passed via `npm run build`; existing bundle budget warnings remain unchanged from the baseline. | QA |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: `Ops > Operations > Offline Kit` and `Ops > Operations > Feeds & Airgap` remain the canonical owner surfaces; Evidence and Trust remain secondary linked destinations rather than competing products.
|
||||
- Decision: this sprint completes the UI workflows already present in the shell and fixes stale alias routing; it does not add new backend APIs.
|
||||
- Risk: several offline components still stop at placeholder buttons or stale paths, so a route-only cutover would still leave operators stranded.
|
||||
- Mitigation: replace dead buttons with route-aware actions or deterministic local export and inspection flows in the same sprint.
|
||||
- Risk: aliasing legacy `/ops/*` and `/platform-ops/*` deep links can regress query-param preservation if redirects are string-based.
|
||||
- Mitigation: use redirect helpers that preserve existing query params and fragments.
|
||||
- Risk: local Playwright web-server startup can exceed the default timeout because the Angular dev build is heavy.
|
||||
- Mitigation: prestart `npm run serve:test` and point Playwright at `PLAYWRIGHT_BASE_URL=https://127.0.0.1:4400` for deterministic local verification.
|
||||
- Delivery rule: this sprint is only complete when the canonical offline tree is mounted, main actions are usable, and the core operator journeys are verified end to end.
|
||||
- Reference design note: `docs/modules/ui/offline-operations/README.md`.
|
||||
- Docs synced:
|
||||
- `docs/modules/ui/offline-operations/README.md`
|
||||
- `docs/features/checked/web/offline-operations-ui.md`
|
||||
- `docs/features/checked/web/offline-kit-ui-integration.md`
|
||||
- `docs/features/checked/web/feed-mirror-airgap-ops-ui.md`
|
||||
- `docs/modules/ui/TASKS.md`
|
||||
- `docs/modules/ui/implementation_plan.md`
|
||||
- `docs/modules/ui/component-preservation-map/RESTORATION_PRIORITIES.md`
|
||||
## Next Checkpoints
|
||||
- 2026-03-08: archived after implementation, verification, and docs sync completed.
|
||||
Reference in New Issue
Block a user