From fc6aa7c4b5c1fd9371009aff16e615059c3eef5d Mon Sep 17 00:00:00 2001 From: master <> Date: Sat, 28 Mar 2026 12:57:58 +0200 Subject: [PATCH] Standardize remaining quick links: aside layout + descriptions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Operations Hub: - "Jump to" links now use layout="aside" with descriptions for each sub-page (Data Integrity, Jobs, Health, Quotas, AOC, Packs) Advisories & VEX: - Quick links use layout="aside" with label "Configure" - Descriptions: "Configure NVD, OSV, and GHSA advisory sources" Topology Environment Detail: - "Navigate" links use layout="aside" with descriptions Offline Kit: - Replaced raw quick-link-pill divs with stella-quick-links component - Uses layout="aside" with 4 links + descriptions 3 more pages (VEX Hub, Platform Setup, Administration) still use raw quick-link-pill pattern — to be converted in follow-up. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../offline-kit/offline-kit.component.ts | 18 +++++++++++------- .../platform-ops-overview-page.component.html | 2 +- .../platform-ops-overview-page.component.ts | 14 +++++++------- .../security-disposition-page.component.ts | 6 +++--- ...pology-environment-detail-page.component.ts | 10 +++++----- 5 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/Web/StellaOps.Web/src/app/features/offline-kit/offline-kit.component.ts b/src/Web/StellaOps.Web/src/app/features/offline-kit/offline-kit.component.ts index 1deb5a612..97a120998 100644 --- a/src/Web/StellaOps.Web/src/app/features/offline-kit/offline-kit.component.ts +++ b/src/Web/StellaOps.Web/src/app/features/offline-kit/offline-kit.component.ts @@ -8,6 +8,7 @@ import { ActivatedRoute, NavigationEnd, Router, RouterModule, RouterOutlet } fro import { filter } from 'rxjs'; import { OfflineModeService } from '../../core/services/offline-mode.service'; +import { StellaQuickLinksComponent, type StellaQuickLink } from '../../shared/components/stella-quick-links/stella-quick-links.component'; import { ContextHeaderComponent } from '../../shared/ui/context-header/context-header.component'; import { StellaPageTabsComponent, StellaPageTab } from '../../shared/components/stella-page-tabs/stella-page-tabs.component'; @@ -24,7 +25,7 @@ const PAGE_TABS: readonly StellaPageTab[] = [ @Component({ selector: 'app-offline-kit', - imports: [RouterModule, RouterOutlet, ContextHeaderComponent, StellaPageTabsComponent], + imports: [RouterModule, RouterOutlet, ContextHeaderComponent, StellaPageTabsComponent, StellaQuickLinksComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
@@ -42,12 +43,9 @@ const PAGE_TABS: readonly StellaPageTab[] = [
- +
- +
Run Doctor Audit Log diff --git a/src/Web/StellaOps.Web/src/app/features/platform/ops/platform-ops-overview-page.component.ts b/src/Web/StellaOps.Web/src/app/features/platform/ops/platform-ops-overview-page.component.ts index b8d18a71a..d100354c6 100644 --- a/src/Web/StellaOps.Web/src/app/features/platform/ops/platform-ops-overview-page.component.ts +++ b/src/Web/StellaOps.Web/src/app/features/platform/ops/platform-ops-overview-page.component.ts @@ -50,13 +50,13 @@ export class PlatformOpsOverviewPageComponent { readonly refreshedAt = signal(null); readonly quickNav: readonly StellaQuickLink[] = [ - { label: 'Overview', route: OPERATIONS_PATHS.overview }, - { label: 'Data Integrity', route: OPERATIONS_PATHS.dataIntegrity }, - { label: 'Jobs & Queues', route: OPERATIONS_PATHS.jobsQueues }, - { label: 'Health & SLO', route: OPERATIONS_PATHS.healthSlo }, - { label: 'Quotas & Limits', route: OPERATIONS_PATHS.quotas }, - { label: 'AOC Compliance', route: OPERATIONS_PATHS.aoc }, - { label: 'Pack Registry', route: OPERATIONS_PATHS.packs }, + { label: 'Overview', route: OPERATIONS_PATHS.overview, description: 'Blocking issues and operator actions' }, + { label: 'Data Integrity', route: OPERATIONS_PATHS.dataIntegrity, description: 'Feed freshness and replay backlog' }, + { label: 'Jobs & Queues', route: OPERATIONS_PATHS.jobsQueues, description: 'Execution queues and worker capacity' }, + { label: 'Health & SLO', route: OPERATIONS_PATHS.healthSlo, description: 'Service health and SLO metrics' }, + { label: 'Quotas & Limits', route: OPERATIONS_PATHS.quotas, description: 'Tenant quotas and throttle events' }, + { label: 'AOC Compliance', route: OPERATIONS_PATHS.aoc, description: 'Provenance violation review' }, + { label: 'Pack Registry', route: OPERATIONS_PATHS.packs, description: 'TaskRunner packs and installs' }, ]; readonly blockingCards: readonly BlockingCard[] = [ diff --git a/src/Web/StellaOps.Web/src/app/features/security/security-disposition-page.component.ts b/src/Web/StellaOps.Web/src/app/features/security/security-disposition-page.component.ts index 867577029..85a7ddc63 100644 --- a/src/Web/StellaOps.Web/src/app/features/security/security-disposition-page.component.ts +++ b/src/Web/StellaOps.Web/src/app/features/security/security-disposition-page.component.ts @@ -71,7 +71,7 @@ const ADVISORY_TABS: StellaPageTab[] = [

Advisories & VEX

Intel and attestation workspace for provider health, statement conflicts, and issuer trust.

- +

Environment Signals

- +
@@ -394,10 +394,10 @@ export class TopologyEnvironmentDetailPageComponent { readonly capsuleRows = signal([]); readonly envQuickLinks = computed(() => [ - { label: 'Environment', route: `/setup/topology/environments/${this.environmentId()}` }, - { label: 'Targets', route: '/setup/topology/targets' }, - { label: 'Agents', route: '/setup/topology/agents' }, - { label: 'Runs', route: '/releases/runs' }, + { label: 'Environment', route: `/setup/topology/environments/${this.environmentId()}`, description: 'Environment posture and configuration' }, + { label: 'Targets', route: '/setup/topology/targets', description: 'Deployment targets in this environment' }, + { label: 'Agents', route: '/setup/topology/agents', description: 'Agent fleet and connectivity' }, + { label: 'Runs', route: '/releases/runs', description: 'Deployment runs for this environment' }, ]); readonly healthyTargets = computed(() =>