fix: emit destination as a string (OVOS-MSG-1 §3.3) - #205
Conversation
§3.3 gives destination one form, a string, with no multi-address form. Every value here was a one-item list. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
Fresh off the press! I've got some check results for you. 🗞️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: ✅ 🔍 LintThe results have been compiled and are ready for review. 📑 ❌ ruff: issues found — see job log 🏷️ Release PreviewI've checked the 'New Features' highlight reel. 📽️ Current:
✅ PR title follows conventional commit format. 🚀 Release Channel Compatibility Predicted next version:
⚖️ License CheckEnsuring our project remains legally compliant. ✅ ✅ No license violations found. Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed. 🔒 Security (pip-audit)Scanning the horizon for any zero-day threats. 🌅 ✅ No known vulnerabilities found (132 packages scanned). 📊 CoverageMeasuring the safety net for your changes. 🥅 Files below 80% coverage (15 files)
Full report: download the 🔨 Build TestsVerifying the structural soundness of your build. 🏗️ ✅ All versions pass
Your loyal automated servant. 💂♀️ |
Disclosure: an AI agent (Claude Opus 5) wrote this change. A human reviews it before merge.
Change
ovoscope/classic_listener.py,listener.pyandvoice_loop.py: the injected utterance stampsdestinationas"skills".The clause
OpenVoiceOS/architectureorigin/devf23dbec,msg-1.md§3.3:Compatibility
Every consumer of
destinationin the fleet was read at its ref. None of them indexes the field or compares it to a list.A string arrives safely on old and new consumers. The spec-tools
reply()swap takes a string as it is. The list branch inovos-spec-toolsstays until all producers are migrated.Record:
knowledge/wiki/audits/spec-adoption/t2279-msg1-33-array-destination-producers.md. The first migration was JarbasHiveMind/HiveMind-core#357.Tests
A new test in
test/unittests/test_voice_loop.pychecks that the value is a string. It fails at the base and passes at this branch.testwithoute2e: 570 passed, 12 failed, 135 skipped. The same 12 tests fail atorigin/dev. Base:3f82307.No live bus run.
🤖 Generated with Claude Code