feat!: replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java)#32
Conversation
BREAKING CHANGE: @opencodehub/lsp-oracle is deleted. Oracle-edge
provenance prefixes change from `{pyright,typescript-language-server,
gopls,rust-analyzer}@<ver>` to `scip:<indexer>@<ver>`. The
`+lsp-unconfirmed` demoted-reason suffix becomes `+scip-unconfirmed`.
What changes:
- New `@opencodehub/scip-ingest` package: hand-rolled SCIP protobuf
reader, caller→callee derivation via enclosing-range attribution,
graph materialization (blast-radius / reachability / SCC), and
per-language indexer runners (scip-typescript, scip-python, scip-go,
rust-analyzer --scip, scip-java).
- Single `scip-index` ingestion phase replaces the four per-language
LSP upgrade phases. Preserves the `confidence=1.0 + reason prefix`
contract that confidence-demote / summarize / mcp-confidence /
cli-analyze auto-cap rely on.
- Gym replay harness migrated to the same SCIP rails: ScipClient runs
the indexer once, parses, pre-builds occurrence + definition
lookups, answers queryCallers/References/Implementations in-memory.
- New output-side `codehub pack` CLI + `pack_codebase` MCP tool
wrapping repomix. ADR 0005 documents why repomix cannot replace the
tree-sitter input-side chunker (per-file blobs only, no symbol
metadata, tokenizer mismatch, tsx/kotlin gap).
Numbers:
- Net −12,037 LOC across the diff (−15,572 deletions, +3,535 additions).
- 1,414/1,414 tests pass across 14 packages.
- End-to-end smoke on the bundled calcpkg SCIP fixture: add() tops
blast ranking (bwd_reach=9), matching the POC.
Follow-ups (captured in .erpaval/sessions/session-f8a300bc/lessons.yaml):
regenerate gym corpus baselines against SCIP indexers, retarget
.github/workflows/gym.yml caches, supersede ADR 0003 with a
SCIP-indexer pin ADR, extend the parser to decode
SymbolInformation.relationships for first-class IMPLEMENTS edges.
Gym regression:
|
Gym regression:
|
Gym regression:
|
Follow-ups to the SCIP rip-and-replace (PR #32). The gym matrix now actually exercises the SCIP indexers end-to-end on every PR: CI workflow - .github/workflows/gym.yml rewritten around a pinned SCIP-indexer env block (scip-typescript@0.4.0, scip-python@0.6.6, scip-go@v0.2.3, rust-analyzer stable component, scip-java@0.12.3 when a corpus lands). Installs scip-python / scip-typescript via npm, scip-go via the scip-code/ fork path (go.mod moved mid-2025), rust-analyzer via rustup component. Builds scripts are opt-in via CODEHUB_ALLOW_BUILD_SCRIPTS=1. - Python jobs install fixture deps into a shared venv before indexing so scip-python can resolve pip-registered packages. Baselines + corpora - All 6 corpus YAMLs flipped to SCIP tool names (scip-python, scip-typescript, scip-go, rust-analyzer). Corpus path for sdk-python fixed from `sdk-python` to `python/sdk-python` to match the other corpus layouts. - packages/gym/baselines/manifest.jsonl regenerated end-to-end against the five SCIP indexers (62 records, 32 scored cases, 30 waived incl. 5 auto-waives for targets with zero matches inside the fixture). - All 62 corpus `expected:` sets rewritten from the new manifest via a new PEP 723 helper at `packages/gym/baselines/scripts/refresh-expected.py` (uv-runnable, auto-waives empty-result cases). - packages/gym/baselines/performance.json toolchain section flipped to SCIP indexers; fixture numbers are refreshed on each CI run via run-smoke.mjs. - run-analyze-with-stats.mjs + run-smoke.mjs renamed lspPhaseEdges -> scipPhaseEdges; reason-prefix SQL switched to `scip:%`. Parser + factory - scip-ingest parser now decodes SymbolInformation.relationships so IMPLEMENTS / TYPE_OF edges are first-class (DerivedRelation), no longer best-effort. scip-factory.queryImplementations uses them. - scip-factory gained a symbolName-based resolver path so corpus targets that pin (line=1, col=1) + symbolName still resolve, and queryCallers falls back to occurrence-containment attribution for class / trait callees that aren't function-like. - Monorepo TS runner now resolves tsconfig.json under `app/` (or any conventional subdir) and passes it as a positional project arg to scip-typescript so emitted doc paths stay rooted at projectRoot. - sdk-python registered as a proper git submodule pinned to 5a6df59502dc618781b85e80b01706a19cd45828. Docs - ADR 0003 marked superseded. - ADR 0006 added — SCIP indexer pin table + bump procedure. - OBJECTIVES.md / SPECS.md restated in SCIP terms (phase DAG, oracle contract, +scip-unconfirmed suffix). - plugins/opencodehub/skills/{opencodehub-guide,opencodehub-impact-analysis}/SKILL.md restated the confidenceBreakdown + SQL filter for SCIP prefixes. - packages/gym/README.md + corpus/*/README.md restated. - mise.toml dropped test:integration + validate:lsp-oracle; gym:* task descriptions updated; gym:refresh-expected task added. Verification - pnpm run check: green (lint + typecheck + 1,414 tests + banned-strings). - Local end-to-end gym replay on all 6 corpora: go/scip-go/callers cases=2 F1=1.000 go/scip-go/references cases=1 F1=1.000 python/scip-python cases=12 F1=1.000 rust/rust-analyzer cases=8 F1=1.000 typescript/scip-typescript cases=9 F1=1.000 gates: all passed. 32 scored, 0 failed, 30 waived.
Gym regression:
|
- gym (go) failed because scip-go v0.2.3 requires Go >= 1.25 (module declares it in its go.mod); the workflow was still pinned to Go 1.23 from the gopls era. Bump to 1.26 matches ADR 0006. - gym (rust) failed because rust-analyzer scip reads stdlib for cross-crate resolution and needs the rust-src component, not just rust-analyzer. Install both via dtolnay/rust-toolchain.
## Summary
- Rip `@opencodehub/lsp-oracle` and the four per-language LSP upgrade
phases; replace with a single `scip-index` phase backed by the new
`@opencodehub/scip-ingest` package. Full coverage of TypeScript, Python,
Go, Rust, and Java via the native SCIP indexers (scip-typescript,
scip-python, scip-go, rust-analyzer --scip, scip-java).
- Gym replay harness migrated to the same SCIP rails (`ScipClient` runs
the indexer once, pre-builds in-memory occurrence + definition lookups,
answers queryCallers/References/Implementations without re-decoding).
- New output-side `codehub pack` CLI + `pack_codebase` MCP tool wrapping
`repomix --compress`. ADR 0005 documents why repomix cannot replace the
tree-sitter input-side chunker (per-file text blobs, tokenizer mismatch,
missing tsx/kotlin coverage).
**BREAKING**: oracle-edge provenance prefixes change from
`{pyright,typescript-language-server,gopls,rust-analyzer}@<ver>` to
`scip:<indexer>@<ver>`. The `+lsp-unconfirmed` demoted-reason suffix
becomes `+scip-unconfirmed`. `LSP_PROVENANCE_PREFIXES` is kept as a
deprecated alias for `SCIP_PROVENANCE_PREFIXES` for one release.
## Numbers
- Net **−12,037 LOC** (−15,572 deletions, +3,535 additions) across 81
files.
- 1,414/1,414 tests pass across 14 packages.
- `pnpm run check` clean (lint + typecheck + tests + banned-strings).
- End-to-end smoke on the bundled `calcpkg.scip` fixture: `add()` tops
blast ranking with 9 backward callers — matches the reference POC
ranking.
## Architecture
```
source tree
├─ tree-sitter parse (unchanged: scan / parse / structure /
│ accesses / cross-file / mro / complexity)
└─ scip-index phase (NEW)
├─ detectLanguages(repoRoot)
├─ runIndexer(lang, …) → .opencodehub/scip/<lang>.scip
├─ parseScipIndex(buf) → ScipIndex
├─ deriveIndex(index) → {symbols, edges}
└─ CodeRelation(confidence=1.0, reason=\"scip:<indexer>@<ver>\")
│
▼
confidence-demote → summarize / mcp-confidence / analyze-auto-cap
```
## Follow-ups (non-blocking)
Captured in `.erpaval/sessions/session-f8a300bc/lessons.yaml`:
- Regenerate gym corpus baselines (`packages/gym/corpus/**/*.yaml`,
`baselines/manifest.jsonl`) against SCIP indexers.
- Retarget `.github/workflows/gym.yml` from
gopls/pyright/tsserver/rust-analyzer caches to scip-* caches.
- Supersede `docs/adr/0003-ci-toolchain-pins.md` with a SCIP-indexer pin
ADR.
- Extend the scip-ingest parser to decode
`SymbolInformation.relationships` so IMPLEMENTS/EXTENDS edges are
first-class (today the minimal reader best-efforts them).
## Test plan
- [ ] Manual: `pnpm install && pnpm run check` on a clean clone.
- [ ] Manual: `pnpm --filter @opencodehub/scip-ingest test` against the
bundled `calcpkg.scip` fixture (6 tests, covers parse / derive /
materialize).
- [ ] Manual: `codehub analyze` on a TS monorepo (requires
`scip-typescript` on PATH). Expect `scip-index` phase to emit edges with
`reason: scip:scip-typescript@<ver>`.
- [ ] Manual: `codehub pack` on any repo — produces
`.codehub/pack/repo.xml`.
- [ ] Manual: MCP `pack_codebase` tool via `codehub mcp` stdio.
- [ ] CI: full `pnpm -r test` matrix green (gym.yml changes deferred per
follow-ups — existing LSP-matrix workflow may break on this branch; that
is expected and captured in the follow-up list).
## Risk
- **Gym corpus baselines** were captured against the old LSP clients.
They still load and still drive the new SCIP replay harness, but
per-case expected result sets need regeneration. Failures on the
`gym.yml` workflow today are content-level, not structural. Mitigated by
not running gym replay in required CI for this PR.
- **scip-java / rust-analyzer execute build scripts** during indexing.
Gated behind `CODEHUB_ALLOW_BUILD_SCRIPTS=1` on untrusted workspaces;
skip reason surfaces in the phase output otherwise.
🤖 Automated release via release-please --- <details><summary>analysis: 0.1.1</summary> ## [0.1.1](analysis-v0.1.0...analysis-v0.1.1) (2026-05-12) ### Features * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Refactoring * consolidate repo-local dir references on META_DIR_NAME ([ce4b63d](ce4b63d)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/core-types bumped to 0.2.0 * @opencodehub/sarif bumped to 0.1.1 * @opencodehub/storage bumped to 0.1.1 </details> <details><summary>cli: 0.2.0</summary> ## [0.2.0](cli-v0.1.0...cli-v0.2.0) (2026-05-12) ### ⚠ BREAKING CHANGES * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ### Features * artifact factory + codehub init + CI UX fixes ([#38](#38)) ([d6ffafa](d6ffafa)) * **cli:** add --granularity flag to analyze for hierarchical embeddings ([defa9b6](defa9b6)) * **cli:** add --strict-detectors flag + ts-morph optional dep ([329f5c3](329f5c3)) * **cli:** add exact-name resolver and disambiguation flags to context ([7f279a9](7f279a9)) * **cli:** flip query hybrid-by-default with --bm25-only + --rerank-top-k ([3e924b5](3e924b5)) * detect-secrets as 20th scanner (Track B) ([#72](#72)) ([8fbdd61](8fbdd61)) * **embedder:** replace Arctic Embed XS with gte-modernbert-base ([#31](#31)) ([1214071](1214071)) * **ingestion:** WASM fallback via web-tree-sitter + --wasm-only flag ([cecb401](cecb401)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) * **mcp,cli:** join symbol summaries into query results (P04 surface) ([3d73b65](3d73b65)) * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ([1cceb24](1cceb24)) * **scanners:** persist partialFingerprint, baselineState, suppressedJson ([fb4585d](fb4585d)) * **search:** add filter-aware zoom retrieval across hierarchical tiers ([5ab80c4](5ab80c4)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) ### Bug Fixes * **cli:** accurate doctor native-binding + int8 weights checks ([fb569f9](fb569f9)) * **storage:** wire @ladybugdb/core binding, fix lbug open() guards, upgrade pnpm v10→v11 ([#93](#93)) ([78d6a85](78d6a85)) ### Performance * **embeddings:** cross-node batching + worker pool ([#33](#33)) ([acb59d0](acb59d0)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/analysis bumped to 0.1.1 * @opencodehub/core-types bumped to 0.2.0 * @opencodehub/embedder bumped to 0.1.1 * @opencodehub/ingestion bumped to 0.2.0 * @opencodehub/mcp bumped to 0.2.0 * @opencodehub/sarif bumped to 0.1.1 * @opencodehub/scanners bumped to 0.1.1 * @opencodehub/search bumped to 0.1.1 * @opencodehub/storage bumped to 0.1.1 </details> <details><summary>core-types: 0.2.0</summary> ## [0.2.0](core-types-v0.1.0...core-types-v0.2.0) (2026-05-12) ### ⚠ BREAKING CHANGES * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ### Features * **core-types:** scaffold v1.1 node-shape extensions for planned packets ([e17a4b5](e17a4b5)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ([1cceb24](1cceb24)) * **storage:** populate reserved complexity, coverage, deadness columns ([c81e4c3](c81e4c3)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Refactoring * **core-types:** centralize LanguageId in core-types ([4c33fc7](4c33fc7)) </details> <details><summary>embedder: 0.1.1</summary> ## [0.1.1](embedder-v0.1.0...embedder-v0.1.1) (2026-05-12) ### Features * detect-secrets as 20th scanner (Track B) ([#72](#72)) ([8fbdd61](8fbdd61)) * **embedder:** add SageMaker backend for remote embeddings ([9b5c53d](9b5c53d)) * **embedder:** replace Arctic Embed XS with gte-modernbert-base ([#31](#31)) ([1214071](1214071)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/core-types bumped to 0.2.0 </details> <details><summary>ingestion: 0.2.0</summary> ## [0.2.0](ingestion-v0.1.0...ingestion-v0.2.0) (2026-05-12) ### ⚠ BREAKING CHANGES * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ### Features * **cli:** add --strict-detectors flag + ts-morph optional dep ([329f5c3](329f5c3)) * **embedder:** add SageMaker backend for remote embeddings ([9b5c53d](9b5c53d)) * **embedder:** replace Arctic Embed XS with gte-modernbert-base ([#31](#31)) ([1214071](1214071)) * **ingestion:** [@doc](https://github.com/doc) captures + description field populated ([d63dfa6](d63dfa6)) * **ingestion:** add receiver resolver + detector precision (P06) ([431f428](431f428)) * **ingestion:** add top-20 framework detection catalog and dispatcher ([02f4864](02f4864)) * **ingestion:** capture MCP tool inputSchema as canonical JSON ([9872710](9872710)) * **ingestion:** emit CodeElement stubs for external imports ([49eefe7](49eefe7)) * **ingestion:** emit file-level and community-level embeddings ([09a117f](09a117f)) * **ingestion:** FastAPI, Spring, NestJS, Rails route detectors ([62bebfb](62bebfb)) * **ingestion:** Go IMPLEMENTS method-set resolver + C++20 import ([85c60f9](85c60f9)) * **ingestion:** nested .gitignore with layered negation ([40b5286](40b5286)) * **ingestion:** populate DependencyNode license from manifest ([f947194](f947194)) * **ingestion:** provider-driven complexity + Halstead volume ([5e1379a](5e1379a)) * **ingestion:** soft-fail summarize on credential errors, thread summaryModel ([d90eb38](d90eb38)) * **ingestion:** WASM fallback via web-tree-sitter + --wasm-only flag ([cecb401](cecb401)) * **ingestion:** wire framework catalog into profile phase ([d491401](d491401)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ([1cceb24](1cceb24)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) ### Bug Fixes * **ingestion:** enumerate git submodule paths in the scan phase ([d290d04](d290d04)) * **ingestion:** skip submodule paths in the ownership blame pass ([e28f3e6](e28f3e6)) * **scip-ingest:** resolve caller/callee correctly for SCIP edges ([c15f928](c15f928)) ### Performance * **embeddings:** cross-node batching + worker pool ([#33](#33)) ([acb59d0](acb59d0)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Refactoring * consolidate repo-local dir references on META_DIR_NAME ([ce4b63d](ce4b63d)) * **core-types:** centralize LanguageId in core-types ([4c33fc7](4c33fc7)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/analysis bumped to 0.1.1 * @opencodehub/core-types bumped to 0.2.0 * @opencodehub/embedder bumped to 0.1.1 * @opencodehub/storage bumped to 0.1.1 </details> <details><summary>mcp: 0.2.0</summary> ## [0.2.0](mcp-v0.1.0...mcp-v0.2.0) (2026-05-12) ### ⚠ BREAKING CHANGES * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ### Features * **embedder:** replace Arctic Embed XS with gte-modernbert-base ([#31](#31)) ([1214071](1214071)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) * **mcp,cli:** join symbol summaries into query results (P04 surface) ([3d73b65](3d73b65)) * **mcp:** short-circuit list_findings_delta via stored baselineState ([4d9c187](4d9c187)) * **mcp:** surface structured FrameworkDetection in project_profile tool ([15fb309](15fb309)) * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ([1cceb24](1cceb24)) * **search:** add filter-aware zoom retrieval across hierarchical tiers ([5ab80c4](5ab80c4)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Refactoring * **mcp:** consume shared tryOpenEmbedder + embeddingsPopulated from @opencodehub/search ([54f00de](54f00de)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/analysis bumped to 0.1.1 * @opencodehub/core-types bumped to 0.2.0 * @opencodehub/embedder bumped to 0.1.1 * @opencodehub/sarif bumped to 0.1.1 * @opencodehub/scanners bumped to 0.1.1 * @opencodehub/search bumped to 0.1.1 * @opencodehub/storage bumped to 0.1.1 </details> <details><summary>sarif: 0.1.1</summary> ## [0.1.1](sarif-v0.1.0...sarif-v0.1.1) (2026-05-12) ### Features * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) </details> <details><summary>scanners: 0.1.1</summary> ## [0.1.1](scanners-v0.1.0...scanners-v0.1.1) (2026-05-12) ### Features * detect-secrets as 20th scanner (Track B) ([#72](#72)) ([8fbdd61](8fbdd61)) * **embedder:** replace Arctic Embed XS with gte-modernbert-base ([#31](#31)) ([1214071](1214071)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/sarif bumped to 0.1.1 </details> <details><summary>search: 0.1.1</summary> ## [0.1.1](search-v0.1.0...search-v0.1.1) (2026-05-12) ### Features * detect-secrets as 20th scanner (Track B) ([#72](#72)) ([8fbdd61](8fbdd61)) * **embedder:** replace Arctic Embed XS with gte-modernbert-base ([#31](#31)) ([1214071](1214071)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) * **search:** add filter-aware zoom retrieval across hierarchical tiers ([5ab80c4](5ab80c4)) * **search:** extract tryOpenEmbedder + embeddingsPopulated, demote NullEmbedder throw ([c4cc680](c4cc680)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/core-types bumped to 0.2.0 * @opencodehub/storage bumped to 0.1.1 </details> <details><summary>storage: 0.1.1</summary> ## [0.1.1](storage-v0.1.0...storage-v0.1.1) (2026-05-12) ### Features * **embedder:** replace Arctic Embed XS with gte-modernbert-base ([#31](#31)) ([1214071](1214071)) * **ingestion:** emit file-level and community-level embeddings ([09a117f](09a117f)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) * **mcp:** short-circuit list_findings_delta via stored baselineState ([4d9c187](4d9c187)) * **search:** add filter-aware zoom retrieval across hierarchical tiers ([5ab80c4](5ab80c4)) * **storage:** add granularity column to embeddings for hierarchical retrieval ([b5bd5f8](b5bd5f8)) * **storage:** add summary fields to SearchResult and batch lookup helper ([4944a56](4944a56)) * **storage:** persist structured FrameworkDetection in frameworks_json ([75423fe](75423fe)) * **storage:** populate reserved complexity, coverage, deadness columns ([c81e4c3](c81e4c3)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) ### Bug Fixes * **storage:** wire @ladybugdb/core binding, fix lbug open() guards, upgrade pnpm v10→v11 ([#93](#93)) ([78d6a85](78d6a85)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/core-types bumped to 0.2.0 </details> <details><summary>root: 0.2.0</summary> ## [0.2.0](root-v0.1.1...root-v0.2.0) (2026-05-12) ### ⚠ BREAKING CHANGES * **release:** footers in the commit log. * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ### Features * artifact factory + codehub init + CI UX fixes ([#38](#38)) ([d6ffafa](d6ffafa)) * cleanups ([bf1536e](bf1536e)) * **cli:** add --granularity flag to analyze for hierarchical embeddings ([defa9b6](defa9b6)) * **cli:** add --strict-detectors flag + ts-morph optional dep ([329f5c3](329f5c3)) * **cli:** add exact-name resolver and disambiguation flags to context ([7f279a9](7f279a9)) * **cli:** flip query hybrid-by-default with --bm25-only + --rerank-top-k ([3e924b5](3e924b5)) * **core-types:** scaffold v1.1 node-shape extensions for planned packets ([e17a4b5](e17a4b5)) * detect-secrets as 20th scanner (Track B) ([#72](#72)) ([8fbdd61](8fbdd61)) * **embedder:** add SageMaker backend for remote embeddings ([9b5c53d](9b5c53d)) * **embedder:** replace Arctic Embed XS with gte-modernbert-base ([#31](#31)) ([1214071](1214071)) * **gym:** add rust-spike trigger benchmark ([43c26d3](43c26d3)) * **ingestion:** [@doc](https://github.com/doc) captures + description field populated ([d63dfa6](d63dfa6)) * **ingestion:** add receiver resolver + detector precision (P06) ([431f428](431f428)) * **ingestion:** add top-20 framework detection catalog and dispatcher ([02f4864](02f4864)) * **ingestion:** capture MCP tool inputSchema as canonical JSON ([9872710](9872710)) * **ingestion:** emit CodeElement stubs for external imports ([49eefe7](49eefe7)) * **ingestion:** emit file-level and community-level embeddings ([09a117f](09a117f)) * **ingestion:** FastAPI, Spring, NestJS, Rails route detectors ([62bebfb](62bebfb)) * **ingestion:** Go IMPLEMENTS method-set resolver + C++20 import ([85c60f9](85c60f9)) * **ingestion:** nested .gitignore with layered negation ([40b5286](40b5286)) * **ingestion:** populate DependencyNode license from manifest ([f947194](f947194)) * **ingestion:** provider-driven complexity + Halstead volume ([5e1379a](5e1379a)) * **ingestion:** soft-fail summarize on credential errors, thread summaryModel ([d90eb38](d90eb38)) * **ingestion:** WASM fallback via web-tree-sitter + --wasm-only flag ([cecb401](cecb401)) * **ingestion:** wire framework catalog into profile phase ([d491401](d491401)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) * **mcp,cli:** join symbol summaries into query results (P04 surface) ([3d73b65](3d73b65)) * **mcp:** short-circuit list_findings_delta via stored baselineState ([4d9c187](4d9c187)) * **mcp:** surface structured FrameworkDetection in project_profile tool ([15fb309](15fb309)) * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ([1cceb24](1cceb24)) * **scanners:** persist partialFingerprint, baselineState, suppressedJson ([fb4585d](fb4585d)) * **search:** add filter-aware zoom retrieval across hierarchical tiers ([5ab80c4](5ab80c4)) * **search:** extract tryOpenEmbedder + embeddingsPopulated, demote NullEmbedder throw ([c4cc680](c4cc680)) * **storage:** add granularity column to embeddings for hierarchical retrieval ([b5bd5f8](b5bd5f8)) * **storage:** add summary fields to SearchResult and batch lookup helper ([4944a56](4944a56)) * **storage:** persist structured FrameworkDetection in frameworks_json ([75423fe](75423fe)) * **storage:** populate reserved complexity, coverage, deadness columns ([c81e4c3](c81e4c3)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) * v1 finalize Track D — dogfood polish (6 ACs) ([#75](#75)) ([e9da048](e9da048)) ### Bug Fixes * **ci:** pin gopls@v0.18.1 for Go 1.23 + add pnpm build-script allowlist ([c78b31d](c78b31d)) * **cli:** accurate doctor native-binding + int8 weights checks ([fb569f9](fb569f9)) * **deps:** bump minimatch override to 9.0.7 (GHSA-23c5/-7r86) ([7f6e2ae](7f6e2ae)) * **deps:** pin brace-expansion/minimatch/picomatch to patched versions ([5a7d1e0](5a7d1e0)) * **deps:** refresh pnpm-lock.yaml with ts-morph optional dep from P06 ([0dfee11](0dfee11)) * **docs:** rename agents/*.md to .mdx so JSX components render ([#89](#89)) ([d2d8bc7](d2d8bc7)) * **gym:** update corpus test waiver ID to window.desktop after PR [#38](#38) rename ([933b5f2](933b5f2)) * **ingestion:** enumerate git submodule paths in the scan phase ([d290d04](d290d04)) * **ingestion:** skip submodule paths in the ownership blame pass ([e28f3e6](e28f3e6)) * **repo:** replace stale lsp-oracle tsconfig reference with scip-ingest ([0ce5e29](0ce5e29)) * **scip-ingest:** resolve caller/callee correctly for SCIP edges ([c15f928](c15f928)) * **storage:** wire @ladybugdb/core binding, fix lbug open() guards, upgrade pnpm v10→v11 ([#93](#93)) ([78d6a85](78d6a85)) ### Performance * **embeddings:** cross-node batching + worker pool ([#33](#33)) ([acb59d0](acb59d0)) ### Documentation * add SPECS, USECASE, and OBJECTIVES docs ([f3120de](f3120de)) * **adr:** record hierarchical embeddings decision (0004) ([6d28631](6d28631)) * **adr:** update 0002 with P09 Phase 1 measurements ([92b9a1c](92b9a1c)) * clean-slate v1 — drop migration prose, milestone framing, 0.x caveats ([#90](#90)) ([af88fbc](af88fbc)) * compound — durable lessons from docs site revival ([#88](#88)) ([95642f0](95642f0)) * compound — durable lessons from v1 upstream bug sweep ([#77](#77)) ([60eef57](60eef57)) * deep refresh + sync + new architecture pages ([3693ddd](3693ddd)) * **repo:** durable lesson — set NODE_ENV at script scope for astro in CI ([18c159b](18c159b)) * **repo:** durable lesson — stale tsconfig project references ([ea67d7a](ea67d7a)) * **repo:** EARS 006 spec — v1 finalize (M7 + constraint-10 + debt + dogfood) ([67198e3](67198e3)) * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) * restore Starlight site + refresh for v1 + agent-friendly USAGE section ([#87](#87)) ([d9b2b30](d9b2b30)) * **site:** add Astro Starlight docs site + GitHub Pages deploy ([#34](#34)) ([5ce0191](5ce0191)) * **site:** add llms.txt + Copy-as-Markdown + Open-in-ChatGPT/Claude ([#36](#36)) ([149ba4e](149ba4e)) * **site:** inject LLM-nav banner + 'See also' footer into every .md ([#37](#37)) ([77190a5](77190a5)) * strip legacy stanzas + capture session lessons ([85f6881](85f6881)) ### Refactoring * consolidate repo-local dir references on META_DIR_NAME ([ce4b63d](ce4b63d)) * **core-types:** centralize LanguageId in core-types ([4c33fc7](4c33fc7)) * **mcp:** consume shared tryOpenEmbedder + embeddingsPopulated from @opencodehub/search ([54f00de](54f00de)) * **plugin:** file-level packet skeletons for codehub-document ([40a09c8](40a09c8)) ### CI * **release:** keep 0.x semver — breaking changes bump minor, feats bump patch ([a6ee4bf](a6ee4bf)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Laith Al-Saadoon <alsaadoonlaith@gmail.com> Co-authored-by: Laith Al-Saadoon <9553966+theagenticguy@users.noreply.github.com>
🤖 Automated release via release-please --- <details><summary>analysis: 0.1.2</summary> ## [0.1.2](analysis-v0.1.1...analysis-v0.1.2) (2026-05-12) ### Features * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Refactoring * consolidate repo-local dir references on META_DIR_NAME ([ce4b63d](ce4b63d)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/core-types bumped to 0.3.0 * @opencodehub/sarif bumped to 0.1.2 * @opencodehub/storage bumped to 0.1.2 * @opencodehub/wiki bumped to 0.1.1 </details> <details><summary>cli: 0.2.2</summary> ## [0.2.2](cli-v0.2.1...cli-v0.2.2) (2026-05-12) ### Bug Fixes * **repo:** track all 17 packages in release-please + republish pack/cobol-proleap on fixed ingestion ([f4656d5](f4656d5)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/analysis bumped to 0.1.2 * @opencodehub/core-types bumped to 0.3.0 * @opencodehub/embedder bumped to 0.1.2 * @opencodehub/ingestion bumped to 0.3.1 * @opencodehub/mcp bumped to 0.3.0 * @opencodehub/pack bumped to 0.1.2 * @opencodehub/policy bumped to 0.1.1 * @opencodehub/sarif bumped to 0.1.2 * @opencodehub/scanners bumped to 0.1.2 * @opencodehub/search bumped to 0.1.2 * @opencodehub/storage bumped to 0.1.2 * @opencodehub/wiki bumped to 0.1.1 </details> <details><summary>cobol-proleap: 0.1.2</summary> ## [0.1.2](cobol-proleap-v0.1.1...cobol-proleap-v0.1.2) (2026-05-12) ### Bug Fixes * **repo:** track all 17 packages in release-please + republish pack/cobol-proleap on fixed ingestion ([f4656d5](f4656d5)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/core-types bumped to 0.3.0 * @opencodehub/ingestion bumped to 0.3.1 </details> <details><summary>core-types: 0.3.0</summary> ## [0.3.0](core-types-v0.2.0...core-types-v0.3.0) (2026-05-12) ### ⚠ BREAKING CHANGES * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ### Features * **core-types:** scaffold v1.1 node-shape extensions for planned packets ([e17a4b5](e17a4b5)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ([1cceb24](1cceb24)) * **storage:** populate reserved complexity, coverage, deadness columns ([c81e4c3](c81e4c3)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Refactoring * **core-types:** centralize LanguageId in core-types ([4c33fc7](4c33fc7)) </details> <details><summary>embedder: 0.1.2</summary> ## [0.1.2](embedder-v0.1.1...embedder-v0.1.2) (2026-05-12) ### Features * detect-secrets as 20th scanner (Track B) ([#72](#72)) ([8fbdd61](8fbdd61)) * **embedder:** add SageMaker backend for remote embeddings ([9b5c53d](9b5c53d)) * **embedder:** replace Arctic Embed XS with gte-modernbert-base ([#31](#31)) ([1214071](1214071)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/core-types bumped to 0.3.0 </details> <details><summary>frameworks: 0.1.1</summary> ## [0.1.1](frameworks-v0.1.0...frameworks-v0.1.1) (2026-05-12) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/core-types bumped to 0.3.0 </details> <details><summary>ingestion: 0.3.1</summary> ## [0.3.1](ingestion-v0.3.0...ingestion-v0.3.1) (2026-05-12) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/analysis bumped to 0.1.2 * @opencodehub/core-types bumped to 0.3.0 * @opencodehub/embedder bumped to 0.1.2 * @opencodehub/frameworks bumped to 0.1.1 * @opencodehub/scip-ingest bumped to 0.2.0 * @opencodehub/storage bumped to 0.1.2 * @opencodehub/summarizer bumped to 0.1.1 </details> <details><summary>mcp: 0.3.0</summary> ## [0.3.0](mcp-v0.2.0...mcp-v0.3.0) (2026-05-12) ### ⚠ BREAKING CHANGES * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ### Features * **embedder:** replace Arctic Embed XS with gte-modernbert-base ([#31](#31)) ([1214071](1214071)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) * **mcp,cli:** join symbol summaries into query results (P04 surface) ([3d73b65](3d73b65)) * **mcp:** short-circuit list_findings_delta via stored baselineState ([4d9c187](4d9c187)) * **mcp:** surface structured FrameworkDetection in project_profile tool ([15fb309](15fb309)) * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ([1cceb24](1cceb24)) * **search:** add filter-aware zoom retrieval across hierarchical tiers ([5ab80c4](5ab80c4)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Refactoring * **mcp:** consume shared tryOpenEmbedder + embeddingsPopulated from @opencodehub/search ([54f00de](54f00de)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/analysis bumped to 0.1.2 * @opencodehub/core-types bumped to 0.3.0 * @opencodehub/embedder bumped to 0.1.2 * @opencodehub/pack bumped to 0.1.2 * @opencodehub/sarif bumped to 0.1.2 * @opencodehub/scanners bumped to 0.1.2 * @opencodehub/search bumped to 0.1.2 * @opencodehub/storage bumped to 0.1.2 </details> <details><summary>pack: 0.1.2</summary> ## [0.1.2](pack-v0.1.1...pack-v0.1.2) (2026-05-12) ### Features * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) ### Bug Fixes * **repo:** track all 17 packages in release-please + republish pack/cobol-proleap on fixed ingestion ([f4656d5](f4656d5)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/analysis bumped to 0.1.2 * @opencodehub/core-types bumped to 0.3.0 * @opencodehub/ingestion bumped to 0.3.1 * @opencodehub/sarif bumped to 0.1.2 * @opencodehub/storage bumped to 0.1.2 </details> <details><summary>policy: 0.1.1</summary> ## [0.1.1](policy-v0.1.0...policy-v0.1.1) (2026-05-12) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) </details> <details><summary>sarif: 0.1.2</summary> ## [0.1.2](sarif-v0.1.1...sarif-v0.1.2) (2026-05-12) ### Features * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) </details> <details><summary>scanners: 0.1.2</summary> ## [0.1.2](scanners-v0.1.1...scanners-v0.1.2) (2026-05-12) ### Features * detect-secrets as 20th scanner (Track B) ([#72](#72)) ([8fbdd61](8fbdd61)) * **embedder:** replace Arctic Embed XS with gte-modernbert-base ([#31](#31)) ([1214071](1214071)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/sarif bumped to 0.1.2 </details> <details><summary>scip-ingest: 0.2.0</summary> ## [0.2.0](scip-ingest-v0.1.0...scip-ingest-v0.2.0) (2026-05-12) ### ⚠ BREAKING CHANGES * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ### Features * detect-secrets as 20th scanner (Track B) ([#72](#72)) ([8fbdd61](8fbdd61)) * replace LSP oracle with SCIP indexers (TS/Py/Go/Rust/Java) ([#32](#32)) ([1cceb24](1cceb24)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) ### Bug Fixes * **scip-ingest:** resolve caller/callee correctly for SCIP edges ([c15f928](c15f928)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Refactoring * consolidate repo-local dir references on META_DIR_NAME ([ce4b63d](ce4b63d)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/analysis bumped to 0.1.2 * @opencodehub/core-types bumped to 0.3.0 </details> <details><summary>search: 0.1.2</summary> ## [0.1.2](search-v0.1.1...search-v0.1.2) (2026-05-12) ### Features * detect-secrets as 20th scanner (Track B) ([#72](#72)) ([8fbdd61](8fbdd61)) * **embedder:** replace Arctic Embed XS with gte-modernbert-base ([#31](#31)) ([1214071](1214071)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) * **search:** add filter-aware zoom retrieval across hierarchical tiers ([5ab80c4](5ab80c4)) * **search:** extract tryOpenEmbedder + embeddingsPopulated, demote NullEmbedder throw ([c4cc680](c4cc680)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/core-types bumped to 0.3.0 * @opencodehub/storage bumped to 0.1.2 </details> <details><summary>storage: 0.1.2</summary> ## [0.1.2](storage-v0.1.1...storage-v0.1.2) (2026-05-12) ### Features * **embedder:** replace Arctic Embed XS with gte-modernbert-base ([#31](#31)) ([1214071](1214071)) * **ingestion:** emit file-level and community-level embeddings ([09a117f](09a117f)) * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) * **mcp:** short-circuit list_findings_delta via stored baselineState ([4d9c187](4d9c187)) * **search:** add filter-aware zoom retrieval across hierarchical tiers ([5ab80c4](5ab80c4)) * **storage:** add granularity column to embeddings for hierarchical retrieval ([b5bd5f8](b5bd5f8)) * **storage:** add summary fields to SearchResult and batch lookup helper ([4944a56](4944a56)) * **storage:** persist structured FrameworkDetection in frameworks_json ([75423fe](75423fe)) * **storage:** populate reserved complexity, coverage, deadness columns ([c81e4c3](c81e4c3)) * v1 finalize Track C — debt sweep (7 ACs) ([#73](#73)) ([06d2bb1](06d2bb1)) ### Bug Fixes * **storage:** wire @ladybugdb/core binding, fix lbug open() guards, upgrade pnpm v10→v11 ([#93](#93)) ([78d6a85](78d6a85)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/core-types bumped to 0.3.0 </details> <details><summary>summarizer: 0.1.1</summary> ## [0.1.1](summarizer-v0.1.0...summarizer-v0.1.1) (2026-05-12) ### Features * initial public release of opencodehub v0.1.1 ([3f23006](3f23006)) ### Documentation * deep refresh + sync + new architecture pages ([3693ddd](3693ddd)) * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) </details> <details><summary>wiki: 0.1.1</summary> ## [0.1.1](wiki-v0.1.0...wiki-v0.1.1) (2026-05-12) ### Features * detect-secrets as 20th scanner (Track B) ([#72](#72)) ([8fbdd61](8fbdd61)) * M7 LadybugDB default + IGraphStore abstraction hardening (Track A) ([#71](#71)) ([0175113](0175113)) ### Documentation * **repo:** pre-publish npm readiness — READMEs, GOVERNANCE, CODEOWNERS, package metadata ([dd10f72](dd10f72)) ### Dependencies * The following workspace dependencies were updated * dependencies * @opencodehub/core-types bumped to 0.3.0 * @opencodehub/storage bumped to 0.1.2 * @opencodehub/summarizer bumped to 0.1.1 </details> <details><summary>root: 0.3.1</summary> ## [0.3.1](root-v0.3.0...root-v0.3.1) (2026-05-12) ### Bug Fixes * **repo:** track all 17 packages in release-please + republish pack/cobol-proleap on fixed ingestion ([f4656d5](f4656d5)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Laith Al-Saadoon <alsaadoonlaith@gmail.com>
Summary
@opencodehub/lsp-oracleand the four per-language LSP upgrade phases; replace with a singlescip-indexphase backed by the new@opencodehub/scip-ingestpackage. Full coverage of TypeScript, Python, Go, Rust, and Java via the native SCIP indexers (scip-typescript, scip-python, scip-go, rust-analyzer --scip, scip-java).ScipClientruns the indexer once, pre-builds in-memory occurrence + definition lookups, answers queryCallers/References/Implementations without re-decoding).codehub packCLI +pack_codebaseMCP tool wrappingrepomix --compress. ADR 0005 documents why repomix cannot replace the tree-sitter input-side chunker (per-file text blobs, tokenizer mismatch, missing tsx/kotlin coverage).BREAKING: oracle-edge provenance prefixes change from
{pyright,typescript-language-server,gopls,rust-analyzer}@<ver>toscip:<indexer>@<ver>. The+lsp-unconfirmeddemoted-reason suffix becomes+scip-unconfirmed.LSP_PROVENANCE_PREFIXESis kept as a deprecated alias forSCIP_PROVENANCE_PREFIXESfor one release.Numbers
pnpm run checkclean (lint + typecheck + tests + banned-strings).calcpkg.scipfixture:add()tops blast ranking with 9 backward callers — matches the reference POC ranking.Architecture
Follow-ups (non-blocking)
Captured in
.erpaval/sessions/session-f8a300bc/lessons.yaml:packages/gym/corpus/**/*.yaml,baselines/manifest.jsonl) against SCIP indexers..github/workflows/gym.ymlfrom gopls/pyright/tsserver/rust-analyzer caches to scip-* caches.docs/adr/0003-ci-toolchain-pins.mdwith a SCIP-indexer pin ADR.SymbolInformation.relationshipsso IMPLEMENTS/EXTENDS edges are first-class (today the minimal reader best-efforts them).Test plan
pnpm install && pnpm run checkon a clean clone.pnpm --filter @opencodehub/scip-ingest testagainst the bundledcalcpkg.scipfixture (6 tests, covers parse / derive / materialize).codehub analyzeon a TS monorepo (requiresscip-typescripton PATH). Expectscip-indexphase to emit edges withreason: scip:scip-typescript@<ver>.codehub packon any repo — produces.codehub/pack/repo.xml.pack_codebasetool viacodehub mcpstdio.pnpm -r testmatrix green (gym.yml changes deferred per follow-ups — existing LSP-matrix workflow may break on this branch; that is expected and captured in the follow-up list).Risk
gym.ymlworkflow today are content-level, not structural. Mitigated by not running gym replay in required CI for this PR.CODEHUB_ALLOW_BUILD_SCRIPTS=1on untrusted workspaces; skip reason surfaces in the phase output otherwise.