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
48 changes: 48 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -551,6 +551,54 @@ version 2: its `{{ … }}` sequences become substitution points, and its
Activation lifecycle (§6), stop integration (§7), and the bus surface
(§8). Dispatch on the reserved intent_names `converse` and `response`
(OVOS-PIPELINE-1 §7.3) follows ordinary §7 routing.
- Consistency audit: tuning values demoted from mandates to RECOMMENDED
defaults with rationale — §2.1 list cap (default 10), §3.2 TTL (default
600 s, applied when unconfigured), §4.2 per-owner poll timeout (default
0.5 s); §4.1/§5.2 response-mode delivery gated on the §2.2 identity
invariant against the post-prune `converse_handlers` (a pruned or
unrecognised holder is discarded, never delivered to); §4.4 `"done"`
removal on a null return no longer mutates the inbound session in-place
— the PIPELINE-1 §4.2 channel discipline holds without exception, and
removal is deferred to the next claiming match or the §3.2 TTL; §4.1
parallel polling upgraded to SHOULD (serial critical path); `Match`
slot map named `slots` per OVOS-PIPELINE-1 §4.1; §5.2 dispatch payload
reduced to the standard PIPELINE-1 §7.1 shape (`skill_id` /
`intent_name` live in the topic, not the payload); §5.4 global-stop
interaction corrected (the stop plugin re-stamps itself via uniform
§3.1 activation); §4.2 notes the poll boolean's field name is
protocol-specific (`result` here); OVOS-SESSION-1 cited by its
canonical title.
- Consistency audit, second pass: §4.2 the poll ping **MUST** be derived
via `reply` from the inbound utterance Message (OVOS-MSG-1 §5.2), and
the pong citation is tightened to §5.2; §4.2 gains an **aggregate poll
ceiling** (deployment-configured, alongside the RECOMMENDED 0.5 s
per-owner timeout) with the obligation that any PIPELINE-1 §4.4
match-phase bound for the stage sit at or above it, plus a
bus-exchange exception paragraph mirroring OVOS-FALLBACK-1 §6.1;
§4.2 gains the malformed/foreign/late-pong rule (ignored; missing or
non-boolean `result` ⇒ `false`; first valid pong per owner wins);
§4.1 step 3 restates selection as the **first claimer in recency
order** (head-first per §2.1, equal `activated_at` broken toward the
entry nearest the head per PIPELINE-1 §7.1) and states the
sequential/parallel equivalence; §2.2/§4.1/§5.2 model an expired
`response_mode` entry as **inert** and cleared opportunistically —
by the plugin on its next claiming match, or by the orchestrator when
it commits any `updated_session` — with no mutation exception to
PIPELINE-1 §4.2; §4.4 `"done"` removal on a null return is re-derived
from the next poll round rather than remembered, preserving §9.2's
no-cross-utterance-state rule; §2.1/§3.2 exempt a present,
non-expired `response_mode` holder from TTL pruning and cap eviction;
§3.2 adds two optional decay triggers (prune after `N` consecutive
poll timeouts, RECOMMENDED 3; removal on `ovos.skill.deregister`,
OVOS-INTENT-4 §8.4); §4 constrains a deployment to **at most one**
converse plugin and marks multi-plugin behaviour unspecified; §4.4
marks `timeout` as plugin-synthesised and never on the wire, and drops
the unreachable `response_mode_held` code; §5.4 deletes the duplicate
stop-clears-`response_mode` rule and cites OVOS-STOP-1 §6.1 as its
owner; §2.1 states the identifier charset once (and §2.2/§4.2 cite it)
and names the targeted stop explicitly; the intro's OVOS-SESSION-2
default-session citation corrected §6 → §5; §1 scope now lists §6; a
**See also** section added, matching the sibling specifications.
## OVOS-PIPELINE-1 — Utterance Lifecycle and Pipeline

### 2
Expand Down
Loading