Date: 2026-07-22
Source-authority audit#
| Concern | Authoritative source | Rail decision |
|---|---|---|
| Breath pace | @tara/features getModalityTaxonomyEntry('breathwork-coherent') |
Read the live five-second inhale/five-second exhale cadence at runtime. The adapter has no copied pace table and fails closed if Tara removes the cadence. |
| Safe exit and accessibility | The same Tara modality entry's accessibilityFallback and contraindicationNotes |
Carry both into the tile. The act is voluntary and the user can abandon it through the existing Rail host. |
| Hour turns | IANA local time supplied to taraHourlyBellDripsBetween |
Emit one tara.hourly-bell content event at each local top of hour, including fractional UTC offsets and DST transitions. The 48-hour read window is bounded. |
| Delivery authority | V10 channel contract and Rail policy | The bell is an ordinary strict drip with no priority or interrupt field. It declares no live moment, elevation, autoplay, sound, visual, or haptic delivery instruction. |
The Oshun BFF Tara adapter was also inspected. It owns recommended-session, continuation, progress, favourite, and audio reads, but it does not own a canonical short breath cadence or hour-boundary stream. Using it here would add an indirection without adding authority. Tara's domain taxonomy is therefore the correct source for the one-breath act.
Adapter#
@oshun/v10-rail-channel-tara provides:
- a strict wellness manifest for
v1.tara, with one spectator face, onetara.hourly-belldrip type, onetara-one-breathmicro-act, and zero live moments; - a two-second-glance tile whose pace, accessibility fallback, and safety note are derived from Tara's coherent-breath entry;
- a real-time executor which paces exactly one canonical ten-second cycle. Its twelve-second host budget leaves transport overhead without extending the breath itself;
- a local-hour drip projector driven by IANA time zones. Its minute scan is bounded to 48 hours and correctly handles quarter-/half-hour offsets as well as offset changes;
- strict input and completion schemas with no score, streak, reward, penalty, or attendance state.
The frontend treatment follows a single quiet breath line rather than a meditation dashboard. The production directory exposes Tara using the existing cardless settings list; no new autoplay, ornamental motion, or competing chrome was introduced.
Invariants and production registration#
Tara is registered in the shipped V10 web channel directory and in Phase A's
post-pilot invariant set. It is intentionally not reclassified as a Phase A
pilot. The shared suite proves the manifest and every declared drip type pass
no-absence-punishment, every face stays motionless below loudness 3, and Tara
has no live-moment route into the elevation budget.
The hour event contains content facts only (boundaryAt, bellKind, IANA time
zone, source, and optional-participation semantics). Rendering, batching,
haptics, and sound remain Rail-owned.
Verification#
- Tara channel typecheck and lint: pass.
- Tara channel Vitest: 12/12 pass, including real Rail-host schema binding, exact pacing, local fractional-offset scheduling, bounded ranges, and strict failure cases.
- Tara source taxonomy Vitest: 5/5 pass; focused source lint passes.
- Phase A typecheck and lint: pass; invariant Vitest 30/30 passes.
- V10 web typecheck and lint: pass; Vitest 166/166 passes.
- Frozen offline filtered lockfile validation: pass.
- Production-directory Playwright: 4/4 across desktop and mobile Chromium, including the repository's automatic Axe accessibility scan and horizontal overflow assertion.
Thread dependency#
This adapter supplies the real Tara channel authority needed by the composed morning Thread. X-3 remains open until Arete is adapted and the V1 review's ritual ordering is reconciled with the Rail-specific sequence.