Release 0.7.0a2 - #87
Closed
github-actions[bot] wants to merge 61 commits into
Closed
github-actions[bot] wants to merge 61 commits into
github-actions[bot] wants to merge 61 commits into
Conversation
* Translate skill.json via GitLocalize * Translate dialogs.json via GitLocalize * Translate vocabs.json via GitLocalize --------- Co-authored-by: nuriapochatbsc <nuria.poch.at.bsc@gmail.com>
Automated rename submitted by @JarbasAl via OVOS Localize. Co-authored-by: ovos-localize[bot] <ovos-localize[bot]@users.noreply.github.com>
Automated rename submitted by @JarbasAl via OVOS Localize. Co-authored-by: ovos-localize[bot] <ovos-localize[bot]@users.noreply.github.com>
* fix(i18n): normalize locale folder names to canonical BCP-47 form Rename all locale directories to use canonical BCP-47 codes: - Lowercase regions → uppercase (da-dk → da-DK, en-us → en-US) - Bare language codes → full BCP-47 (da → da-DK, eu → eu-ES) - Invalid codes remapped (eu-eu → eu-ES, fa-fa → fa-IR) - Nested bare-language subdirs merged up (eu-ES/eu/ → eu-ES/) This fixes wheel build failures caused by ZIP files containing duplicate entries with different contents for the same logical path. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore(i18n): remove deprecated translations/ folder (gitlocalize) The translations/ folder with JSON files was used by gitlocalize and has been deprecated in favor of ovos-localize. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: aautomations * ci: add standard GitHub Actions workflows
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
* feat: add ovoscope end2end intent-routing tests * ci: add ovoscope to test extras Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(test): use proper Message objects and require pipeline plugins in CI * ci: add padatious/swig deps and fix test extras in workflows Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix: use test_extras not install_extras in coverage workflow * fix: use install_extras '.[test]' in coverage workflow * chore: adopt PEP 621 packaging and align CI workflows Migrate to pyproject.toml with dynamic version and ovos.plugin.skill entry point, move package into ovos_skill_cmd/, drop setup.py and root requirements.txt, and pin test extras to ovoscope/pytest/pytest-timeout/ padacioso. Add locale_check workflow and point version-file based workflows at ovos_skill_cmd/version.py. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix: use canonical opm.* entry-point group (drop deprecated) * fix: require ovos-plugin-manager>=2.4.0a1 for canonical opm.* entry points * fix: cap ovos-* dependencies at next major so latest versions resolve * fix: require ovos-plugin-manager>=2.1.0 for opm.* entry points and cap ovos-* deps at next major * test: make e2e intent routing drift-immune and scope unit tests Convert the adapt intent-routing e2e to subset assertions over a captured message stream (CaptureSession) so it stays robust against ovos-core/ovoscope ordered-sequence drift. Seed a skill settings file with aliases before load so the RunScriptCommandIntent's dynamic Script vocabulary is registered. Move unit tests under test/unittests and scope the build/coverage workflows to them, leaving the ovoscope workflow to run the e2e suite; add swig/libfann system deps and the ovos-adapt-parser test dependency. --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Adds test/end2end/golden_utterances.jsonl (vendored from the shared ovoscope corpus plus rows derived from Run.voc/skill.json templates, since the corpus carries only one bare stub row for this skill) and test/end2end/test_golden_utterances.py, following the ovos-skill-volume/ovos-skill-weather golden-utterance standard: every row routes through a MiniCroft and asserts the matched-intent message type, plus 7 cross-skill negative confusables. Existing smoke/e2e tests are kept unchanged. Fix (adversarial review finding): the negative-confusable check filtered on msg_type == "ovos.intent.matched", which this repo's pinned ovos-core/ovos-bus-client version never emits -- `assert not []` always passed regardless of what the skill actually claimed, making all 7 negatives vacuously green. Confirmed by mutation: feeding the check one of this suite's own golden rows as a "negative" still passed before the fix, and correctly fails after it. Fixed to key on the observed "<skill_id>:<IntentName>" msg_type shape directly, matching the positive assertion in the same file. Also converts the needs_manual "run command" golden row from a silently skipped row to a proper pytest.param(..., marks=xfail(strict=True, ...)), so every row in golden_utterances.jsonl runs as a real (if expected-to-fail) assertion.
ovos-core now requires ovos-workshop>=9.3.11a1,<10.0.0, so the stale <9.0.0 cap made this skill refuse to install alongside current ovos-core (a normal install downgraded ovos-workshop to 8.x and broke core). This skill was verified loading and serving on ovos-workshop 9.3.13a1 on a live deployment. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Submitted by @athmanemokraoui via OVOS Localize Co-authored-by: ovos-localize[bot] <ovos-localize[bot]@users.noreply.github.com>
Submitted by @athmanemokraoui via OVOS Localize Co-authored-by: ovos-localize[bot] <ovos-localize[bot]@users.noreply.github.com>
Automated rename submitted by @JarbasAl via OVOS Localize. Co-authored-by: ovos-localize[bot] <ovos-localize[bot]@users.noreply.github.com>
RunScriptCommandIntent used an Adapt IntentBuilder requiring the 'Run'
keyword plus a dynamically-registered 'Script' keyword. Migrated to a
Padatious RunScriptCommandIntent.intent per locale (en-US, es-ES, eu-ES,
fr-FR, gl-ES, it-IT, pt-PT) with a {script} slot, replacing the dynamic
alias registration with self.intent_service.register_entity('script', ...).
Run.voc files are kept as-is (unused by the new intent, per migration
convention).
Two vendored golden-corpus rows with filler words ("please ... for me",
"can you ... now") no longer route: a fixed Padatious template has no
filler-word tolerance, unlike Adapt's anywhere-in-utterance keyword match.
Flagged needs_manual (not deleted), matching the existing convention for
the master-corpus "run command" stub row.
Fail-before: added test/end2end/test_intent_file_migration.py, forcing the
Padatious-only pipeline (PADACIOSO_PIPELINE) for "run script backup". Against
unfixed source it failed (ovos.intent.unmatched, RunScriptCommandIntent not
in message types). After the fix it passes. Full suite: 22 passed, 3 xfailed
(0 pre-existing failures were weakened; two golden rows flagged xfail with a
documented reason instead).
ca-ES, da-DK, de-DE, and kab locales have Run.voc but no translation was
supplied for this migration; they are left untouched (no .intent file,
so the intent no longer matches in those locales) pending native review.
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Adds a new list_scripts.intent ("list my aliases" / "what scripts do you
know" / "which commands can you run") that speaks back the configured
alias names, or a no.scripts dialog when none are set.
The bare-run gate described alongside this ("run {alias}" without the
"script"/"command" keyword, matching only known aliases) was investigated
but is not achievable cleanly in this skill's framework: padacioso/padatious
only *penalizes* an unregistered entity value's confidence score, it does
not reject the match, so a looser "(run|launch|start) {script}" template
still captures arbitrary trailing words as the slot value and steals
confusable utterances from other skills (verified live against
"launch a timer for 5 minutes" and "run the news for me", both misrouted
to this skill). Per the issue's fallback instruction, only the list-aliases
intent (item 1) is implemented here.
Fail-before: reverted the __init__.py change (source only, tests kept) and
confirmed all 4 new list_scripts assertions fail (list_scripts intent never
matched / no.scripts dialog never spoken); reapplying the fix makes all 4
pass. Full suite: 30 passed, 3 xfailed (unchanged pre-existing xfail count)
vs the prior 23 passed, 3 xfailed baseline on dev.
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Human review requested! This supersedes any earlier open release proposal for this repository.