Skip to content

Release 0.6.4a1 - #117

Open
github-actions[bot] wants to merge 69 commits into
masterfrom
release-0.6.4a1
Open

Release 0.6.4a1#117
github-actions[bot] wants to merge 69 commits into
masterfrom
release-0.6.4a1

Conversation

@github-actions

Copy link
Copy Markdown

Human review requested!

gitlocalize-app Bot and others added 30 commits November 17, 2025 13:15
* Translate skill.json via GitLocalize

* Translate dialogs.json via GitLocalize

* Translate intents.json via GitLocalize

---------

Co-authored-by: marccasadesus <marc.casadesus.bsc@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
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 skill.json via GitLocalize

* Translate skill.json via GitLocalize

---------

Co-authored-by: Adina Vladu <adina.vladu@usc.es>
Co-authored-by: daniferlop <danielfernandez.lopez@usc.es>
* Translate skill.json via GitLocalize

* Translate dialogs.json via GitLocalize

* Translate intents.json via GitLocalize

---------

Co-authored-by: Goudarz Jafari <me@goudarzjafari.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[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>
Automated rename submitted by @JarbasAl via OVOS Localize.

Co-authored-by: ovos-localize[bot] <ovos-localize[bot]@users.noreply.github.com>
JarbasAl and others added 30 commits July 4, 2026 00:01
…94)

* feat(en-US): tighten open-vocab {application} slot with a .blacklist

The {application} slot is open-vocabulary and the "open"/"close" verbs are
shared with many other skills, so "open the door", "open the news",
"open the camera" and anaphoric "open it" were all captured as application
names. Add an application.blacklist slot-value exclusion (OVOS-INTENT-2 §4.3),
wired into the padacioso fallback loader, so blacklisted values leave the slot
unresolved and the utterance can reach its rightful skill (Home Assistant /
PHAL, ovos-skill-news, camera, weather, power).

Also consolidate the en-US launch/close templates via expansion, add the
"start"/"shut down" verbs and explicit app-context phrasings
("open the app spotify"), and add regression tests for matching and exclusion.

* fix: tolerate invalid locale tags and canonical {application} slot

parse_desktop_file crashed when a .desktop file carried a POSIX-style
locale modifier (e.g. Name[sr@latn]) that is not a valid BCP-47 tag,
taking the whole skill down at startup. Keep the raw tag when it cannot
be standardized instead of raising.

The es-ES intents used an accented, non-canonical slot name
({aplicación}) that violates the OVOS-INTENT-2 §3.4 slot charset and no
longer matched the code's "application" entity; align them with the
canonical {application} slot used by every other locale.

Add an ovoscope end2end suite routing launch/close utterances through the
fallback pipeline, plus a unit test locking the .desktop parser fix, and
declare the [test] extra (ovoscope + padacioso floor-pins).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* test(en-US): table-driven fallback intent-match e2e with negatives

Replace the brittle full ordered-message skeleton with per-utterance subset
assertions over the real high-priority fallback pipeline: a matched utterance
must carry ovos.skills.fallback.<skill_id>.response result=True; a blacklisted
or deictic phrasing must be declined (OVOS-INTENT-2 §4.3). Immune to
ovos-core message-sequence drift. Covers every launch/close verb alias plus
the cited blacklist over-grab exclusions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* build: migrate to pyproject-only packaging

Drop setup.py, requirements.txt and MANIFEST.in in favour of a single
pyproject.toml. Version is derived dynamically from version.py's
VERSION_BLOCK, the skill entry-point and test extra are preserved, and
package-data bundles the locale resources (including the new en-US
application.blacklist).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <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>
Submitted by @athmanemokraoui via OVOS Localize

Co-authored-by: ovos-localize[bot] <ovos-localize[bot]@users.noreply.github.com>
Line 1 had translated the placeholder to {applikation}, while
line 2 in the same file correctly kept {application} unchanged -
an inconsistency within the file itself. The variable name must
match the English source exactly since the skill substitutes by
that key.

Found via ovos-localize validation while doing a general da-DK
translation review.
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Vendors the skill's slice of the shared ovoscope golden-utterance corpus
(8 rows) and drives every row through a real MiniCroft, asserting the
launcher fallback consumes each launch/close phrasing. Adds 8 negative
utterances from other skills' domains asserted NOT claimed. All rows
pass green as-is; no template defects found.
handle_async_prompt used `if not switch:` to decide whether to ask the
confirm_launch prompt after confirm_switch. Since switch holds the string
"no" (truthy in Python) after an explicit decline, that check was skipped
and execution fell through to the unconditional self.launch_app(app) call
at the end of the function - so declining the switch prompt launched a
new instance anyway. The same unconditional call also fired if
confirm_launch's yes/no retries were exhausted with an unclear (None)
answer, launching without any explicit confirmation at all.

Fix: only call launch_app when the final answer is explicitly "yes"; "no"
and unclear/unanswered prompts return without launching. The confirm_switch
loop above already returns on "yes", so switch can never be "yes" by the
time we reach the confirm_launch loop - dropped the redundant
`if switch != "yes":` guard that was reading as load-bearing but always
evaluated true.

Regression test tightened to assert the actual prompt sequence
(["confirm_switch", "confirm_launch"]) rather than only the launch
outcome, so it fails if the confirm_launch gate is reverted.
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>
Automated rename submitted by @JarbasAl via OVOS Localize.

Co-authored-by: ovos-localize[bot] <ovos-localize[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants