Skip to content

fix: remove _TolerantPlaylist shim now that ovos-media 0.4.3a1 fixes Playlist crash - #135

Draft
JarbasAl wants to merge 1 commit into
devfrom
fix/remove-tolerant-playlist-shim
Draft

fix: remove _TolerantPlaylist shim now that ovos-media 0.4.3a1 fixes Playlist crash#135
JarbasAl wants to merge 1 commit into
devfrom
fix/remove-tolerant-playlist-shim

Conversation

@JarbasAl

@JarbasAl JarbasAl commented Aug 13, 2026

Copy link
Copy Markdown
Member

🤖 Auto-generated by Claude Fable 5 (claude-fable-5) via Claude Code — NOT human-reviewed. Verify before acting.

This removes _TolerantPlaylist, a patched-in Playlist subclass the test harness used to silently drop bare string arguments so that constructing the default playlist wouldn't crash. It existed because the installed ovos-media had a real bug — Playlist("Search Results") crashed at construction, tracked as ovos-media#96 — and this shim let the harness boot despite that, at the cost of hiding any future regression of exactly that bug from everyone using the harness.

ovos-media 0.4.3a1, now on PyPI, actually fixes the crash. With the real fix in place, keeping the shim does nothing useful anymore — it just masks the exact same class of bug if it ever comes back. So this removes the shim and raises the harness's ovos-media floor to that fixed version, letting the harness construct the real, unpatched player so any future regression shows up as a test failure instead of silence.

Tested in two throwaway venvs. With the fixed ovos-media version and the shim removed, the full suite gave 9 failures out of 621 passed and 13 skipped — all 9 reproduce identically against the unmodified harness in the same venv, so they predate this change and have nothing to do with the shim, Playlist, or the harness class it patches. The harness's own test file alone passed cleanly, 32 of 32. As a negative control, the same removal was tested against the older, broken ovos-media version, and it failed exactly as expected — 6 of the harness's own tests failed with the precise crash the shim used to hide, confirming the shim really was masking that bug and not something incidental. No other references to the shim exist anywhere else in the repo.

One open item: this PR's build-tests failures are a known pre-existing class of MiniCroft boot-leak failures that reproduce identically even with the shim still in place — a separate PR (#134) addresses that class. This should be rebased and re-run once #134 lands, and shouldn't be merged red in the meantime.

OCPPlayerHarness patched ovos_media.player.Playlist with a subclass that
silently dropped bare string constructor args, to paper over ovos-media's
Playlist("Search Results") startup crash (OpenVoiceOS/ovos-media#96). That
crash is fixed in ovos-media 0.4.3a1. Leaving the shim in place after the
fix only masks any future regression of the same class instead of exposing
it, so the harness now constructs the real, unpatched player.
@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

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 Plus

Run ID: 551e63c4-310f-4596-a1a6-d9f625b82916

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

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 added the fix label Aug 13, 2026
@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown

I've scrutinized every line of your PR. Here's the report. 🧐

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

📋 Repo Health

The health check is now complete. 🏁

✅ All required files present.

Latest Version: 1.6.6a1

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

⚖️ License Check

Ensuring the project remains 100% open source. 🔓

✅ No license violations found.

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

🔍 Lint

The automated results are now available for your perusal. 📂

ruff: issues found — see job log

🏷️ Release Preview

I've checked the 'Documentation Updates' link. 📖

Current: 1.6.6a1Next: 1.6.7a1

Signal Value
Label (none)
PR title fix: remove _TolerantPlaylist shim now that ovos-media 0.4.3a1 fixes Playlist crash
Bump build

✅ PR title follows conventional commit format.


🚀 Release Channel Compatibility

Predicted next version: 1.6.7a1

Channel Status Note Current Constraint
Stable Not in channel -
Testing Too new (must be <1.0.0) ovoscope>=0.7.2,<1.0.0
Alpha Compatible ovoscope>=1.6.6a1

🔒 Security (pip-audit)

Checking for any insecure data transmissions. 📡

✅ No known vulnerabilities found (79 packages scanned).

🔨 Build Tests

Checking the structural resonance of the codebase. 🔊

Python Build Install Tests
3.10 ⚠️
3.11 ⚠️
3.12 ⚠️
3.13 ⚠️
3.14 ⚠️

❌ 3.10: Install OK, tests failed
❌ 3.11: Install OK, tests failed
❌ 3.12: Install OK, tests failed
❌ 3.13: Install OK, tests failed
❌ 3.14: Install OK, tests failed
Check job logs for details.

📊 Coverage

How well do we know our own code? 🧠

58.9% total coverage

⚠️ Some tests failed — coverage figures may be incomplete.

Files below 80% coverage (15 files)
File Coverage Missing lines
ovoscope/simple_listener.py 0.0% 63
ovoscope/tts_intelligibility.py 0.0% 200
ovoscope/version.py 0.0% 5
ovoscope/classic_listener.py 18.2% 117
ovoscope/intent_cases.py 21.4% 151
ovoscope/pytest_plugin.py 39.8% 237
ovoscope/cli.py 47.8% 132
ovoscope/ocp.py 47.9% 61
ovoscope/e2e.py 53.5% 66
ovoscope/media.py 55.6% 104
ovoscope/listener.py 57.1% 127
ovoscope/voice_loop.py 59.2% 118
ovoscope/audio.py 63.4% 126
ovoscope/__init__.py 64.3% 350
ovoscope/media_provider.py 67.6% 23

Full report: download the coverage-report artifact.


The automation engine never sleeps. 🚂

@github-actions github-actions Bot added fix and removed fix labels Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant