Skip to content

feat!: remove skill-side home/resting screen API#421

Draft
JarbasAl wants to merge 2 commits into
devfrom
feat/remove-skill-homescreens
Draft

feat!: remove skill-side home/resting screen API#421
JarbasAl wants to merge 2 commits into
devfrom
feat/remove-skill-homescreens

Conversation

@JarbasAl

Copy link
Copy Markdown
Member

What

Enacts the decision that the home/resting screen is a GUI render-backend concern,
not a skill concern (OVOS-GUI-1 §6.9: the resting display is owned by the render
backend; applications MUST NOT provide/register a home or resting screen). Removes
the skill-side homescreen/resting-screen API. Breaking change.

Changes

  • decorators: removed resting_screen_handler and homescreen_app
  • deleted IdleDisplaySkill (idle_display_skill.py) and its re-export
  • OVOSSkill: removed register_resting_screen(), register_homescreen_app(), the
    init call, and the homescreen-app block in _register_app_launcher (now no-op);
    removed dead __skill_id2name and unused shutil/get_xdg_cache_save_path imports
  • deleted test_idle_display_skill.py
  • left the unrelated example-utterance/metadata registration intact

Breaking API removed

resting_screen_handler, homescreen_app, IdleDisplaySkill,
OVOSSkill.register_resting_screen, OVOSSkill.register_homescreen_app.

Verification

grep clean; imports resolve; pytest test/unittests -q → 480 passed.

Downstream impact (follow-up, not touched here)

  • ovos-ocp-audio-plugin — emits homescreen.manager.show_active / has remove_homescreen
  • ovos-skill-iss-location — calls register_resting_screen
  • ovos-pydantic-models — defines home-screen models
  • ovos-skill-homescreen — should be archived

The home/resting screen is a GUI render-backend concern, not a skill
concern. Skills are voice apps and must not provide or register a home
or resting screen (OVOS-GUI-1 §6.9: the resting display is owned by the
render backend; applications MUST NOT provide/register a home or resting
screen).

Removes the skill-side homescreen/resting-screen API:

- decorators: drop `resting_screen_handler` and `homescreen_app`
- skills: delete `IdleDisplaySkill` (idle_display_skill.py) and its
  re-export from `ovos_workshop.skills`
- OVOSSkill: drop `register_resting_screen()` and
  `register_homescreen_app()`, the `register_resting_screen()` init call,
  and the homescreen-app registration block in `_register_app_launcher`
  (now a no-op); remove the now-dead `__skill_id2name` helper and the
  unused `shutil` / `get_xdg_cache_save_path` imports
- tests: delete test_idle_display_skill.py

BREAKING CHANGE: `resting_screen_handler`, `homescreen_app`,
`IdleDisplaySkill`, `OVOSSkill.register_resting_screen` and
`OVOSSkill.register_homescreen_app` are removed. Skills can no longer
register a home or resting screen; this is handled by the GUI render
backend.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@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: 93c463c7-65b0-48bc-aebc-c25c58691897

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/remove-skill-homescreens

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

Hello! I've finished running some automated checks on this PR. 👋

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

🔍 Lint

Generic report status: Complete and verified. ✅

ruff: issues found — see job log

📋 Repo Health

Keeping the project in tip-top shape! 🏃

✅ 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

🔒 Security (pip-audit)

Ensuring our password hashing is up to date. 🔨

✅ No known vulnerabilities found (72 packages scanned).

⚖️ License Check

Ensuring our licenses allow for commercial use. 🏢

✅ No license violations found.

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

🔨 Build Tests

Checking the blueprint against the actual construction. 📐

✅ All versions pass

Python Build Install Tests
3.10
3.11
3.12
3.13
3.14

Beep boop. See you in the next PR! 👋

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