spec: OVOS-FALLBACK-1 — poll semantics, pong correlation, registry liveness - #134
spec: OVOS-FALLBACK-1 — poll semantics, pong correlation, registry liveness#134JarbasAl wants to merge 1 commit into
Conversation
|
Warning Review limit reached
Next review available in: 36 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 |
…veness Squashed from: - spec: OVOS-FALLBACK-1 — §6.1 note: utterance is the round identifier - spec: OVOS-FALLBACK-1 — §8.1/§8.2 persona ordering: interleaving preserved, catch-all last - spec: OVOS-FALLBACK-1 — poll semantics, pong correlation, registry liveness Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
7bae537 to
462fc0e
Compare
Audit follow-up on
fallback.md. One file plus its CHANGELOG entry.Behavior changes — needs owner sign-off
active_handlerspush on fallback dispatch (§7 note).fallbackis a reserved intent_name, and PIPELINE-1 §7.3 currently suppresses
the
session.active_handlerspush for every reserved name. This PRstates that the fallback row does not suppress it, so a fallback
dispatch is a fresh activation — which is what makes a running
fallback skill stoppable and lets a language-model fallback take the
next utterance through converse. It depends on the per-row property
landing in the PIPELINE-1 PR; merge that first.
utteranceecho (§6.1). A new REQUIRED field on the<skill_id>.fallback.pongwire shape. Written as REQUIRED goingforward with absence tolerated as a legacy producer (SHOULD accept),
so an old skill keeps working and the compatibility class does not
move. Open question for the owner: if adding a required field is
judged a class change on its own, the header Version (currently 2)
would need attention — though VERSIONING.md defines only V0/V1/V2,
so there is no "3" to move to. Not bumped here.
Major
common query), so a slow evaluator is skipped, not delayed. The
0.5 s RECOMMENDED ceiling is now stated as calibrated for local
evaluators; a model-backed stage MUST configure a ceiling above
its own evaluation latency, or the default silently converts every
LLM fallback into a non-responder.
question twice (ping, then dispatch). Skills SHOULD cache the
ping-time result keyed
(session_id, utterance), reuse it atdispatch, and discard on a new utterance — mirrors CQ §5.2.
pool_size × per-poll ceilingsequentially, one window for the broadcast form. A deployment
MUST set the stage's match-timeout bound at or above it
(PIPELINE-1 §4.4, the CQ §2.1 pattern). Broadcast collapses the
ceiling to a constant.
order deterministically; ascending
skill_idRECOMMENDED.Registration arrival order is not acceptable — it makes the selected
handler depend on process start order.
unbounded integer, so the catch-all guarantee comes from placement,
not from the number.
the reply derivation is that the responder always replies, so the
query must arrive response-ready. Session propagation is common to
every derivation and does not discriminate. The pong MUST derive
via reply too.
Moderate
context.session.session_id(INTENT-4 §11.3), never
Message.data, and a payload/contextskill_idmismatch MUST NOT be honoured — otherwise any skillcan evict any other. Added to the §10 MUST list.
honour
ovos.skill.deregister(SHOULD), evict after N consecutivetimeouts and re-admit on re-register (MAY).
home; §3.3 becomes purely descriptive; a §10 deployment bullet added.
Minor
stage open above; a skill in no range is never queried — log at WARN.
fallback_handlersorders the pool but never admits into a stage.From other audits
SHOULD follow the persona stage —
fallback_high/fallback_mediumMAY precede it, interleaved with intent-matching stages by priority
range (§8.2). An earlier pass on this branch had §8.1 require
persona before every fallback stage and flattened §8.2's example
to match, which lost the deliberate confidence-interleaving design.
§8.2's example is restored to
stop_high, converse, intent_high, fallback_high, intent_medium, fallback_medium, common_query, persona, fallback_low, aligned with OVOS-PERSONA-1 §10'scommon_query→personaordering (PR spec: PERSONA-1 — consistency audit (claim rule, mandatory speak, converse, OOB, positioning) #142).split into §11.1 (keying) and §11.2 (inheritance).
.reply()Python-style residue is replaced with "the replyderivation (MSG-1 §5.2)".
Skipped
belongs to the GLOSSARY PR.
Version unchanged at 2. CHANGELOG updated in the existing format.
🤖 Generated with Claude Code