Bug
Two definitions disagree:
- live:
slots/state.py:124 frozenset({"kokoro","qwen3tts","moonshine","vibevoice"}) (re-exported via slots/__init__.py:20)
- dead:
providers/kokoro.py:59 frozenset({"kokoro","comfyui"})
Nothing imports hal0.providers.kokoro.SELF_MANAGED_PROVIDERS (only tests + slots/__init__ import the symbol). The kokoro copy is unused and wrong (lacks qwen3tts/moonshine/vibevoice, wrongly includes comfyui). qwen3tts.py:36-37 docstring asserts qwen3tts is in the set — true for the live one, contradicted by the kokoro constant. A contributor reading kokoro.py would get the wrong answer.
Fix
Delete the dead SELF_MANAGED_PROVIDERS in kokoro.py:59 (and its docstring refs) so slots/state.py:124 is the single source of truth.
Acceptance criteria
Filed from the v0.8.2b3 codebase assessment sweep; finding adversarially verified against HEAD (`chore/release-0.8.2b3`).
Bug
Two definitions disagree:
slots/state.py:124frozenset({"kokoro","qwen3tts","moonshine","vibevoice"})(re-exported viaslots/__init__.py:20)providers/kokoro.py:59frozenset({"kokoro","comfyui"})Nothing imports
hal0.providers.kokoro.SELF_MANAGED_PROVIDERS(only tests +slots/__init__import the symbol). The kokoro copy is unused and wrong (lacksqwen3tts/moonshine/vibevoice, wrongly includescomfyui).qwen3tts.py:36-37docstring asserts qwen3tts is in the set — true for the live one, contradicted by the kokoro constant. A contributor readingkokoro.pywould get the wrong answer.Fix
Delete the dead
SELF_MANAGED_PROVIDERSinkokoro.py:59(and its docstring refs) soslots/state.py:124is the single source of truth.Acceptance criteria
kokoro.py; imports unaffectedslots/state.pyis the only definitionFiled from the v0.8.2b3 codebase assessment sweep; finding adversarially verified against HEAD (`chore/release-0.8.2b3`).