feat: union slot sets for .intent (OVOS-INTENT-1 §5.5)#19
Conversation
- lint.py: slot-consistency check now applies only to .dialog (OVOS-INTENT-1 §5.5). .intent files with differing slot sets are accepted. - test/test_lint.py: update slot-consistency tests — .intent with different slot sets is clean, .dialog still requires identical slot sets.
|
Warning Review limit reached
More reviews will be available in 32 minutes and 55 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe PR refines slot-set consistency rules in the locale resource linter: ChangesDialog slot-set consistency enforcement
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related issues
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
I've gathered some intelligence on your latest changes. 🕵️♀️I've aggregated the results of the automated checks for this PR below. 🔍 LintJust a little bit of automation magic for you. ✨ ❌ ruff: issues found — see job log 🔒 Security (pip-audit)I've checked the security of our build pipeline. 🏗️ ✅ No known vulnerabilities found (32 packages scanned). 🏷️ Release PreviewEvaluating the excitement level for the next release. 🤩 Current:
✅ PR title follows conventional commit format. 🚀 Release Channel Compatibility Predicted next version:
⚖️ License CheckEvaluating the legal risk of these changes. ⚖️ ❌ License violations detected (4 packages) — review required before merging. License distribution: 1× Apache Software License, 1× Apache-2.0 OR BSD-2-Clause, 1× MIT, 1× MIT License Full breakdown — 4 packages
Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed. 📋 Repo HealthEnsuring the repository stays up to date. 🔄 ✅ All required files present. Latest Version: ✅ 🔨 Build TestsThe build is complete. No hard hats required. 👷♂️ ✅ All versions pass
📊 CoverageCalculating the density of our test suite. 🧮 ✅ 97.1% total coverage Per-file coverage (9 files)
Full report: download the An automated message from your friendly PR bot. 🤖 |
- lint.py: add WARNING (not ERROR) when .intent templates declare different slot sets. Exits 0 unless --strict is passed. - test/test_lint.py: update tests to expect WARNING for .intent inconsistency, no error.
f591720 to
c27c827
Compare
Companion PR to OpenVoiceOS/architecture#56.
Updates the reference implementation to match the spec change that relaxes slot-consistency for
.intentfiles while keeping it strict for.dialog.Changes
ovos_spec_tools/lint.py— the slot-consistency check (OVOS-INTENT-1 §5.5) now:.dialogfiles with differing slot sets (unchanged)..intentfiles with differing slot sets — valid but atypical, so the linter flags it for review without breaking the build.test/test_lint.py— updated tests:.intentwith different slot sets → WARNING (no error, exit 0)..intentwith slot-bearing + slot-free lines → WARNING (no error)..dialogwith different slot sets → still an ERROR..dialogwith slot-bearing + slot-free lines → still an ERROR.Design note
The
expand()primitive already worked one template at a time and never enforced cross-template consistency. The linter was the only place that enforced §5.5 uniformly. Narrowing the check to.dialogaligns the linter with the relaxed spec. A warning on.intentgives authors a safety net for accidental copy-paste without penalising legitimate union-slot intents.Test
All 303 tests pass (full suite:
pytest test/).