Skip to content

spec: PIPELINE-1 — resolve-lang-once, timeout defaults, match-phase liveness, reserved-name stamping suppression#109

Open
JarbasAl wants to merge 3 commits into
devfrom
spec/pipeline-1
Open

spec: PIPELINE-1 — resolve-lang-once, timeout defaults, match-phase liveness, reserved-name stamping suppression#109
JarbasAl wants to merge 3 commits into
devfrom
spec/pipeline-1

Conversation

@JarbasAl

@JarbasAl JarbasAl commented Jul 4, 2026

Copy link
Copy Markdown
Member

Internal-purity refinement of OVOS-PIPELINE-1.

Changes

  • Resolve language once (§4, §9.1): when ovos.utterance.handle carries no authoritative lang, the orchestrator MUST resolve the utterance language once from OVOS-SESSION-1 §3.2 evidence and pass the resolved tag to every plugin's match call. Plugins MAY refine the tag but MUST NOT re-derive it independently — per-plugin resolution lets the same utterance match in different languages at different stages. Match.lang stays the plugin's declaration.
  • Match-phase timeout (§4.4): RECOMMENDED default of 10 s (tuning value, not a MUST); an applied bound MUST be at least as large as any stage-internal collection ceiling, or the stage is killed mid-collection on every utterance it handles.
  • Context decay alignment (§6.1): the post-match turns_remaining decrement moves outside the matched branch, running after the match round whether or not any intent matched, with freshly written entries exempt — exactly the OVOS-CONTEXT-1 §4/§4.1 model. Promotion citations corrected to CONTEXT-1 §5.1.
  • Orchestrator liveness (§6.5): the bus loop MUST keep servicing subscriptions — including poll replies destined for an in-flight plugin — while a match call is in flight; a bus loop that blocks on the synchronous return deadlocks every bus-round-trip match strategy.
  • Stamping suppression (§7.1, §7.3): the session.active_handlers push suppression MUST key on the Match's intent_name appearing in the §7.3 reserved-name registry, never on the producing pipeline_id — stated identically at both sites.
  • Citation and language hygiene: SESSION-1 registry citations corrected to §2.2; "reservations currently in force" and "in their own PR" replaced with timeless wording.

CHANGELOG entry appended under the spec's current class. Version field unchanged: per VERSIONING.md it is a V1/V2 compatibility class, and these refinements do not change class.

🤖 Generated with Claude Code

JarbasAl and others added 2 commits July 4, 2026 13:48
…own-key relaxation, deterministic reply source

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…imeout defaults, liveness, stamping suppression

- Orchestrator resolves utterance language once per utterance when the
  entry topic carries no authoritative lang; plugins refine, never
  re-derive (§4, §9.1).
- Match-phase timeout: RECOMMENDED 10 s default; applied bound MUST
  cover stage-internal collection ceilings (§4.4).
- Context decay aligned with OVOS-CONTEXT-1 §4: post-match decrement
  after every match round, fresh entries exempt; §5.1 promotion
  citations (§6.1).
- Orchestrator MUST keep servicing bus subscriptions while a match call
  is in flight (§6.5).
- active_handlers stamping suppression keyed on the reserved
  intent_name, never the producing pipeline_id (§7.1, §7.3).
- SESSION-1 registry citations corrected to §2.2; timeless wording.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 4, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@JarbasAl, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 52 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f41d12cf-d388-435e-8c8b-5e2ce584b3af

📥 Commits

Reviewing files that changed from the base of the PR and between 9003dcd and 9ee9ccf.

📒 Files selected for processing (2)
  • CHANGELOG.md
  • pipeline-1.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch spec/pipeline-1

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

msg-1.md is edited by its own PR on spec/msg-1, which carries the same change
modulo line wrapping. Two branches rewriting one spec file cannot both land, and
this repo keeps one spec file per PR.

Drop the msg-1.md edit and its CHANGELOG entry here. The pipeline-1 citations of
OVOS-MSG-1 §2.1.1 resolve against the section already on dev, so this PR stands
alone and does not wait on the msg-1 PR.
@JarbasAl
JarbasAl marked this pull request as ready for review July 16, 2026 07:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant