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
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,19 @@ 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-2 — Session Lifecycle and State Ownership

### 1

- The state-ownership model (stateless bus, stateless orchestrator for
named sessions, orchestrator-owned default session), the mutation
boundaries, `ovos.session.sync` (§2.7), client-side merge rules,
resumption semantics, and conformance.
- §2.4 — a handler that emits no Message cannot propagate in-place
session mutations: the orchestrator-emitted handler-lifecycle trio
does not reflect handler-side changes, so a handler whose mutations
must appear in terminal events emits at least one Message
(`ovos.utterance.speak` or `ovos.session.sync`).
## OVOS-SESSION-1 — Session Carrier Wire Shape

### 1
Expand Down
11 changes: 10 additions & 1 deletion session-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,16 @@ happen only at these boundaries:
plugin-bundled handler per PIPELINE-1 §7.0) MAY mutate
session in-place; its emissions via `forward` / `reply` /
`response` (OVOS-MSG-1 §5) carry the mutated session
forward.
forward. **A handler that emits no Message has no
bus-visible way to propagate its session mutations.** The
handler-lifecycle trio `.complete` (PIPELINE-1 §8) is
orchestrator-emitted from the dispatch context the
orchestrator holds — it does not reflect handler-side
in-place changes, particularly for handlers running
out-of-process. A handler that mutates session and needs
that state visible in terminal events MUST emit at least
one Message (typically `ovos.utterance.speak` or
`ovos.session.sync` per §2.7).

**Session mutation discipline.** A handler SHOULD NOT mutate
session fields unless the mutation is necessary for the
Expand Down