# V1 Nisaba/Metis folding into Wonder & Recall

**Audit date:** 2026-07-17

**Decision:** Nisaba and Metis keep their complete V1 rooms, but they do not
publish separate Rail channels. Their private, ambient return signals are read
through the canonical V1 domain adapters and projected inside the player face of
`v9.wonder-recall`.

## Audited source map

| V1 surface                 | Existing source and destination                                                                                                                                                                                                                                                                                                  | Folded Rail seam                                                                                                                                                                                                                   |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Metis web schoolroom       | [`apps/oshun/web/src/app/metis/page.tsx`](../apps/oshun/web/src/app/metis/page.tsx) renders `MetisSchoolroom` from the authenticated `/v1/metis/room` payload.                                                                                                                                                                   | [`@oshun/domain-metis`](../libs/oshun/domain-metis/src/adapter.ts) exposes the compatible `oshun.domain.metis.adapter@1.x` contract, private `getContinueItems({ userId })`, and canonical launch resolution.                      |
| Nisaba web reading desk    | [`apps/oshun/web/src/app/nisaba/page.tsx`](../apps/oshun/web/src/app/nisaba/page.tsx) renders `NisabaRoom` from the authenticated `/v1/nisaba/room` payload.                                                                                                                                                                     | [`@oshun/domain-nisaba`](../libs/oshun/domain-nisaba/src/adapter.ts) exposes the compatible `oshun.domain.nisaba.adapter@1.x` contract, private `getContinueItems({ userId })`, and canonical launch resolution.                   |
| Metis mobile room content  | [`mobileHomeMetisModels.ts`](../apps/oshun/mobile/src/navigation/mobileHomeMetisModels.ts) maps the member's `/v1/metis/continue` response and retains an offline room fallback; [`app/domain/[domainId].tsx`](../apps/oshun/mobile/app/domain/[domainId].tsx) renders the continuation destination.                             | The Rail does not import that render model or its fallback. A server composition root supplies the canonical Metis shell adapter to the Wonder & Recall folded-room port, so only real continuation items become ambient presence. |
| Nisaba mobile room content | [`mobileHomeNisabaModels.ts`](../apps/oshun/mobile/src/navigation/mobileHomeNisabaModels.ts) uses the canonical Nisaba card and launch builders; [`app/domain/[domainId].tsx`](../apps/oshun/mobile/app/domain/[domainId].tsx) composes daily passage, reading queue, comparison, lexicon, materials, and notebook destinations. | The Rail reuses the same canonical adapter contract and launch resolver. It does not duplicate the mobile study workspace or its offline cache.                                                                                    |

## Ownership boundary

[`folded-room-presence.ts`](../libs/v10/rail-channel-wonder-recall/src/folded-room-presence.ts)
is the only ambient folding boundary:

- it calls both adapters with the same configured learner id and observation
  time;
- it selects at most one latest, non-future continuation from each room with a
  deterministic item-id tie break;
- it validates the V1 adapter contract and canonical `oshun://` plus
  `https://oshun.app/d/...` launch pair;
- it emits exact V1 deep links whose context is bound to `v9.wonder-recall`, the
  source room, source item, and adapter contract;
- it isolates source outages and never replaces a failed room with invented
  progress or a fixture;
- every emitted room presence carries the one channel id `v9.wonder-recall`. No
  `v1.metis` or `v1.nisaba` manifest exists.

The player tile keeps FSRS due cards and fading stars authoritative. Folded room
returns are an additional compact, private return trail and remain absent from
the communal Daily Wonder spectator payload. The full Metis schoolroom, Nisaba
reading desk, mobile study flows, writes, assessments, tutoring, annotations,
and offline behavior remain owned by V1 and are reached only by the validated
deep links.
