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
53 changes: 53 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,59 @@ version 2: its `{{ … }}` sequences become substitution points, and its
by `(session_id, skill_id, entity_name, lang)`. §12 — the orchestrator
keys the manifest by the quintuple and serves session-aware
`ovos.intent.list` queries.
- Audit pass: §3.2 — the payload `skill_id` MUST equal
`context.skill_id` on every message of §§5–8; a consumer MUST NOT
index or act on a mismatch and MUST log it at WARN (the same rule
OVOS-FALLBACK-1 §3.1 states for fallback registration). Without it a
skill could deregister or disable another skill's intents, and
`ovos.skill.deregister` was a remote uninstall. Restated for plugins
and for the orchestrator in §12.
- §7.1 — the entity payload gains an optional `blacklist` field: an
array of slot-free phrases that MUST NOT be bound as values of the
entity's slot (OVOS-INTENT-2 §4.3 slot-value exclusion). Absent
means no exclusion. This is the wire carrier for the `.entity`-paired
`.blacklist` role, which previously had no path onto the bus; it is
distinct from §6.1's intent-suppression `blacklist`. §7.2's
partial-malformation tolerance covers its entries identically, and
§5.4 is rewritten to scope its "no `.blacklist`" statement to the
intent-suppression role only.
- §11.2 — a session-scoped entry now **shadows** the `"default"` entry
on exact key collision, rather than both entering the pool and being
resolved by OVOS-PIPELINE-1 §6 first-match-wins (which orders
plugins, not entries within one plugin). `blacklisted_pipelines` is
dropped from the effective-pool formula — it removes pipeline
plugins, not pool entries.
- §3.2 — the registration key is stated as the quintuple
`(session_id, skill_id, intent_name, lang, method)`, matching §8.1,
§11.1 and §12; the `session_id` component is owned by §11.1.
- §11.3 — deregistration removes every entry matching
`(session_id, skill_id, intent_name, lang)` across both methods,
reconciling the section with §8.2's no-per-method rule.
`ovos.intent.enable` / `ovos.intent.disable` are scoped to
`context.session.session_id` the same way (§8.5, §12).
- §11.1 — a registration whose context carries no session, or a
session with no `session_id`, is keyed under `"default"` rather than
being malformed; the false claim that every Message already carries
a session is removed (OVOS-MSG-1 §4 states SHOULD).
- §8.5, §10, §12 — enabled/disabled state does not survive an
orchestrator restart; the disabling party re-asserts it after the
readiness announcement. Cold-start re-emission MUST carry the same
session context as the original registration, since a different
session creates a second entry its owner cannot remove; the
satellite case is delegated to OVOS-BRIDGE-1 §4.4.
- §10.2 — `ovos.intent.describe` gains an optional `session_id`
filter, and each `definitions[]` entry carries the `session_id` it
was registered under.
- §2, §12 — the manifest indexes every non-reserved registration
verbatim, without payload validation: presence records that the
broadcast was observed, not that any plugin will match it.
- §8.4 — rewritten as a broadcast, not a message sent to the
orchestrator. §5.3 — two vocabulary descriptors sharing a `name`
within one role are merged into one vocabulary whose `samples` is
the union. §3.2 — `lang` case-insensitivity cites OVOS-INTENT-2 §2,
not OVOS-SESSION-1 §3.2. §12 — §6.2 dropped from the malformed-rule
citation list (§6.2 mandates acceptance). RFC 2119 list adds
RECOMMENDED; §6.2 and §7 key words bolded.
- Consistency and design review: §5.2/§6.1 — an absent list-valued key
equals an empty list and MUST NOT be treated as malformed (the
all-four-keys shape-stability requirement is dropped). §5.3/§6.3 —
Expand Down
Loading