fix: drop unhashable Session from lru_cache key (ovos-bus-client 2.x compat) - #60
Conversation
ovos-bus-client 2.x makes Session unhashable (Session.__hash__ is None), so passing it as an lru_cache argument to _calc_padacioso_intent raised TypeError: unhashable type: 'Session' on every match attempt. Pass the two blacklist sets the matcher actually reads as frozensets (hashable) instead of the whole Session, restoring caching and matching under bus-client 2.x. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 51 minutes and 38 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more credits in the billing tab to continue. ⌛ How to resolve this issue?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 credits. 🚦 How do rate 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 see our Fair Usage Limits Policy for further information. ✨ 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 |
Scanning complete. No anomalies detected in the process. 🌌I've aggregated the results of the automated checks for this PR below. 📋 Repo HealthScanning for any signs of 'copy-paste' obesity. 🍕 ✅ All required files present. Latest Version: ✅ ⚖️ License CheckChecking the paperwork! Everything seems in order. 📂 ✅ No license violations found. Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed. 🏷️ Release PreviewHere's what the next release might look like! 🚀 Current:
✅ PR title follows conventional commit format. 🚀 Release Channel Compatibility Predicted next version:
🔌 Plugin DetectionI've verified the plugin's 'load time' is lightning fast. ⚡ Plugin Info:
OPM Detection:
Entry Point Validation:
⊘ No Issues:
🔌 Skill Tests (ovoscope)Evaluating the overall polish of the skill's interaction. ✨ ✅ 9/9 passed ✅ TestDetach — 2/2 🚌 Bus CoverageA bird's eye view of the message bus landscape. 🦅 📊 CoverageMeasuring the breadth of our automated checks. 📏 Per-file coverage (3 files)
Full report: download the 🔍 LintChecking if we've met all our check criteria. ✅ ❌ ruff: issues found — see job log 🔨 Build TestsThe build pipeline has finished its work. 🏁 ✅ All versions pass
Beep boop. See you in the next PR! 👋 |
…ersonal fork) OpenVoiceOS/padacioso#60 replaces the JarbasAl fork stopgap. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
_calc_padacioso_intent is @lru_cache-keyed on the intent_container object, which is mutated in place by register/detach. After detaching an intent the cache returned the stale pre-detach match (no complete_intent_failure emitted), breaking the detach e2e tests. Clear the cache whenever a container is mutated.
ovos-bus-client 2.x makes
Sessionunhashable (Session.__hash__ is None), so passing it as an@lru_cacheargument to_calc_padacioso_intentraisedTypeError: unhashable type: 'Session'on every match attempt — padacioso silently matched nothing under bus-client 2.x.Fix: pass the two blacklist sets the matcher actually reads as
frozensets (hashable) instead of the whole Session. Restores caching + matching under bus-client 2.x.Found by live integration testing in the OVOS spec-compliance harness (the Session change ships in ovos-bus-client#234). Also handles
blacklisted_*beingNone(optional SESSION-1 field) viaor [].🤖 Generated with Claude Code