Skip to content

feat!: bind OVOSSkill.gui to ovos-gui-api-client#420

Draft
JarbasAl wants to merge 3 commits into
devfrom
feat/gui-api-client-rebind
Draft

feat!: bind OVOSSkill.gui to ovos-gui-api-client#420
JarbasAl wants to merge 3 commits into
devfrom
feat/gui-api-client-rebind

Conversation

@JarbasAl

@JarbasAl JarbasAl commented Jun 20, 2026

Copy link
Copy Markdown
Member

Bind OVOSSkill.gui to the standalone ovos-gui-api-client

Part of the GUI rework. The skill-side GUIInterface has been
extracted from ovos-bus-client into the standalone ovos-gui-api-client
package. This PR points workshop at it.

Changes

  • skills/ovos.py + app.py: import GUIInterface from ovos_gui_api_client
    (was ovos_bus_client.apis.gui).
  • SkillGUI.__init__: drop the obsolete ui_directories argument — skills no
    longer ship QML, so there are no UI directories to locate. Removes the
    get_ui_directories import.
  • _init_skill_gui: drop the explicit setup_default_handlers() call; the new
    GUIInterface wires its default handlers in __init__.
  • pyproject.toml: add ovos-gui-api-client>=0.0.1,<1.0.0.

Tests

test/unittests/test_gui_rebind.py — 5 tests: workshop imports the api-client
interface, SkillGUI subclasses it, constructs without ui_directories,
show_text() emits gui.page.show(SYSTEM_text), and the no-bus contract.
Local run: full skill/app/gui suites green (15 passed).

CI / dependency note

ovos-gui-api-client is not on PyPI yet — it lives on its feat/packaging
branch (PR OpenVoiceOS/ovos-gui-api-client#2). CI installs it from git via
pre_install_pip / an explicit step. Revert these git pins to the released
version once that PR merges and an alpha publishes.

Depends on: ovos-gui-api-client#2. Draft until that lands.

- import GUIInterface from ovos_gui_api_client (extracted, standalone) in
  skills/ovos.py and app.py instead of ovos_bus_client.apis.gui
- SkillGUI no longer passes the obsolete ui_directories arg (skills no longer
  ship QML); drop get_ui_directories import
- drop explicit setup_default_handlers() call (the new GUIInterface wires its
  default handlers in __init__)
- add ovos-gui-api-client dependency; install it from git in CI until released
- unit tests for the rebind (subclassing, construction, template emit, bus contract)
@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f334089d-9292-4ba0-ae19-99eafdc111df

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/gui-api-client-rebind

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Pardon the interruption, but your automated checks are ready! 🛎️

I've aggregated the results of the automated checks for this PR below.

📋 Repo Health

Ensuring the codebase isn't suffering from 'technical debt' flu. 🤒

✅ All required files present.

Latest Version: 8.2.1a1

ovos_workshop/version.py — Version file
README.md — README
LICENSE — License file
pyproject.toml — pyproject.toml
⚠️ setup.py — setup.py
CHANGELOG.md — Changelog
ovos_workshop/version.py has valid version block markers

🔍 Lint

The results are fresh out of the pipeline. 🏗️

ruff: issues found — see job log

🔨 Build Tests

I've fired up the furnaces and forged your changes. ⚒️

✅ All versions pass

Python Build Install Tests
3.10
3.11
3.12
3.13
3.14

⚖️ License Check

Checking for any missing license headers. ✍️

✅ No license violations found.

Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed.

🔒 Security (pip-audit)

Checking for any insecure data transmissions. 📡

✅ No known vulnerabilities found (73 packages scanned).


An automated high-five for your latest changes! 🖐️

@github-actions github-actions Bot added feature and removed feature labels Jun 20, 2026
@JarbasAl JarbasAl changed the title feat: bind OVOSSkill.gui to ovos-gui-api-client feat!: bind OVOSSkill.gui to ovos-gui-api-client Jun 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant