Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 64 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -279,15 +279,74 @@ version 2: its `{{ … }}` sequences become substitution points, and its
(`ovos.utterance.speak` or `ovos.session.sync`).
## OVOS-SESSION-1 — Session Carrier Wire Shape

### 2

- §3.5 (new) — registers the user-preference fields `location`
(object), `system_unit`, `time_format`, `date_format` (strings):
the session origin's presentation preferences, defaulting per §2.1
and subject to the §3.4 wire-weight rule. The three string fields
have closed value spaces (`metric`/`imperial`, `full`/`half`,
`DMY`/`MDY`); `location` has its nested key shape fixed per §2.2.
The same section deliberately declines to register transient audio
state (`is_speaking` / `is_recording`): per-device instant state is
not session state, so such a field is not a field of `session`
(§2.3) and a consumer SHOULD NOT act on its value. OVOS-AUDIO-1 is
authoritative — the §5.1–§5.2 output-lifecycle signals and the
§5.3 `ovos.audio.is_speaking` query.
- §3.2 — the six language signals given a one-purpose-per-field
summary table and split into preference (`lang`,
`secondary_langs`, `output_lang`) vs. per-utterance observation
(`stt_lang`, `request_lang`, `detected_lang`).
- §3 preamble — per-utterance observation fields are the current
reading, not an accumulated history: a consumer MUST NOT read a
surviving value as a description of an older utterance.
- §3.1 — a remote participant that carries a session identity of its
own SHOULD send that identifier rather than `"default"` for its own
conversational traffic; participants acting on the device-local
session are unaffected and the layer-2 gate stays a MAY.
Default-session ownership cite corrected to OVOS-SESSION-2 §5.
- §3.2.3 — the ban on silently rendering in another language is now
discharged by a MUST to set `data.lang` to the language actually
rendered in (was a SHOULD, leaving the MUST NOT unenforceable).
- §3.2.5 — the wake-word-derived `request_lang` hint cites its
observable source, `ovos.listener.wakeword` (OVOS-AUDIO-IN-1
§6.5).
- §3.3 — restated as a pointer with OVOS-BRIDGE-1's consumer
constraints quoted verbatim, preserving the "after bridge
processing" precondition that the local restatement had dropped.
- §2 — a wrong-typed value is malformed and MUST be treated as
omitted (the rule §2.5 already assumed but no section stated).
- §2.1 — omission resolves in two classes: **override** fields fall
back to deployment configuration; **state-record** fields
(`active_handlers`, `converse_handlers`, `response_mode`,
`intent_context`) fall back to the empty value their owner
specification names, never to deployment configuration.
- §2.2 — wire-type vocabulary notes: integers are claimed as
`number` with the constraint in the claiming spec's value space;
array and object claims must state element type / full key shape.
- §3.4 — new case 4: an empty object on an object-valued override
field is wire-equivalent to omission (state records excluded).
- §4 — states explicitly that this specification raises OVOS-MSG-1
§4.1's propagation SHOULD to a MUST for the §3 field set, and why.
- §4.1 — default-materialization citation corrected to the
OVOS-MSG-1 §5.1–§5.3 derivations; phantom quotation dropped.
- §5 — carrier-parse failure defers to §2.5, so the
no-default-substitution guarantee is not lost.
- Editorial — propagation is cited uniformly as OVOS-MSG-1 §4.1 plus
§5.1–§5.3; the RFC 2119 key-word list completed with OPTIONAL and
RECOMMENDED plus the RFC 8174 all-capitals caveat; descriptive
residue in §3.1, §3.2.3, and §3.4 cut or labelled informative.

### 1

- The `context.session` carrier wire shape: the `session_id` and `lang`
core fields, the language field family (§3.2), the §2.1 field-registry
core fields, the language field family (§3.2), the §2.2 field-registry
mechanism by which other specifications claim OPTIONAL session fields,
and the propagation and wire-weight rules.
- §2.1 — registered fields and their owning specifications:
`converse_handlers` (OVOS-CONVERSE-1 §2.1), `fallback_handlers`
(OVOS-FALLBACK-1 §4), and `persona_id` (OVOS-PERSONA-1 §3).
and the propagation (§4) and wire-weight (§3.4) rules.
- §3 — the roster of fields claimed at publication and their owning
specifications, including `converse_handlers` (OVOS-CONVERSE-1 §2.1),
`fallback_handlers` (OVOS-FALLBACK-1 §4), and `persona_id`
(OVOS-PERSONA-1 §3).
- §3.3 — `site_id` is defined by OVOS-BRIDGE-1 §3.3; this section states
the consumer constraints that apply within the orchestrator pipeline.
- See also — each field's owning specification, including
Expand Down
Loading