V1 Web PWA · Surface walkthrough

Status · All Systems

A per-surface walkthrough of the V1 Web PWA customer surface: layout, states, interactions, data, and cross-references.

walked
9sections4 minread

On this page

Context. surface customer · domain system · route /status · auth anon · source apps/oshun/web/src/app/status/page.tsx

Last walked. 2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data (2xx), console/page-errors, expected content, screenshot verified; live screen-reader, touch, offline, and telemetry-delivery checks pending a manual AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; fixture component rows, incident rows, history strip, public access, static/read-only contract, reduced-motion state, and telemetry absence refreshed 2026-06-27 in apps/oshun/web/e2e/system-status-page.spec.ts

Purpose#

Public uptime / incident status specimen rendered through the StatusPage Lilith system-page composition. The current route is static fixture data, not a live status API client. It surfaces V1/V3 stack health, component health, 90-day uptime history, and fixture incident rows in the Lilith manuscript register.

Entry points#

  • Footer "Status" link from /welcome, /landing, and signed-in shell
  • Incident-notification emails ("View status page" link)
  • Direct URL / bookmark — yes (anon)
  • Inbound from other status aggregators / RSS readers

Layout regions#

page.tsx is <StatusPage />. The StatusPage composition is exported from apps/oshun/web/src/components/lilith/system-pages.tsx and is described in the file's header as: "public status: components, 90-day history, recent incidents — uptime in plain sight."

Per the current composition contract, the layout includes:

  • LWebShell chrome
  • Headline / kicker: status.oshun.app, h1 "All systems · operational.", and an LStatusPill reading "Specimen · fixture data"
  • Stack health (aria-label="V1 and V3 system health", data-v3-health-status="operational"): V1 customer shell and V3 launch systems, both operational fixture rows
  • Components list (Components · 12): lilith.web, lilith.api, tara.cdn, veritas.search, nyx.ephemeris, atelier.bellona, identity.sso, archive.write, v3.launch-router, v3.world-server, v3.pxstream-relay, and v3.fallback-web
  • Per-component sparklines: each component row renders a 30-rect SVG history strip; tara.cdn is the only degraded component and carries one accent-coloured sparkline bar
  • 90-day history strip: 90 static cells with two accent-coloured incident cells and summary 2 incidents · 0 outages · 99.97% uptime
  • Recent incidents list: three fixture incident rows:
    • I.0142Fixture · Tara · CDN edge · eu-north slowS2 · specimen
    • I.0141Fixture · Atelier · video step retry rateS3 · specimen
    • I.0140Fixture · Identity · SAML response delayS2 · specimen

States#

  • Fixture overview operational — h1, header pill, and V1/V3 stack rows render operational fixture state
  • Degraded performancetara.cdn renders as the only degraded component with one degraded sparkline bar
  • Partial outage — no partial-outage fixture exists in the current static page
  • Major outage — no major-outage fixture exists in the current static page
  • Maintenance scheduled / in progress — no maintenance fixture exists in the current static page
  • Recent fixture incidents — three fixture incident rows render below the history summary
  • No recent incidents — no empty-state fixture exists in the current static page
  • Loading — no runtime status fetch or client skeleton; fixture arrays render synchronously with the page
  • Reduced motion — the component sparklines and 90-day strip are static; no CSS keyframe animation is present in the status content under prefers-reduced-motion: reduce
  • Offline — SW-cached version should render the last-known status
  • Standalone PWA — should render cleanly

Interactions#

Status content is read-only. The route has shell navigation outside the content, but the StatusPage body currently exposes no links, buttons, form controls, summaries, tabbable rows, component expansions, incident detail links, or subscribe affordance.

  • Component row — static row only; no expansion control
  • Incident card — static row only; the arrow glyph is a <span>, not a detail link
  • "Subscribe to updates" link / button — not present in the current route
  • History strip cells — static visual cells only; no hover/focus detail controls

Data & contracts#

  • Reads: hardcoded fixture arrays in system-pages.tsx: STATUS_STACKS, STATUS_COMPONENTS, and STATUS_INCIDENTS
  • Writes: none
  • Realtime: none; no polling or subscription client is present
  • Caching: SSR static; SW cache
  • Auth/role check: anon; /status is in src/proxy.ts PUBLIC_PATHS
  • Metadata: title: 'Status · all systems', description: 'Public status: components, last-90-day history, recent incidents — uptime in plain sight.', alternates.canonical: '/status'

Cross-references#

  • Shell PWA / offline: shell/03-pwa-behavior.md
  • System edge states: system-edge-states.md (showcases the offline / partial-failure / sync indicators consumed by this page)
  • Component sources:
    • apps/oshun/web/src/components/lilith/system-pages.tsx (StatusPage)
    • Lilith primitives: LStatusPill, LSeverityPill, LCode, LEyebrow

Automated coverage#

  • apps/oshun/web/e2e/lilith-public-routes.spec.ts
    • Public /status render and a11y smoke with no auth redirect
  • apps/oshun/web/e2e/v3-marketing-public-web.spec.ts
    • Public /status direct render and query-cleanup behavior used by V3 marketing entry points
  • apps/oshun/web/e2e/system-status-page.spec.ts
    • Anonymous direct render of /status
    • Header, fixture pill, and V1/V3 stack health container
    • All 12 component rows, expected status labels, metrics, and 30-rect sparklines
    • tara.cdn degraded state and one degraded sparkline bar
    • 90-day history strip, two degraded history cells, and uptime summary
    • Three fixture incident rows with codes, titles, severities, and fixture status
    • Read-only content contract: no component/incident/detail/subscribe controls
    • No telemetry attributes in the status content
    • Reduced-motion static state: no status-content keyframe animation

Open questions / known gaps#

  • Read the StatusPage export in system-pages.tsx: current page is composed from static fixture arrays, with a source comment noting that a future live route should hydrate from the incidents service before shipping publicly as real status.
  • Confirm middleware: /status is anon-readable via PUBLIC_PATHS.
  • Document the components surfaced: current labels are fixture service / surface identifiers spanning Lilith, customer domains, archive/identity, and V3 launch systems.
  • Confirm whether there is a "Subscribe to updates" affordance: none is present.
  • No telemetry attributes are present in the route content.