gabriel / musehub public
feat BREAKING intel/languages task/intel-languages #3 / 4
AI Agent gabriel · 45 days ago · May 3, 2026 · Diff

feat(intel/languages): phase 2 — rewrite LanguagesProvider, no subprocess

Replace _run_muse + row-by-row upserts with the same pure-Python pattern used by TypeProvider and ApiSurfaceProvider:

1. Fetch HEAD snapshot manifest from musehub_snapshots.manifest_blob 2. language_of(file_path) — pure extension map from muse.plugins.code._query, zero I/O, zero subprocess 3. get_backend().get(object_id) — bytes from object store 4. parse_symbols(src, path) — pure AST, no fork 5. Aggregate file_count, symbol_count, kinds per language (imports excluded) 6. Compute pct = symbol_count / total * 100 7. Batch-upsert all rows (single chunk, typically < 20 languages)

kinds_json now populated from live parse output. language_of added to module-level imports for test patchability.

sha256:5535b814ba3a4e79f648992de4d836f7f042d40333701f9089a8f6a11e0f31f2 sha
sha256:b1b8dcf649b8eecbf2f9643abe3e95240d69b921620bd22905b106ac5a4de4c9 snapshot

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:5535b814ba3a4e79f648992de4d836f7f042d40333701f9089a8f6a11e0f31f2 --body "your comment"