feat(web): stable page identity across 10 weak surfaces (FE-ROUTES-003)
Closes SPRINT_20260421_005 FE-ROUTES-003. Each surface from the 2026-04-21 traversal now carries a workspace-level h1, one-line summary, and a primary action that reflects the owning workflow (not generic shell copy). Surfaces updated: - / → Release Command Center → Review pending approvals - /environments/overview → Environments → Add environment - /ops/policy/packs → Release Policies → Create pack - /security/advisory-sources → Advisory Sources → Add advisory source - /triage/artifacts → Triage Artifacts → Triage next finding - /evidence/exports → Evidence Exports → Stella bundle export - /ops/operations/feeds-airgap → Feeds & Airgap → Import airgap bundle - /ops/operations/doctor → Platform Diagnostics → Run quick diagnostic - /setup/integrations → Integrations → Add Integration - /setup/tenant-branding → Tenant & Branding → editor Apply Changes CTA Copy + markup inline on each component (no new shared PageHeader component — identity pass, not a refactor). Tests: new src/Web/StellaOps.Web/src/app/features/_identity/ fe-routes-003-page-identity.spec.ts — 31 Vitest assertions, 31/31 pass. Existing integration-hub.component.spec.ts (9/9) confirms the renamed "Add Integration" primary action still holds. Traversal map (docs/qa/console-ui-traversal-map.md) flipped the 10 surfaces from "weak" to "resolved by FE-ROUTES-003" with 1-line evidence per surface. Unblocks SPRINT_20260421_006 and SPRINT_20260421_007 which gate their behavioral QA on this stable-identity contract. Sprint SPRINT_20260421_005 archived — all 4 tasks DONE (FE-ROUTES-001/002 criteria boxes also flipped to reflect their already-DONE execution-log state). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -44,23 +44,42 @@
|
||||
- `/evidence/capsules` currently lands on `/ops/operations/audit?tab=all-events`.
|
||||
- Those Evidence-to-Audit collapses may be intentional consolidation, but today they weaken the standalone Evidence surface and must be reviewed against product intent.
|
||||
|
||||
### Weak identity surfaces from the current runtime pass
|
||||
- `/`
|
||||
- `/environments/overview`
|
||||
- `/ops/policy/packs`
|
||||
- `/security/advisory-sources`
|
||||
- `/triage/artifacts`
|
||||
- `/evidence/exports`
|
||||
- `/ops/operations/feeds-airgap`
|
||||
- `/ops/operations/doctor`
|
||||
- `/setup/integrations`
|
||||
- `/setup/tenant-branding`
|
||||
### Weak identity surfaces — resolved by FE-ROUTES-003 (2026-04-22)
|
||||
|
||||
These routes resolved and often had route titles, but the automated pass extracted little or no page-level heading/CTA identity from the main surface. In the next QA pass, treat them as "weak identity" pages and verify whether the problem is:
|
||||
- truly missing page identity,
|
||||
- card-based content without a stable top-level heading,
|
||||
- lazy-loading or state timing,
|
||||
- or a page shell that is present but not communicating ownership clearly enough.
|
||||
Every surface called out in the 2026-04-21 traversal as "weak identity" has been promoted to stable
|
||||
page identity under `SPRINT_20260421_005_FE_console_route_identity_and_redirect_truth.md`
|
||||
(task FE-ROUTES-003). Each page now carries a workspace heading, a one-line summary explaining what
|
||||
the surface is for, and a primary action keyed to the owning workflow. Evidence lines below reference
|
||||
the component that owns the new identity markup and the workflow the primary action triggers.
|
||||
|
||||
- `/` -> `DashboardV3Component` — h1 "Release Command Center" + release-oriented summary; primary
|
||||
action "Review pending approvals" links to `/releases/approvals`.
|
||||
- `/environments/overview` -> `EnvironmentsCommandComponent` — h1 "Environments" + readiness summary;
|
||||
primary action "Add environment" links to `/ops/platform-setup`.
|
||||
- `/ops/policy/packs` -> `PolicyPackShellComponent` — h1 "Release Policies" + author/test/activate
|
||||
summary; primary action "Create pack" on the pack list (hidden inside a specific pack).
|
||||
- `/security/advisory-sources` -> `AdvisorySourcesComponent` — h1 "Advisory Sources" + freshness /
|
||||
trust / impact summary; primary action "Add advisory source" links to `/setup/integrations` with
|
||||
the advisory connector filter.
|
||||
- `/triage/artifacts` -> `TriageArtifactsComponent` — h1 "Triage Artifacts" + lane-first summary;
|
||||
primary action "Triage next finding" opens the evidence-first triage workspace for the top row.
|
||||
- `/evidence/exports` -> `ExportCenterComponent` — h1 "Evidence Exports" + export-bundle workflow
|
||||
summary; primary action is the Stella bundle export button under `evidence-exports-primary-action`.
|
||||
- `/ops/operations/feeds-airgap` -> `PlatformFeedsAirgapPageComponent` — h1 "Feeds & Airgap" +
|
||||
airgap-sync summary; primary action "Import airgap bundle" jumps operators into the bundle import
|
||||
workflow.
|
||||
- `/ops/operations/doctor` -> `DoctorDashboardComponent` — h1 "Platform Diagnostics" + drift / health
|
||||
summary; primary action renamed from "Quick" to "Run quick diagnostic" so the workflow is explicit.
|
||||
- `/setup/integrations` -> `IntegrationHubComponent` — new h1 "Integrations" + connector-scope
|
||||
summary in the main panel header; primary action "Add Integration" links to the registry create
|
||||
flow.
|
||||
- `/setup/tenant-branding` -> `BrandingSettingsPageComponent` — wrapper now exposes a dedicated h1
|
||||
"Tenant & Branding" with a tenant-ownership summary above the reused `BrandingEditorComponent`,
|
||||
which retains its "Apply Changes" primary workflow CTA.
|
||||
|
||||
Retained automation: each surface is covered by `src/Web/StellaOps.Web/src/app/features/_identity/fe-routes-003-page-identity.spec.ts`,
|
||||
which asserts heading copy, summary tokens, and primary-action markers so downstream regressions
|
||||
surface in focused Vitest runs.
|
||||
|
||||
### Confirmed route defect
|
||||
- `curl -k -I https://127.0.0.1:4400/console-admin/tenants` returned `302 Found` with `location: https://127.0.0.1/console-admin/tenants`.
|
||||
|
||||
Reference in New Issue
Block a user