V1 Web PWA · Surface walkthrough

Studio Hathor · Domain Models

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

walked
8sections3 minread

On this page

Context. surface studio · domain hathor · route /studio/hathor/domain-models · auth signed-in + studio entitlement · source apps/oshun/web/src/app/studio/hathor/domain-models/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; body re-derived 2026-06-03 from current source (lane-console architecture)

Purpose#

Aggregator that unifies the Hathor domain-model lane consoles — character, location, faction, and timeline modeling — under one route, fronted by a Capability Summary. It owns no /v1 fetch of its own; each embedded lane runs its own admin computation.

Entry points#

  • Quick-action link from /studio/hathor/character-modeling — "Open Hathor Domain Models workspace" (verify against that page's source)
  • Breadcrumb from /studio/hathor/character-modeling
  • Direct URL / bookmark — yes; alternates.canonical set to /studio/hathor/domain-models
  • Studio overview — see ../../studio-overview.md

Layout regions#

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

  • Breadcrumb panel (data-hathor-domain-models-breadcrumbs) — <nav> ol: Studio (link) / Hathor Character Modeling (link) / Domain Models (current)
  • Workspace <StudioHathorDomainModelsWorkspace /> (data-hathor-domain-models-workspace):
    • WorkspaceHeading <h1> — "Hathor Domain Models Workspace"
    • Summary <p data-hathor-domain-models-summary>
    • Capability Summary panel (data-hathor-domain-models-capability-summary, <h2> "Capability Summary") listing HATHOR_DOMAIN_MODELS_CAPABILITIES (data-hathor-domain-models-capability)
    • Four embedded lanes, each a <section> with an <h2> and a WorkspaceSection:
      • Character Modeling Lane (data-hathor-domain-models-character-lane) → <StudioHathorCharacterModelingWorkspace />
      • Location Modeling Lane (data-hathor-domain-models-location-lane) → <StudioHathorLocationModelingWorkspace />
      • Faction Modeling Lane (data-hathor-domain-models-faction-lane) → <StudioHathorFactionModelingWorkspace />
      • Timeline Modeling Lane (data-hathor-domain-models-timeline-lane) → <StudioHathorTimelineModelingWorkspace />
  • Route Map panel data-hathor-domain-models-route-map<h2> "Route Map" listing the 6 STUDIO_HATHOR_DOMAIN_MODELS_ROUTE_MAP entries
  • Quick-action lane — five Link.quickAction anchors: Character Modeling, Location Modeling, Faction Modeling, Timeline Modeling, Back to Studio workspace index

States#

States are owned by each embedded lane; the aggregator itself has no fetch.

Interactions#

Embedded lanes#

  • Each lane's own form/submit — walk per the per-lane doc

Route Map panel#

  • Route entries — verify match with STUDIO_HATHOR_DOMAIN_MODELS_ROUTE_MAP (6 entries)

Quick-action lane#

  • "Open Hathor Character Modeling workspace"/studio/hathor/character-modeling
  • "Open Hathor Location Modeling workspace"/studio/hathor/location-modeling
  • "Open Hathor Faction Modeling workspace"/studio/hathor/faction-modeling
  • "Open Hathor Timeline Modeling workspace"/studio/hathor/timeline-modeling
  • "Back to Studio workspace index"/studio

Data & contracts#

  • Reads / Writes: none at the aggregator level — delegated to the four embedded lane consoles, each admin-scoped (/v1/admin/hathor/...)
  • Realtime: none
  • Caching: each embedded lane fetches its own catalog on mount, no-store
  • Auth/role check: admin-scoped per lane, fail-closed on 401/403; route gated signed-in + studio by the BFF proxy

Cross-references#

Open questions / known gaps#

  • Hathor is unconfirmed-v1 per WALKTHROUGH/matrix/routes.csv. Confirm whether the dedicated /studio/hathor/ routes ship at V1 or are internal-only.