End-to-end multi-workspace flows for the admin app. Per-view files verify each
workspace individually; journeys catch the bugs that hide between workspaces —
broken handoffs, scope-gating gaps, audit trails that miss a step.
Same shape as the V1 PWA's WALKTHROUGH/journeys/: # Journey: heading, no
frontmatter, then Personas → Pre-conditions → Steps → Post-conditions → Failure
modes → E2E coverage when automation exists → Per-view files touched →
Cross-references → Open questions.
Customer (or anon) → /handoff → out-of-band token mint → admin session cookie set → land at returnTo. Also covers expired-session re-handoff and rate-limit edge.
Recorded as the journeys were drafted. Several depend on per-view sweep results
— refer to ../matrix/coverage.md for the consolidated
cross-cutting findings.
The handoff back-channel is opaque. The privileged-handoff journey
describes the visible UI but the token-mint step is out-of-band — flagged in
open questions for every admin journey that depends on a fresh session.
Audit-log writes are the universal stamp. Every admin journey ends with
verifying entries in apps/oshun/bff/src/routes/admin-audit-log.ts. Event
taxonomies (incident.*, review.*, trust-safety.*, persona.*,
isis.*) are documented per journey.
The dashboard is composed from workspace summaries. Operators landing at
/ see WorkspaceSummaryCards for every workspace they can access. The
journey-relevant view is each individual workspace, but the dashboard's
loadWorkspaceOverview is the first read the operator makes.
Cross-workspace handoffs use listOshunAdminWorkspaceRelationships() —
see WorkspaceEntryPoint's "Handoffs from here" block. Journeys reference
these relationships explicitly.
Lilith workspace (backendStatus: 'backend-pending') blocks any journey
that needs Lilith-room observability — flagged in
persona-release-cycle.md open questions.
The V1 PWA has parallel operator surfaces./operator/admin in the V1
PWA mirrors /inbox here. /operator/admin/isis/provenance is the
provenance inspector that this admin app's Isis flows produce bundles for.
Cross-links go in both directions.
Rate limit is per-replica in-memory. A multi-replica deploy will limit
per-replica, not globally. Flagged in privileged-handoff.md failure modes
and shell/02-routing-layouts.md open questions.