Context. surface studio · domain hathor · route /studio/hathor/world-configuration · auth signed-in + studio entitlement · source apps/oshun/web/src/app/studio/hathor/world-configuration/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 (dense-operator workspace; not a lane console)
Purpose#
Dense operator workspace for governing canonical world-configuration records —
continuity guardrails, governance gates, and publication readiness for
narrative-scale production. Unlike the sibling Hathor admin lanes, this is the
older dense-operator surface: it hydrates records from the BFF on mount (falling
back to seeded INITIAL_WORLD_CONFIGURATION_RECORDS) and exposes list/detail,
wizard, policy, collaboration, observability, parity, and production-signoff
panels in one client component.
Entry points#
- Direct URL / bookmark —
/studio/hathor/world-configuration;alternates.canonicalis set. - Quick-action from siblings — the Database and Event Handlers pages link here; this page links out to a set of related Hathor world lanes and downstream Bellona consumers.
- Studio overview — see
../../studio-overview.md.
Layout regions#
page.tsx renders inside <ShellLayout active="studio">:
- Workspace (
StudioHathorWorldConfigurationWorkspace,data-hathor-world-configuration-workspace,aria-label="Hathor world configuration workspace"):<h1>WorkspaceHeading— "Hathor World Configuration Workspace" + summary<p>.- Navigation Contract (
data-hathor-world-configuration-navigation-contract,<h2>): rendersSTUDIO_HATHOR_WORLD_CONFIGURATION_ROUTE_MAP(5 entries). - Execution Milestones (
data-hathor-world-configuration-milestones). - Policy Controls (
data-hathor-world-configuration-policy-controls): role / tier / justification selectors gating writes. - List/detail (
data-hathor-world-configuration-list-view/-detail-view): search, scope/status filters, sort, select + bulk actions, saved views; detail timeline, diagnostics, related entities. - Wizard (
data-hathor-world-configuration-wizard): create/edit form with templates and a policy tier. - Command palette (
data-hathor-world-configuration-command-palette), stream (-stream-*), collaboration (-collab-*), audit/change history (-audit-*/-change-history-*), telemetry (-telemetry-*), observability (-observability-*), import/export (-import-export-*), API parity (-api-parity-*), docs (-docs-*), and production readiness/signoff (-production-*) panels.
- Route Map panel (
<section data-hathor-world-configuration-route-map>,<h2>Route Map</h2>): 5 entries fromSTUDIO_HATHOR_WORLD_CONFIGURATION_ROUTE_MAP. - Related Hathor world lanes panel
(
<section data-hathor-world-configuration-related-hathor>,<h2>): quick links to World API, World Version Branching, Geography Modeling, Location Modeling, Culture Modeling, Faction Modeling. - Downstream engine integration panel
(
<section data-hathor-world-configuration-downstream>,<h2>): labelled cross-domain links to Bellona C++ SDK and Lore-to-Engine Compilation (downstream consumers). - Back-to-Studio panel (
className="quickAction"Link →/studio).
States#
- Records hydration — on mount, GET the records endpoint; if it returns a
non-empty array, adopt it, otherwise keep
INITIAL_WORLD_CONFIGURATION_RECORDS(empty / 401 / offline / failure all fall back). - List populated / filtered — scope/status filters + search +
data-hathor-world-configuration-list-rowrows. - Policy-gated — viewer role and restricted tier without justification
block reads/writes with reason strings
(
data-hathor-world-configuration-policy-*-empty-state). - Wizard open (create/edit) — gated by
wizardWritepermission. - Parity / observability — parity report
(
data-hathor-world-configuration-api-parity-overall) and refreshable observability metrics; production gate requires checklist + parity + observability.
Interactions#
- Policy —
data-hathor-world-configuration-policy-role/-policy-tier/-policy-justificationset the write-permission context. - List —
data-hathor-world-configuration-search,-scope-filter,-status-filter,-sort-key,-sort-direction,-select-all-visible,-row-toggle-select, and bulk actions (-bulk-set-stable/-bulk-set-blocked/-bulk-assign-world-ops); saved views (-saved-view-save/-saved-view-apply). - Wizard —
-wizard-open-create/-wizard-open-edit, the form fields,-wizard-apply-template,-wizard-save,-wizard-cancel. - Import/export —
-import-export-export/-import-export-apply. - API parity —
-api-parity-run; observability —-observability-refresh; production signoff —-production-signoff-approve/-production-signoff-revoke. - Route Map entries — verify against
STUDIO_HATHOR_WORLD_CONFIGURATION_ROUTE_MAP(5 entries). - Related / downstream links — the related-Hathor and downstream-Bellona quick links.
Data & contracts#
- Reads:
GET /v1/studio/hathor/world-configuration/recordson mount ({ records }; fail-soft fallback to seeded records). - Writes:
POST /v1/studio/hathor/world-configuration/records(best-effort,keepalive, fire-and-forget — a failed write never blocks the wizard); all other mutations (filters, wizard, collaboration, telemetry, snapshots) are client-side state. - Realtime: a client-side stream monitor (pulse/reconnect counters); no live channel.
- Caching: client fetch on mount,
cache: 'no-store',buildBffAuthHeaders(); shell-state preferences persist viauseStudioWorkspacePersistence. - Auth: route is behind the signed-in + studio proxy gate; record reads are attempted with BFF auth headers.
Cross-references#
- Parent:
../../studio-overview.md - Component sources:
apps/oshun/web/src/components/studio/StudioHathorWorldConfigurationWorkspace.tsx(dense-operator workspace; the only Hathor surface still on this template)apps/oshun/web/src/components/studio/StudioHathorWorldConfigurationRouteMap.ts
- Embedded by:
./studio-hathor-database.md - Related Hathor world lanes:
./studio-hathor-world-api.md,./studio-hathor-world-version-branching.md,./studio-hathor-geography-modeling.md,./studio-hathor-location-modeling.md - Downstream Bellona consumers:
/studio/bellona/cpp-sdk,/studio/bellona/lore-to-engine-compilation
Open questions / known gaps#
- This is the last Hathor surface on the legacy dense-operator template (fixtures + command palette + wizard + telemetry + parity panels); confirm whether it should be reduced to a single real-backed lane like its siblings.
- Record writes are best-effort fire-and-forget; confirm whether the BFF records endpoint should become an authoritative, awaited persistence path.
- Hathor is
unconfirmed-v1perWALKTHROUGH/matrix/routes.csv; confirm whether the dedicated/studio/hathor/*surfaces ship V1 or are internal-only.