---
path: /studio/hathor/simulation-worker
surface: studio
domain: hathor
auth: signed-in + studio entitlement
source: apps/oshun/web/src/app/studio/hathor/simulation-worker/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; body
  re-derived 2026-06-03 from current source (lane-console architecture)'
---

# Studio Hathor · Simulation Worker

## Purpose

Aggregator surface that composes Hathor's simulation worker lanes: a Capability
Summary plus the embedded Simulation Physics and Simulation State Persistence
workspaces. It is the worker sibling lane under the canonical
`/studio/hathor/simulation` aggregator. The page itself issues no `/v1` fetch —
each embedded lane owns its own admin-scoped, fail-closed backend wiring.

## Entry points

- **Breadcrumb** — Studio › Hathor › Simulation › Simulation Worker (sibling
  lane)
- **Quick-action links** to simulation (parent), simulation-physics,
  simulation-state-persistence, scenario-generation, and Back to Studio
- **Direct URL / bookmark** — yes; `alternates.canonical` set
- **Studio overview** — see
  [`../../studio-overview.md`](../../studio-overview.md)

## Layout regions

`page.tsx` renders inside `<ShellLayout active="studio">`:

- **Breadcrumb panel** (`data-hathor-simulation-worker-breadcrumbs`): Studio →
  Hathor → Simulation → Simulation Worker (current)
- **Workspace** `<section data-hathor-simulation-worker-workspace>`:
  - `<h1>` (WorkspaceHeading) "Hathor Simulation Worker Workspace"
  - Summary `<p data-hathor-simulation-worker-summary>`
  - **Capability Summary** (`data-hathor-simulation-worker-capability-summary`,
    `<h2>`)
  - **Simulation Physics Lane** (`data-hathor-simulation-worker-physics-lane`,
    `<h2>`) → `<StudioHathorSimulationPhysicsWorkspace />`
  - **Simulation State Persistence Lane**
    (`data-hathor-simulation-worker-state-persistence-lane`, `<h2>`) →
    `<StudioHathorSimulationStatePersistenceWorkspace />`
- **Route Map panel** (`data-hathor-simulation-worker-route-map`): `<h2>` "Hathor
  Simulation cluster — IA contract" — renders
  `STUDIO_HATHOR_SIMULATION_WORKER_ROUTE_MAP` split by role: one
  `parent-aggregator` (`/studio/hathor/simulation`), one `self`
  (`/studio/hathor/simulation-worker`), and 5 `peer-lane` entries (7 total)
- **Quick-action lane**: five `Link.quickAction` anchors (see Entry points)

## States

This page owns no fetch; each embedded lane carries its own
loading / unauthorized / error / ready / result states:

- [ ] **Simulation Physics Lane** — delegated to the physics workspace
- [ ] **Simulation State Persistence Lane** — delegated to the
      state-persistence workspace

## Interactions

### Embedded lanes

- [ ] **Simulation Physics Lane**
- [ ] **Simulation State Persistence Lane**

### Route Map panel

- [ ] **7 IA-contract entries** — verify match with
      `STUDIO_HATHOR_SIMULATION_WORKER_ROUTE_MAP` (parent-aggregator / self /
      5 peer-lanes), each rendered with its `data-role`

### Quick-action lane

- [ ] **"Back to Hathor Simulation aggregator"** (→ `/studio/hathor/simulation`)
- [ ] **"Open Hathor Simulation Physics workspace"** (→
      `/studio/hathor/simulation-physics`)
- [ ] **"Open Hathor Simulation State Persistence workspace"** (→
      `/studio/hathor/simulation-state-persistence`)
- [ ] **"Open Hathor Scenario Generation workspace"** (→
      `/studio/hathor/scenario-generation`)
- [ ] **"Back to Studio workspace index"** (→ `/studio`)

## Data & contracts

- **Reads / Writes**: none at the aggregator level; embedded lanes own their
  `/v1/admin/hathor/*` fetches
- **Realtime**: none
- **Caching**: embedded client fetches use `cache: 'no-store'` +
  `buildBffAuthHeaders`
- **Auth/role check**: each embedded lane is admin-scoped fail-closed; route is
  behind the signed-in + studio proxy gate

## Cross-references

- Parent: [`../../studio-overview.md`](../../studio-overview.md)
- Shell:
  [`../../../shell/04-auth-session.md`](../../../shell/04-auth-session.md)
- Sibling lanes:
  [`./studio-hathor-simulation.md`](./studio-hathor-simulation.md)
  (parent aggregator),
  [`./studio-hathor-simulation-physics.md`](./studio-hathor-simulation-physics.md),
  [`./studio-hathor-simulation-state-persistence.md`](./studio-hathor-simulation-state-persistence.md)
- Component sources:
  - `apps/oshun/web/src/components/studio/StudioHathorSimulationWorkerWorkspace.tsx`
  - `apps/oshun/web/src/components/studio/StudioHathorSimulationWorkerRouteMap.ts`
  - `apps/oshun/web/src/components/studio/StudioHathorSimulationPhysicsWorkspace.tsx`
  - `apps/oshun/web/src/components/studio/StudioHathorSimulationStatePersistenceWorkspace.tsx`

## Open questions / known gaps

- [ ] Hathor is `unconfirmed-v1` per `WALKTHROUGH/matrix/routes.csv`. Confirm
      whether the dedicated `/studio/hathor/*` admin lane consoles ship in V1.
- [ ] The route map declares a 7-node sibling cluster (simulation, -worker,
      -physics, -state-persistence, economy/politics/culture simulation); confirm
      the cluster IA is stable and the peer routes all ship together.
