Date: 2026-07-22
Product contract#
The implementation follows the settled V1 review §4.1/§5.1 order exactly:
- wake;
- today's practice (Tara's canonical one-breath micro-act);
- Veritas morning briefing audio;
- today's Case Files opening;
- Daily Wonder;
- Nyx sky/weather.
The Thread is the morning-brief daypart program. It is neither a registered
channel nor a second timeline. Its structural wake slot claims no channel
authority; every other ready slot remains bound to the owning channel's real
content id, observation instant, and contextual action. Missing editions are
rendered as an explicit unavailable state and are never replaced with sample or
synthetic content.
Implementation#
libs/v10/rail-kernel/src/daypart-programming.tsowns the generic ordered daypart-program contract. It validates exact slot definitions, source-channel authority, explicit-offset instants, future-content exclusion, deep links, audio sources, and micro-act identities.libs/v10/rail-threadowns the fixed morning definition and composition over the existing Tara, Veritas Live, Case Files, Wonder & Recall, and Nyx packages../programis the browser-safe canonical parser; the root composer retains the server-side channel-source dependencies.GET /v1/rail/threadis authenticated and private/no-store. It reads the authenticated user's persisted daypart schedule, applies the same V1 calendar clamp/fallback policy as daypart resolution, returns 204 outside the effective morning, and delegates edition assembly to a deploy-owned authority. Missing configuration returns 503; rejected or invalid authority output returns 502.- The configured authority must echo the exact user, timezone, local date, and
observation instant in
v10.rail-thread-authority.1. The BFF reparses the canonical program and rejects cross-subject, cross-date, future, reordered, substituted, or malformed output. Production configuration is the pairedOSHUN_V10_RAIL_THREAD_URLandOSHUN_V10_RAIL_THREAD_SOURCE_TOKEN. - The production V10 client reparses the program again. It loads once per effective morning date, shows honest checking/failure states, hides the Thread under discretion protection, and removes actions in global text-only mode.
- The cardless six-step surface sits before Presence. Deep-link buttons exist only when the V1 shell/native navigation bridge is mounted. “Listen” is an explicit user action that offers, selects, and starts Veritas through the one Rail audio arbiter; nothing autoplays on load.
Invariants and verification#
The Thread package rejects non-morning programs, reordered slots, cross-date editions, future material, source substitution, invalid proof anchors, and noncanonical Nyx/Case/Wonder inputs. Phase A additionally locks that it remains one ordered composition with no timeline, autoplay, elevation, streak, debt, or completion-funnel state.
Automated coverage includes kernel and Thread unit/type/lint targets, BFF source and route contract tests plus a focused BFF TypeScript configuration, web client, connected-workspace, audio-action, component and full-suite tests, Phase A cross-Rail invariants, frozen-lock installation, and Axe-enabled Playwright on desktop and mobile Chromium. The Playwright flow verifies exact visual order, no navigation or audio before a press, real shell deep-link dispatch, explicit Veritas lane playback, and no horizontal overflow.
Final verification passed with 172 kernel tests, 5 Thread tests, 33 Phase A tests, 7 focused BFF contract tests, 178 web tests, and 2 desktop/mobile Playwright scenarios. All affected typechecks and graph-aware lint targets pass. The production BFF bundle also passed its health-and-clean-shutdown smoke check against a disposable PostgreSQL database after applying every checked-in migration, with the repository's local Redis service.