spec: OVOS-INTENT-4 — identity check, entity blacklist, session-scope fixes - #140
spec: OVOS-INTENT-4 — identity check, entity blacklist, session-scope fixes#140JarbasAl wants to merge 1 commit into
Conversation
… fixes Audit pass over intent-4.md. - §3.2: payload skill_id MUST equal context.skill_id on every §§5-8 message; consumers MUST NOT index/act on a mismatch, log at WARN. - §7.1: entity payload gains optional `blacklist` (slot-value exclusion, INTENT-2 §4.3); §7.2 tolerance covers it; §5.4 rescoped. - §11.2: session-scoped entry shadows "default" on exact key collision; blacklisted_pipelines dropped from the pool formula. - §3.2/§11.1/§11.3: quintuple key stated once, absent session ⇒ "default", deregister/enable/disable scoped and method-spanning. - §8.5/§10/§10.2/§12: disabled state is not durable, re-emission keeps its session context, describe gains a session_id filter, manifest presence ≠ matchability. - Citation and wording fixes: INTENT-2 §2 for lang case, §6.2 dropped from the malformed list, §8.4 broadcast framing, sample-name union, RECOMMENDED added to the RFC list, key words bolded. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 41 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Audit pass over
intent-4.md. One file, plus its CHANGELOG entry.Behavior changes
skill_idMUST now equalcontext.skill_idon everymessage of §§5–8. Consumers MUST NOT index or act on a mismatch and
MUST log it at WARN. Before this, nothing tied the payload identity
to the emitting skill: any skill could register, disable, or
deregister another skill's intents, and
ovos.skill.deregister(§8.4) amounted to a remote uninstall. The rule is imported from
OVOS-FALLBACK-1 §3.1, which already states it for fallback
registration, and is restated in §12 for plugins and orchestrator.
blacklistfield (§7.1) —slot-free phrases that MUST NOT be bound as values of the entity's
slot. This closes OVOS-INTENT-2 §4.3's slot-value-exclusion role,
which had no carrier on the bus. Absent means no exclusion. It is
distinct from §6.1's intent-suppression
blacklist, and §5.4 isrewritten so its "no
.blacklist" statement is scoped to theintent-suppression role only. Per triage D7; INTENT-3 gets the
matching entity-side sentence in its own PR.
"default"entry onexact key collision (§11.2), instead of both entering the pool.
The old text deferred to OVOS-PIPELINE-1 §6 first-match-wins, which
orders pipeline plugins, not entries within one plugin — the
collision had no defined outcome.
Key and scoping consistency
(session_id, skill_id, intent_name, lang, method), matching §8.1,§11.1 and §12; the
session_idcomponent stays owned by §11.1.(session_id, skill_id, intent_name, lang)across both methods,reconciling it with §8.2's no-per-method rule.
ovos.intent.enable/.disableare scoped tocontext.session.session_idand span both methods.session_id, is keyedunder
"default". The claim that every Message already carries asession is deleted — OVOS-MSG-1 §4 only SHOULDs it.
blacklisted_pipelinesdropped from the effective-poolformula; it removes pipeline plugins, not pool entries.
Cold start and introspection
orchestrator restart; the disabling party re-asserts after the
readiness announcement.
session creates a second entry its owner cannot deregister. The
satellite case is delegated to OVOS-BRIDGE-1 §4.4.
ovos.intent.describegains an optionalsession_idfilter,and each
definitions[]entry carries itssession_id.verbatim without validating it — presence records that the broadcast
was observed, not that any plugin will match it.
Editorial
namewithin one role merge intoone vocabulary whose
samplesis the union.langcase-insensitivity cites OVOS-INTENT-2 §2, notOVOS-SESSION-1 §3.2.
mandates acceptance).
Not in this PR
session_idin the deregisterpayload" wording (belongs to the bridge PR).
pool, session-scoped registration, vocabulary descriptor.
Version unchanged (still 2).
🤖 Generated with Claude Code