Problem
After typing plugin events and the least-annotated modules, broad gaps remain across core utilities, CLI command handlers, shared test helpers, and most bundled plugins. Missing parameter and return types weaken static analysis across command dispatch and plugin boundaries. Some shared names also obscure whether an API accepts an album, an item, or any library model.
The BPD plugin still depends on the custom Bluelet concurrency layer, which makes its asynchronous control flow harder to type and maintain.
Expected behavior
- CLI commands, common option callbacks, plugin entrypoints, and shared helpers declare accurate parameter and return types.
- The shared album-or-item type variable has a name that reflects its actual constraint.
- Annotation linting permits intentionally unused underscore-prefixed arguments.
- BPD uses
asyncio while preserving serialized notifications, idle responses, and disconnect handling.
- The existing test and lint suites continue to pass.
Suggested fix
Apply typing in focused passes across the remaining modules, fixing exposed inconsistencies rather than masking them with broad Any types. Rename the shared model type variable, configure the annotation lint rule for dummy arguments, replace Bluelet in BPD with asyncio, and add targeted tests wherever type-driven changes affect runtime behavior.
Problem
After typing plugin events and the least-annotated modules, broad gaps remain across core utilities, CLI command handlers, shared test helpers, and most bundled plugins. Missing parameter and return types weaken static analysis across command dispatch and plugin boundaries. Some shared names also obscure whether an API accepts an album, an item, or any library model.
The BPD plugin still depends on the custom Bluelet concurrency layer, which makes its asynchronous control flow harder to type and maintain.
Expected behavior
asynciowhile preserving serialized notifications, idle responses, and disconnect handling.Suggested fix
Apply typing in focused passes across the remaining modules, fixing exposed inconsistencies rather than masking them with broad
Anytypes. Rename the shared model type variable, configure the annotation lint rule for dummy arguments, replace Bluelet in BPD withasyncio, and add targeted tests wherever type-driven changes affect runtime behavior.