SessionNode: in_session / session_open_ts streams (deferred by design) #154

Closed
opened 2026-06-29 11:16:17 +02:00 by Brummel · 2 comments
Owner

The C15 contract Guarantee lists three session-context streams — bars_since_open: i64, in_session: bool, session_open_ts: timestamp — but Session (crates/aura-std/src/session.rs) deliberately ships only bars_since_open. The node's own doc pins the decision: "there is no separate in-session bool gate, bars_since_open alone is the contract" — a downstream EqConst(==N) gate subsumes in_session (pre-open instants give <= 0, never matching), and session_open_ts has no consumer.

This issue is the forward-queue home for the two unbuilt streams. They are deferred by design (default-simple; no current consumer), not a defect. Build them only when a real consumer needs them — e.g. a strategy that must branch on an explicit in_session flag or read the absolute session-open timestamp.

context: surfaced by the 2026-06-29 design-goal audit (C15 realization-note added to the ledger this run).

The C15 contract Guarantee lists three session-context streams — `bars_since_open: i64`, `in_session: bool`, `session_open_ts: timestamp` — but `Session` (`crates/aura-std/src/session.rs`) deliberately ships only `bars_since_open`. The node's own doc pins the decision: *"there is no separate in-session bool gate, `bars_since_open` alone is the contract"* — a downstream `EqConst(==N)` gate subsumes `in_session` (pre-open instants give `<= 0`, never matching), and `session_open_ts` has no consumer. This issue is the forward-queue home for the two unbuilt streams. They are **deferred by design** (default-simple; no current consumer), not a defect. Build them only when a real consumer needs them — e.g. a strategy that must branch on an explicit `in_session` flag or read the absolute session-open timestamp. context: surfaced by the 2026-06-29 design-goal audit (C15 realization-note added to the ledger this run).
Brummel added the idea label 2026-06-29 11:16:17 +02:00
Collaborator

Path correction: the node this issue references has moved. crates/aura-std/src/session.rs no longer exists — commit b39fd63 ('refactor: split the aura-std roster into C28 layer crates', closes #288, 2026-07-19) relocated Session to crates/aura-market/src/session.rs as part of the C28 Stratification milestone (aura-std split into aura-std/aura-market/aura-strategy/aura-backtest/aura-vocabulary). The design ledger's C15 realization-note (docs/design/INDEX.md, '#154' paragraph) carries the same stale path and should be corrected alongside this issue.

The substance of the issue is unchanged: crates/aura-market/src/session.rs still emits only bars_since_open: i64 (see the two FieldSpec output declarations in that file); in_session and session_open_ts remain unbuilt, deferred until a consumer needs them. This is independent of the #295 shell-boundary extraction (CLI -> aura-runner/aura-measurement/aura-backtest) and the #300 document-first direction (CLI flag vocabulary -> document vocabulary) — neither touches SessionNode's output-stream contract. No action needed beyond the path update; the deferral stands.

Path correction: the node this issue references has moved. `crates/aura-std/src/session.rs` no longer exists — commit b39fd63 ('refactor: split the aura-std roster into C28 layer crates', closes #288, 2026-07-19) relocated `Session` to `crates/aura-market/src/session.rs` as part of the C28 Stratification milestone (aura-std split into aura-std/aura-market/aura-strategy/aura-backtest/aura-vocabulary). The design ledger's C15 realization-note (docs/design/INDEX.md, '#154' paragraph) carries the same stale path and should be corrected alongside this issue. The substance of the issue is unchanged: `crates/aura-market/src/session.rs` still emits only `bars_since_open: i64` (see the two `FieldSpec` output declarations in that file); `in_session` and `session_open_ts` remain unbuilt, deferred until a consumer needs them. This is independent of the #295 shell-boundary extraction (CLI -> aura-runner/aura-measurement/aura-backtest) and the #300 document-first direction (CLI flag vocabulary -> document vocabulary) — neither touches SessionNode's output-stream contract. No action needed beyond the path update; the deferral stands.
Collaborator

Closed as ratified drop (owner decision, 2026-07-21, idea-cull round): the deferral is already recorded in the ledger — C15 names the two unbuilt session streams as build-on-consumer-demand. A real consumer will announce the need itself; this issue carries nothing the ledger does not.

Closed as ratified drop (owner decision, 2026-07-21, idea-cull round): the deferral is already recorded in the ledger — C15 names the two unbuilt session streams as build-on-consumer-demand. A real consumer will announce the need itself; this issue carries nothing the ledger does not.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Brummel/Aura#154