Skip to content

Keep package catalog in sync with registered loaders#86

Merged
0xShug0 merged 3 commits into
0xShug0:mainfrom
lapy:fix/loader-catalog-sync-orphans
Jul 21, 2026
Merged

Keep package catalog in sync with registered loaders#86
0xShug0 merged 3 commits into
0xShug0:mainfrom
lapy:fix/loader-catalog-sync-orphans

Conversation

@lapy

@lapy lapy commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Summary

After the machine-readable catalog contract (#74), integrators treat model_manager list --json family and audiocpp_cli --list-loaders as authoritative. Several packages were still advertised as installable even though their loaders are not in this release tree.

This PR aims to bridge the gap but is really intended as a suggestion to improve developer experience and software contracts. It would be nice to have a conversation about this.

Mismatch examples (this tree)

Family / stub In registry.cpp Loader sources under src/ / include/ Catalog
kokoro_tts commented stub only absent (only tests/kokoro_tts/*) was live HF snapshot → now UnsupportedSource
higgs_tts / catalog higgs_audio_tts commented stub (higgs_tts) absent was live → now UnsupportedSource
parakeet_tdt commented stub only absent was live → now UnsupportedSource
vietneu_tts registered present package id inferred wrong → set family="vietneu_tts"
silero_vad registered present no package by design (bundled)

Changes

  • Mark the parked packages above as UnsupportedSource
  • Set explicit family where id inference does not match the loader id
  • Add maintainer docs + tools/check_loader_catalog_sync.py (registry ↔ catalog ↔ README; CI on Linux/macOS/Windows)
  • Update README package table / CONTRIBUTING / usage docs

In-repo docs and the sync script stay generic; concrete mismatch cases are listed here only.

Maintainer rule (suggestion)

Never leave a live SnapshotSource for a loader that is commented out of registry.cpp. Either ship the loader sources + register them, or mark the package UnsupportedSource and README Unavailable.

When adding a family: one family string everywhere (loader, make_*_loader, model_specs/, ModelPackage.family, README).

Test plan

  • Confirmed no in-tree loader sources for the parked stubs above
  • python3 tools/check_loader_catalog_sync.py --self-test
  • python3 tools/check_loader_catalog_sync.py
  • Parked packages report installable: false via package_payload
  • CI green on this PR

lapy added 3 commits July 21, 2026 13:44
Mark Kokoro, Higgs TTS, and Parakeet packages as UnsupportedSource while
their loaders stay commented out of registry.cpp, set VieNeu family
explicitly, and add maintainer docs plus a CI sync check so installable
catalog entries cannot drift from --list-loaders again.
Re-verify parked families have no in-tree loader sources, expand the sync
script with parked aliases, README table enforcement, bundled-loader
exceptions, and self-tests, and fill missing README package rows so CI
keeps catalog, registry, and docs aligned.
Leave concrete catalog/loader mismatch cases in the PR description; keep
in-repo sync tooling and maintainer docs generic aside from required
config maps.
@0xShug0

0xShug0 commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Thank you @lapy! This is a thoughtful improvement. Somehow, the current sync feels brittle, but it’s my fault because of the framework’s current design. In the long term, I do want to get rid of Python and use json to define downloadable model (and even model registration) similar to the current model spec system (#53 (comment)). Further, there could be a single source of truth for model metadata, which would make sync easier.

As we move toward GGUF, model downloading and management can become much simpler, and the Python manager will eventually become a legacy tool.

Happy to hear your thoughts on this direction!

@0xShug0
0xShug0 merged commit 9a0ccb3 into 0xShug0:main Jul 21, 2026
4 checks passed
dleiferives pushed a commit to dleiferives/audio.cpp that referenced this pull request Jul 25, 2026
Keep package catalog in sync with registered loaders
Anc813 pushed a commit to Anc813/audio.cpp that referenced this pull request Jul 25, 2026
Keep package catalog in sync with registered loaders
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants