Context. surface customer · domain v6-steward · route /v6 · auth signed-in · source apps/oshun/web/src/app/v6/page.tsx
Last walked. 2026-06-03 automated runtime probe (Playwright headless) — prod build + mock BFF; render, HTTP 200, server-rendered <h1>, 0 page errors verified. Evidence: WALKTHROUGH/results/walkthrough-runtime-probe-2026-06-03.md
Purpose#
Browser companion for the V6 Egbe Steward App: an asynchronous-stewardship
console for the V6 agent-companion experience. It surfaces the Chronicle digest,
remote objectives, squad comms, and Crossroads counsel for a steward's agents.
Out of the V1 feature map — this is a V6-arc surface that ships in the
apps/oshun/web build (documented here for an exhaustive route inventory).
Entry points#
- Direct URL / bookmark —
/v6(signed-in; not inPUBLIC_PATHS) - Shell breadcrumb —
Explore › Egbe Steward App(the page mountsShellLayout active="explore"with explicit breadcrumbs)
Layout regions#
- Header: shell header + page header (
data-v6-steward-browser) with kicker "V6 steward",model.title,model.summary, and an Open Homestead secondary button - Status rail (
data-testid="v6-steward-status-strip") — four metrics: Steward, Agents, Open (pending objectives), Crossroads (open count) - Sync band (
data-testid="v6-steward-action-status") — live action-status line (e.g. "Ready for asynchronous stewardship.") - Tablist (
role="tablist",aria-label="Steward App sections") — four tabs: Chronicle, Objectives, Squad, Crossroads (icons via lucide-react) - Main — the selected section panel
States#
- Chronicle (default) —
data-testid="v6-steward-section-chronicle": latest chronicle title, generation-mode digest line, ranked beats list - Objectives — input + 48/64/88 priority segments + Issue Objective; list of objectives (status / autonomy mode / target / verb / priority)
- Squad — message textarea + intent segments (status-check / objective-clarification / permission-response) + Send Squad Comms; message list (intent / delivery state / body)
- Crossroads (populated) — open-choice prompt + stakes, option buttons, counsel textarea, Submit Counsel
- Crossroads (empty) — "No Crossroads records need review." when
getOpenOrLatestCrossroads(model)returns null - Loading / Error / Offline — N/A: the surface is client-rendered from
buildV6StewardAppModel()(an in-bundle deterministic model); there is no network read on this page, so no loading/error/offline read states - Gated — signed-in (shell); no per-role gate beyond the session
- Standalone PWA — renders within the shell
Interactions#
- Open Homestead (button,
data-testid="v6-steward-open-homestead") — sets the action-status line to "Opening homestead." (no navigation wired — status-only) - Section tabs (4 buttons,
role="tab",data-testid="v6-steward-tab-<id>") — switchselectedSection;aria-selectedtracks the active tab - Objective label (input,
data-testid="v6-steward-objective-input") - Priority segments (3 buttons 48/64/88,
aria-pressed) — setobjectivePriority - Issue Objective (button,
data-testid="v6-steward-issue-objective") —createV6ObjectiveDraft(...), prepends to the local objectives list, sets status "Objective issued to." (local state only — no BFF write) - Squad message (textarea), intent segments (3 buttons), Send
Squad Comms (button) — append a local
V6SquadCommsMessage; status "Squad comms sent to." (local only) - Crossroads option buttons (
aria-pressed), Counsel (textarea), Submit Counsel (button) — set status "Crossroads counsel submitted:
Data & contracts#
- Reads: in-bundle model
buildV6StewardAppModel()fromapps/oshun/mobile/v6/stewardAppModel(shared with the V6 mobile Steward App); no BFF/network read - Writes: None on the wire. All actions mutate local React state and the action-status line; the V6 BFF wiring is a future-arc concern
- Realtime: None.
- Caching: client component; SSR shell only
- Auth/role check: session (signed-in); no V1 BFF policy applies (out-of-v1)
- Contracts:
V6Objective,V6SquadCommsMessage,V6StewardSectionId,V6_STEWARD_SECTION_IDS,createV6ObjectiveDraft,getOpenOrLatestCrossroads,getPrimaryV6StewardAgent
Cross-references#
- Sibling out-of-v1 surfaces:
v2.md,v3-landing.md - V6 studio counterpart:
../../studio/future/egbe-studio.md - Spec:
V6/V6_features.md,V6/V6_ARCHITECTURE.md - Component sources:
apps/oshun/web/src/app/v6/V6StewardWebApp.tsx,apps/oshun/mobile/v6/stewardAppModel.ts
Open questions / known gaps#
- Every action is local-state only (
ACTION_AT_ISOis a fixed constant); confirm the V6 BFF endpoints that will back Issue Objective / Send Squad Comms / Submit Counsel before this surface is promoted past V6 preview. - Open Homestead sets a status line but does not navigate — confirm the intended homestead deep-link target.