Release 0.1.1a1 - #44
Open
github-actions[bot] wants to merge 63 commits into
Open
Conversation
Co-authored-by: Joan Montané <joan@montane.cat>
Co-authored-by: Joan Montané <joan@montane.cat>
Co-authored-by: JoergZ2 <joerg.zywek@gmx.de>
Co-authored-by: JoergZ2 <joerg.zywek@gmx.de>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* Translate dialogs.json via GitLocalize * Translate vocabs.json via GitLocalize --------- Co-authored-by: nuriapochatbsc <nuria.poch.at.bsc@gmail.com>
* Translate vocabs.json via GitLocalize * Translate dialogs.json via GitLocalize --------- Co-authored-by: Adina Vladu <adina.vladu@usc.es>
* Translate dialogs.json via GitLocalize * Translate intents.json via GitLocalize * Translate intents.json via GitLocalize * Translate vocabs.json via GitLocalize * Translate vocabs.json via GitLocalize --------- Co-authored-by: mt-gitlocalize <mt@gitlocalize.com> Co-authored-by: Andreas Lorensen <andlo@outlook.dk>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[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
* feat: add ovoscope end2end intent-routing tests Route the four ADAPT enclosure intents (look right/left, spin eyes, narrow eyes) through a real MiniCroft and assert intent binding. The skill is hardware-bound and refuses to load off Mark 1 hardware, so the detection is forced for the headless run. A test extra pins ovoscope and ovos-adapt-parser, and the ovoscope workflow requires the adapt pipeline. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci: scope build/coverage workflows to the ovoscope e2e suite The skill ships only end-to-end tests. Drop the stale unit-test path from build-tests (build/install verification only) and point coverage at the end2end suite with the test extra so ovoscope and the adapt pipeline are installed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds the two files that were missing from the existing da-DK
translation (present in every other locale): brightness.entity
and color.entity (the CSS3 extended color-name list, 160 entries).
Also fixes brightness.intent:
- adds the one missing template line (en-US has 13, da-DK had 12)
- fixes two lines that referenced a non-existent {lysstyrke} slot
instead of the {brightness} slot the skill code actually expects
- these patterns would never have matched anything
- fixes a mistranslation ("også"/also instead of "for"/too) in the
"you are too bright/dim" pattern
* refactor(locale): rename resource base names to INTENT-2 §2 snake_case
Dotted base names such as eye.color.intent and set.color.success.dialog
violate OVOS-INTENT-2 §2, which restricts a resource base name to lowercase
ASCII letters, digits and underscores. Rename every intent and dialog file
across all locales to the underscore form and update the matching
speak_dialog / get_response / intent_handler references in the skill.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* feat!(en-US): consolidate and anchor eye/brightness intents
Collapse the near-duplicate eye-color, custom-color and brightness templates
into expansion form, and require an eye/eyes reference in every template so
these device-specific commands no longer collide with the generic color and
volume skills. Each named slot ({color}, {brightness}) keeps a matching
.entity, and no template references an undefined slot.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* test: add e2e + unit intent tests and wire test CI
Add padatious routing e2e (eye_color/brightness en-US) booting an in-process
MiniCroft, plus offline locale-resource unit tests. Wire the [test] extra to
test/requirements.txt (ovoscope + pipeline stack floor-pinned), ship it via
MANIFEST.in, and point the ovoscope/build/coverage workflows at the right
paths with padatious system deps.
Also fix skill-load hazards flagged in review: drop the undefined
wait_while_speaking() call (use speak_dialog(wait=True)) and remove the dead
auto-brightness branch referencing undefined handle_auto_brightness /
self.auto_brightness.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* ci: use test_extras for coverage install
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* test: stop colour handler follow-up prompt hanging e2e
handle_eye_color follows a successful match with an infinite-retry
get_response/ask_yesno prompt that never resolves in a headless MiniCroft,
hanging the ovoscope run. Neutralise both on the skill class in the test.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* build: migrate to pyproject-only packaging
Consolidate setup.py, requirements.txt, test/requirements.txt and
MANIFEST.in into a single pyproject.toml. Version is derived
dynamically from version.py, the test floor-pins move into the
[test] extra, and package-data ships the locale resources.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
* test: add golden-utterance e2e suite for en-US
Vendors the ovoscope golden-utterance corpus slice for this skill (47
rows) and runs every row through a real MiniCroft, asserting intent
routing on ovos.intent.matched data.intent_name.
Corpus-row edits (also flagged for the master corpus): 9 rows label
the padatious intents as custom.eye.color.intent / eye.color.intent
(dot-separated), but this repo's actual intent files are
custom_eye_color.intent / eye_color.intent (underscore) -- corrected
the intent_label field in the vendored slice to match.
Template fixes (red-before/green-after):
- EnclosureEyesBlink/EnclosureEyesSpin/EnclosureMouthSmile/
EnclosureMouthListen/EnclosureMouthThink required one_of(eyes,
animation) or one_of(animation, mouth) alongside their primary verb,
so bare 'blink'/'rotate'/'smile'/'listen'/'think' never matched --
loosened those to optional, matching how a user would actually say
them.
- brightness.intent required the literal word eye/eyes before
brightness/illumination, so 'change the brightness' (no 'eye')
never matched -- made the eye/eyes group optional.
Also fixes test_intents_en_us.py's two stale .intent-suffixed topic
assertions (eye_color.intent / brightness.intent) to the canonical
unsuffixed event names actually dispatched, and adds negative tests
for confusable utterances from other skills' domains.
* ci: install libfann-dev/swig for the ovoscope job
require_padatious pulls in ovos-padatious, which (at the pinned floor)
depends on fann2, a native extension needing libfann headers to
build. The workflow never set system_deps, so the ovoscope CI job
failed at 'cannot find -ldoublefann' before any test ran (confirmed:
same issue blocked local pip install here without libfann-dev).
* fix: bump ovos-padatious floor to the fann2-free 2.x engine
The pinned test-extras floor (>=1.8.0a1,<2.0.0) resolves to the old
FANN-neural-net-backed padatious, which needs libfann headers to
build (blocking CI even after adding system_deps) and is
non-deterministic enough to intermittently misroute both a golden
row and a negative-confusable row under CI's parallel test workers.
ovos-padatious>=2.0.0a1 drops the fann2 dependency entirely and
matched all 56 rows deterministically across repeated local runs.
Also sets pytest_workers: '0' for the ovoscope job to avoid
CPU-contention flakiness in the legacy sleep-based
test_intents_en_us.py MiniCroft polling under parallel workers.
* test: swap an ambiguous negative utterance for a clean one
'change the light color to red' shares eye_color.intent's own loose
template shape (change ... color to {color}, with the eye/eyes word
being the only distinguishing required token) and intermittently
false-matched under CI's freshly-trained padatious model -- a
borderline case, not a real routing defect (the required eye/eyes
token is genuinely absent, and repeated local runs did not reproduce
it). Swapped for 'turn off the living room lights', which shares no
color/eye vocabulary with this skill and is unambiguously outside its
domain.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
ovos-workshop 9.5.0a1 auto-registers every .entity file shipped under a
skill's locale resources the first time that language's resources load,
before any intent template is registered, and the registration is
idempotent -- no skill-authored register_entity_file() call is needed
anymore. This PR now ships only locale/*/brightness.entity and
locale/*/color.entity (already present) plus test coverage and the floor
bumps that guarantee auto-registration is active; __init__.py no longer
has an initialize() at all.
Unit test boots the skill via a FakeBus with no manual registration call
and asserts the padatious:register_entity messages for both {brightness}
and {color} land with the expected sample values. Deleting either entity
file turns it red (verified locally). E2e coverage of the padatious
hint-band behavior for out-of-list values, and brightness.entity's
digit-wildcard '#' lines being dropped as comments, is unchanged.
Also fixes the test extra's ovos-core pin to ovos-core[plugins,lgpl],
matching the sibling skill PRs in this batch, so ovos-adapt-pipeline-plugin
actually installs and the golden-utterance suite's Adapt-intent rows can
run instead of silently failing to match.
Floors: ovos-workshop>=9.5.0a1,<10.0.0; ovos-padatious>=2.0.4a1,<3.0.0
(test extra).
Add a short section to the README documenting the shipped .entity resource files: what slot they hint, that unlisted values still match and fill the slot (they are not a closed list), and that ovos-workshop (>=9.5.0a1) registers them automatically without any skill-side call. Also clarifies that numeric brightness is parsed by code, since the entity file's leading '#'-style placeholder lines are stripped as comments before they ever reach the matcher. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
ovos-config 3.0.0a1 removes AssistantConfig and remote-config APIs that ovos-skill-mark1-ctrl never used, so the upper bound blocking resolution to the 3.x series is unnecessarily strict. Full test suite forced against ovos-config 3.0.1a1 (63 passed, 1 pre-existing unrelated failure reproduced identically on 2.x in test_boot_auto_registers_entity_files_no_manual_call). 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!