Skip to content
Merged
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
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,23 @@ tool does not recognize the token and cannot expand the template.
guarantees, session lifecycle, and the internal shape of `session`
beyond `session_id` and `lang` are explicitly out of scope.

## OVOS-SESSION-1 — Session Carrier Wire Shape

### 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
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).
- §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
`session.active_handlers` (OVOS-PIPELINE-1 §7.1) and
`session.converse_handlers` (OVOS-CONVERSE-1 §2.1).

## OVOS-INTENT-4 — Intent and Entity Registration Bus Contract

### 1
Expand Down
48 changes: 20 additions & 28 deletions session-1.md
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,10 @@ session and persist across utterances.
| `pipeline` | array of string | OVOS-PIPELINE-1 §5 |
| `intent_context` | object | OVOS-CONTEXT-1 §2 |
| `active_handlers` | array of object `{skill_id, activated_at, ...}` | OVOS-PIPELINE-1 §7.1 |
| `converse_handlers` | array of object `{skill_id, activated_at}` | OVOS-CONVERSE-1 §2.1 |
| `response_mode` | object `{skill_id, expires_at}` | OVOS-CONVERSE-1 §2.2 |
| `fallback_handlers` | array of string | OVOS-FALLBACK-1 §4 |
| `persona_id` | string | OVOS-PERSONA-1 §3 |
| `audio_transformers` | array of string | OVOS-TRANSFORM-1 §5 |
| `utterance_transformers` | array of string | OVOS-TRANSFORM-1 §5 |
| `metadata_transformers` | array of string | OVOS-TRANSFORM-1 §5 |
Expand All @@ -209,7 +212,7 @@ session and persist across utterances.
| `blacklisted_intent_transformers` | array of string | OVOS-TRANSFORM-1 §5.2 |
| `blacklisted_dialog_transformers` | array of string | OVOS-TRANSFORM-1 §5.2 |
| `blacklisted_tts_transformers` | array of string | OVOS-TRANSFORM-1 §5.2 |
| `site_id` | string | §3.3 (this spec) |
| `site_id` | string | OVOS-BRIDGE-1 §3.3 |

Every field above is OPTIONAL on the wire. A producer that sets a
field **MUST** use the wire type listed and the value space defined
Expand Down Expand Up @@ -465,31 +468,16 @@ A consumer that needs the payload's content language reads

### 3.3 `site_id`

`site_id` is an **opaque group identifier** for the session. It
names the group or physical location the session belongs to; the
grouping criterion (physical site, room, device cluster,
organisational unit, deployment tenant) is chosen by the deployer
and is not fixed by this specification.

The primary consumer is **routing and output-locality policy**: a
component that routes audio, selects a TTS sink, or decides which
device speaks **MAY** use `site_id` to scope its decision to the
appropriate physical or logical group. A layer-2 system **MAY**
enforce that sessions from a given `site_id` are served only by
components registered to that site.

Constraints:

- **Opaque string.** A consumer **MUST NOT** parse or ascribe
structure to `site_id` beyond string equality.
- **No reserved value.** Unlike `session_id`, no specific string
value carries spec-defined meaning. In particular, the value
`"unknown"` — a value some implementations use as a placeholder —
carries no normative meaning under this specification.
- **Set by the session origin.** `site_id` SHOULD be populated by
the client or device that initiates the session, not by the
orchestrator. A component that forwards or derives a Message MUST
NOT overwrite an existing `site_id`.
`site_id` is an opaque group identifier. Its full normative
definition — assignment rules, bridge behaviour, and consumer
constraints — is owned by **OVOS-BRIDGE-1 §3.3**. This section is
a registry pointer only.

Consumers of `site_id` within the orchestrator pipeline (audio
routing, output-locality policy) **MAY** use it to scope decisions
to a physical or logical group. They **MUST NOT** parse or ascribe
structure beyond string equality, and **MUST NOT** overwrite a
`site_id` already present on an inbound Message.

### 3.4 Wire weight

Expand Down Expand Up @@ -665,9 +653,13 @@ any field not claimed under §2.2 by a normative specification.
- **OVOS-MSG-1** — defines `Message.context` as the carrier and the
`forward` / `reply` / `response` derivations that propagate
`session` unchanged.
- **OVOS-PIPELINE-1** — owns `session.pipeline`.
- **OVOS-PIPELINE-1** — owns `session.pipeline` and
`session.active_handlers`.
- **OVOS-CONTEXT-1** — owns `session.intent_context`.
- **OVOS-CONVERSE-1** — owns `session.active_handlers` and
- **OVOS-CONVERSE-1** — owns `session.converse_handlers` and
`session.response_mode`.
- **OVOS-TRANSFORM-1** — owns the six `session.*_transformers`
fields.
- **OVOS-FALLBACK-1** — owns `session.fallback_handlers`.
- **OVOS-PERSONA-1** — owns `session.persona_id`.
- **OVOS-BRIDGE-1** — owns `session.site_id`.