---
path: /status
surface: customer
domain: system
auth: anon
source: apps/oshun/web/src/app/status/page.tsx
status: walked
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'
---

# Status · All Systems

## 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.0142` — `Fixture · Tara · CDN edge · eu-north slow` — `S2 · specimen`
  - `I.0141` — `Fixture · Atelier · video step retry rate` — `S3 · specimen`
  - `I.0140` — `Fixture · Identity · SAML response delay` — `S2 · specimen`

## States

- [x] **Fixture overview operational** — h1, header pill, and V1/V3 stack rows
      render operational fixture state
- [x] **Degraded performance** — `tara.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
- [x] **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
- [x] **Loading** — no runtime status fetch or client skeleton; fixture arrays
      render synchronously with the page
- [x] **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.

- [x] **Component row** — static row only; no expansion control
- [x] **Incident card** — static row only; the arrow glyph is a `<span>`, not a
      detail link
- [x] **"Subscribe to updates" link / button** — not present in the current
      route
- [x] **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`](../../shell/03-pwa-behavior.md)
- System edge states: [`system-edge-states.md`](./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

- [x] 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.
- [x] Confirm middleware: `/status` is anon-readable via `PUBLIC_PATHS`.
- [x] Document the components surfaced: current labels are fixture service /
      surface identifiers spanning Lilith, customer domains, archive/identity,
      and V3 launch systems.
- [x] Confirm whether there is a "Subscribe to updates" affordance: none is
      present.
- [x] No telemetry attributes are present in the route content.
