Context. surface studio · domain hathor · route /studio/hathor/event-publisher · auth signed-in + studio entitlement · source apps/oshun/web/src/app/studio/hathor/event-publisher/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 surface that composes Hathor's narrative-and-world publishing lanes:
a Capability Summary plus the embedded Narrative API and World API workspaces.
The page itself issues no /v1 fetch — each embedded lane owns its own
admin-scoped, fail-closed backend wiring.
Entry points#
- Breadcrumb — Studio › Hathor Narrative API › Event Publisher
- Quick-action links to narrative-api, world-api, narrative-export, world-configuration, and Back to Studio
- Direct URL / bookmark — yes;
alternates.canonicalset - Studio overview — see
../../studio-overview.md
Layout regions#
page.tsx renders inside <ShellLayout active="studio">:
- Breadcrumb panel (
data-hathor-event-publisher-breadcrumbs): nav ol with Studio → Hathor Narrative API → Event Publisher (current) - Workspace
<section data-hathor-event-publisher-workspace>:<h1>(WorkspaceHeading) "Hathor Event Publisher Workspace"- Summary
<p data-hathor-event-publisher-summary> - Capability Summary (
data-hathor-event-publisher-capability-summary,<h2>): 4data-hathor-event-publisher-capabilitycards — publisher-orchestration, narrative-payload-lane, world-state-delivery-lane, security-and-parity - Narrative API Lane (
data-hathor-event-publisher-narrative-api-lane,<h2>) → embeds<StudioHathorNarrativeApiWorkspace /> - World API Lane (
data-hathor-event-publisher-world-api-lane,<h2>) → embeds<StudioHathorWorldApiWorkspace />
- Route Map panel (
data-hathor-event-publisher-route-map):<h2>"Route Map" + 6 entries fromSTUDIO_HATHOR_EVENT_PUBLISHER_ROUTE_MAP - Quick-action lane: five
Link.quickActionanchors (see Entry points)
States#
This page owns no fetch; each embedded lane carries its own loading / unauthorized / error / ready / result states:
- Narrative API Lane — delegated to
./studio-hathor-narrative-api.md(itself an aggregator of export / structure / theory lanes) - World API Lane — delegated to the World API workspace
Interactions#
Embedded lanes#
- Narrative API Lane —
<StudioHathorNarrativeApiWorkspace /> - World API Lane —
<StudioHathorWorldApiWorkspace />
Route Map panel#
- 6 route entries — verify match with
STUDIO_HATHOR_EVENT_PUBLISHER_ROUTE_MAP
Quick-action lane#
- "Open Hathor Narrative API workspace" (→
/studio/hathor/narrative-api) - "Open Hathor World API workspace" (→
/studio/hathor/world-api) - "Open Hathor Narrative Export workspace" (→
/studio/hathor/narrative-export) - "Open Hathor World Configuration workspace" (→
/studio/hathor/world-configuration) - "Back to Studio workspace index" (→
/studio)
Data & contracts#
- Reads / Writes: none at the aggregator level; the embedded Narrative API
and World API lanes own their
/v1/admin/hathor/*fetches - Realtime: none
- Caching: aggregator renders embedded client workspaces; embedded fetches
use
cache: 'no-store'+buildBffAuthHeaders - Auth/role check: each embedded lane is admin-scoped fail-closed; the route is behind the signed-in + studio proxy gate
Cross-references#
- Parent:
../../studio-overview.md - Shell:
../../../shell/04-auth-session.md - Embedded / sibling lanes:
./studio-hathor-narrative-api.md,./studio-hathor-narrative-export.md - Component sources:
apps/oshun/web/src/components/studio/StudioHathorEventPublisherWorkspace.tsxapps/oshun/web/src/components/studio/StudioHathorEventPublisherRouteMap.tsapps/oshun/web/src/components/studio/StudioHathorNarrativeApiWorkspace.tsxapps/oshun/web/src/components/studio/StudioHathorWorldApiWorkspace.tsx
Open questions / known gaps#
- Hathor is
unconfirmed-v1perWALKTHROUGH/matrix/routes.csv. Confirm whether the dedicated/studio/hathor/*admin lane consoles ship in V1. - The aggregator composes two child workspaces (one of which, Narrative API, is itself an aggregator), so the lane tree nests two deep — confirm this is intended IA rather than an accidental double-wrap.
- Route Map advertises
topics/,streams/,deliveries/,parity/, andgovernance/sub-routes with nopage.tsxyet.