Skip to content

feat: artifact factory + codehub init + CI UX fixes#38

Merged
theagenticguy merged 7 commits into
mainfrom
feat/artifact-factory
Apr 28, 2026
Merged

feat: artifact factory + codehub init + CI UX fixes#38
theagenticguy merged 7 commits into
mainfrom
feat/artifact-factory

Conversation

@theagenticguy
Copy link
Copy Markdown
Owner

Summary

Ships spec 001 (the laptop artifact factory) end-to-end in a single, self-contained branch.

  • Four new skills in plugins/opencodehub/skills/codehub-document, codehub-pr-description, codehub-onboarding, codehub-contract-map — all P0 per .erpaval/specs/001-claude-code-artifact-surface/spec.md. The flagship codehub-document runs the codeprobe-pattern four-phase orchestration (Phase 0 precompute → AB parallel → CD parallel → E deterministic assembler) in both single-repo and group mode.
  • Six new doc-* subagentsdoc-architecture, doc-reference, doc-behavior, doc-analysis, doc-diagrams, doc-cross-repo (group-only). All 8-section scaffold, Sonnet model, tool-allowlisted.
  • codehub init — single-command project-scope bootstrap. Copies the plugin into <repo>/.claude/, writes .mcp.json, appends .codehub/ to .gitignore, seeds opencodehub.policy.yaml. Check .claude/ into git and every teammate gets the plugin on clone.
  • PostToolUse staleness hook — non-blocking systemMessage after git mutations when graph_hash drifts and .docmeta.json exists. Never auto-regenerates; requires user consent.
  • Three ADRs — 0007 (artifact factory), 0008 (codeprobe pattern port), 0009 (output conventions) — record the load-bearing decisions.
  • Dogfood fixes (ADR 0010) — three small CLI-UX fixes discovered by running the flow against a private two-repo workspace:
    1. --embeddings now defaults --embeddings-workers to "auto" (single-threaded ONNX on 100k nodes was a 45-min foot-gun).
    2. codehub list gains a HEALTH column that flags dangling registry entries (⚠ missing path) and cleaned indexes (⚠ no graph.duckdb).
    3. Phase 0 of codehub-document now requires a schema preflight — subagents probe information_schema.columns once, cached in .prefetch.md, to prevent Binder Error failures from guessed column names.

Scope decisions locked (not timeline, not revisitable without discussion)

  • Self-hosted OSS only. No hosted tier, no managed service, no OpenCodeHub-operated infrastructure.
  • No remote / HTTP MCP server. Stdio MCP on the Claude Code plugin only.
  • No agent SDK. Agents consume OpenCodeHub via the Claude Code plugin or by shelling out to the codehub CLI.
  • No grounding_pack compositor tool, no OpenCodeHub-branded agent, no LLM-based PR review, no IDE plugin / LSP, no fine-tuned models.

Full rationale and forfeits in ADR 0007 + .erpaval/brainstorms/013-synthesis-v2-two-surface-product.md.

What's next after this PR

Spec 002 (CI action surface — OSS GitHub Actions that shell out to the codehub CLI, no HTTP server, no SDK) is at .erpaval/specs/002-agent-grounding-plane/ marked P1. It begins only after this spec gets adoption signal.

Test plan

  • pnpm -F @opencodehub/cli build clean
  • 18 CLI tests pass (13 setup + 5 init; covers init fresh bootstrap, conflict refusal, idempotent re-run with --force, --skip-mcp, --skip-policy, and every existing setup case)
  • codehub init dogfooded against a throwaway tmp repo — copies 28 files, rewrites ${CLAUDE_PLUGIN_ROOT}${CLAUDE_PROJECT_DIR}/.claude, writes .mcp.json clean JSON, seeds .gitignore and policy starter
  • codehub list dogfooded against the real registry — correctly flagged a pre-existing stale entry
  • codehub analyze dogfooded against a real multi-repo workspace (98k nodes, 97 nodes); contracts extracted; group sync worked; empty-case codehub-contract-map artifact handled per AC-5-5
  • codehub-document skill invoked from a real Claude Code session against this repo (reviewer validation)
  • Claude Code picks up .claude/ project-scope plugin after running codehub init in a clean repo and restarting (reviewer validation)

Commits

  • `b61633d` feat(plugin): ship artifact factory (spec 001 P0)
  • `7c3d9c9` feat(cli): codehub init bootstraps a repo (project-scope plugin + .mcp.json)
  • `7b9e91d` fix: three dogfood findings (embeddings workers, registry health, schema preflight)
  • `7d19351` chore: anonymize dogfood references; rename gym Quickwork fixtures; repo-relative paths

Adds the artifact-generation skill family inside plugins/opencodehub/
that turns the code graph into committed Markdown via the
codeprobe-pattern 4-phase orchestration.

Four new skills (all P0 per spec 001):
- codehub-document    — primary generator, single + group mode
- codehub-pr-description — PR body from detect_changes/verdict/owners
- codehub-onboarding  — ONBOARDING.md with centrality-ranked reading order
- codehub-contract-map — group-only cross-repo contract matrix

Six new doc-* subagents (8-section scaffold, sonnet):
  doc-{architecture,reference,behavior,analysis,diagrams,cross-repo}

New PostToolUse hook emits a non-blocking systemMessage after git
mutations when .codehub/docs/.docmeta.json is stale. Never auto-
regenerates — regeneration requires user consent.

Starlight docs get a new Skills category with per-skill pages and an
index, plus a reference page for the .docmeta.json schema. ADRs 0007
(artifact factory), 0008 (codeprobe pattern port), 0009 (output
conventions) record the load-bearing decisions and are indexed in
architecture/adrs.md.

Scope exclusions locked durably (not timeline):
- no hosted/managed/SaaS tier
- no remote/HTTP MCP server (stdio-only)
- no agent SDK (python/ts/claude-hooks)
- no grounding_pack compositor tool
- no own coding agent; no LLM-based PR review; no IDE/LSP

Spec 001 and spec 002 (CI-action surface, deferred P1) committed under
.erpaval/specs/. Roadmap SPA at .erpaval/roadmap/ reflects locked scope.
…p.json)

One-command on-ramp. Inside any repo:

  codehub init

Does:
  1. Copies plugin assets (skills, agents, commands, hooks) from the
     CLI's bundled dist/plugin-assets/ into <repo>/.claude/.
  2. Rewrites the plugin's hooks.json ${CLAUDE_PLUGIN_ROOT} token to
     ${CLAUDE_PROJECT_DIR}/.claude and writes .claude/settings.json
     (project-scope equivalent of hooks.json).
  3. Writes .mcp.json via the existing runSetup pipeline (claude-code
     editor, project scope).
  4. Appends .codehub/ to .gitignore (idempotent).
  5. Seeds opencodehub.policy.yaml with every rule commented out —
     placeholder for spec 002 CI verdict actions.

Flags: --force (overwrite conflicts), --skip-mcp, --skip-policy.

Once .claude/ is in git, every teammate gets the plugin on clone.
Legacy user-scope install (codehub setup --plugin → ~/.claude/plugins/)
remains supported.

Build: scripts/copy-plugin-assets.mjs mirrors the copy-ci-templates
pattern — bundles plugins/opencodehub/ into packages/cli/dist/plugin-
assets/ at build time so globally-installed CLIs have the source.

Tests: 5 init tests pass (fresh bootstrap, conflict refusal, idempotent
re-run with --force, --skip-mcp, --skip-policy). Existing 13 setup
tests still pass.

Docs: new start-here/codehub-init.md, quick-start updated to
recommend init, plugin README updated, ADR 0007 Consequences amended
with the install model.
…ema preflight)

Landed after dogfooding codehub init + the artifact factory against
the QuickWork two-repo workspace on 2026-04-27. All three fixes are
bounded and independently useful. Full evidence and root-cause traces
in ADR 0010.

1. --embeddings defaults --embeddings-workers to "auto" at the CLI
   layer. A 98k-node repo ran single-threaded ONNX inference for 56
   minutes before we killed it; parallel workers cut that to minutes.
   Programmatic runAnalyze() is unchanged — this is a CLI UX fix.

2. codehub list gains a HEALTH column that flags dangling registry
   entries (⚠ missing path) and cleaned indexes (⚠ no graph.duckdb),
   with a trailing advisory when any row is unhealthy. Caught a real
   /Users/lalsaado/workspaces/... typo on the machine running this.

3. Phase 0 of codehub-document now requires a schema preflight —
   subagents probe information_schema.columns once, cache in
   .prefetch.md, and consult instead of guessing. Prevents Binder Error
   failures (e.g. nodes.path doesn't exist — routes live in `name` +
   `file_path` + `method`).

Tests: 18 setup + init tests still pass. Build clean. ADR index
(packages/docs) updated to mirror the new entry.
…epo-relative paths

Two sanitizing passes before the PR is public:

1. ADR 0010 + Starlight ADR index no longer name the private workspaces
   used for the 2026-04-27 dogfood. Findings + evidence preserved; the
   repo identifiers and absolute paths are redacted to "a private
   two-repo workspace" language.

2. Gym fixture monorepo/electron-ws-python renamed Quickwork → Desktop
   (and QuickworkBridge → DesktopBridge; the "quickwork" string literal
   → "desktop"). Source, YAML test descriptors, JSONL baselines, and
   README were all touched together so the SCIP regression still
   resolves the expected symbols. Baseline column offset on
   app/shared/types.ts:41 was patched from 16 → 14 because
   "desktop: DesktopBridge" is 2 chars shorter than
   "quickwork: QuickworkBridge". JSONL still parses; every baseline
   column verified to land on a valid identifier char in the renamed
   source.

3. .erpaval/brainstorms, specs, and ADRs had dozens of
   /Users/lalsaado/Projects/open-code-hub/ absolute paths rewritten to
   repo-relative /. Sibling /Users/lalsaado/Projects/codeprobe/
   references rewritten to ../codeprobe/. One /Users/lalsaado/.claude/
   memory-system path collapsed to .erpaval/memory/. Two /Users/…
   mentions intentionally preserved: neither contains a username nor
   a repo name (they illustrate an anonymized workspaces-vs-workplace
   typo).

No behavioral changes. 18 existing CLI tests still pass.
…tern'

The pattern has run in another OSS project; we adopt it here without naming
the sibling. Applied across ADRs, Starlight docs, the plugin SKILL, the
EARS specs, the roadmap SPA, and the historical .erpaval brainstorms.

- docs/adr/0008-codeprobe-pattern-port.md renamed to 0008-document-pattern-port.md.
  Full rewrite to use neutral framing ("four-phase document pattern", "prior
  art in another OSS project") while preserving every decision, invariant,
  consequence, and reference link.
- ADR 0007/0009/0010 + Starlight ADR index + skill doc page + plugin SKILL.md
  + spec 001 + roadmap data.js updated with targeted edits.
- Five .erpaval brainstorms (001, 002, 003, 004, 006) scrubbed via perl
  substitution — historical memos kept intact except for the sibling's name.
- Starlight link to ADR 0008 now points at the renamed file.

No behavioral changes. 18/18 CLI tests pass. Build clean.
The roadmap HTML/JS at .erpaval/roadmap/ was a throwaway visualization
generated during planning, not a repo asset. It keeps drifting out of
sync with the canonical specs at .erpaval/specs/ anyway.

- Removes the 4 files (index.html, styles.css, data.js, app.js) from
  git; local copies stay on disk.
- .gitignore now matches `.erpaval/roadmap/` so future regenerated
  SPAs don't re-surface in git status.

No behavioral change. Specs at .erpaval/specs/ and ADRs at docs/adr/
remain the source of truth for what ships.
@theagenticguy theagenticguy force-pushed the feat/artifact-factory branch from 5426356 to 3993f5e Compare April 28, 2026 00:14
Five CI check failures on commit 3993f5e all traced to two issues:

1. Starlight links-validator failed on 7 bad paths I wrote in
   packages/docs/src/content/docs/skills/{codehub-document,codehub-contract-map}.mdx
   and packages/docs/src/content/docs/reference/docmeta-schema.mdx.
   The Starlight convention is a single /opencodehub/architecture/adrs/
   page with per-ADR fragments, not /architecture/adr-XXXX/ paths.
   Rewrote every bad link to anchor form (#adr-0007--artifact-factory
   etc.) and restored the missing /opencodehub/ base prefix on the
   reference page.

2. Biome CI flagged 5 formatting / import-order violations in
   packages/cli/src/{index.ts,commands/{init,init.test,list}.ts}.
   Ran biome check --write; removed one now-redundant
   noTemplateCurlyInString suppression that ended up on the wrong
   line after the auto-format.

Cascade: typecheck + gym (go,python,rust,typescript) all ran
`pnpm -r build` which transitively invoked the docs build, so they
all turned green once the links-validator passed.

No behavioral changes. Docs build: "All internal links are valid."
Biome: "No fixes applied" (0 errors). Typecheck: clean.
18 CLI tests still pass.
@theagenticguy theagenticguy merged commit 6e12272 into main Apr 28, 2026
19 checks passed
@theagenticguy theagenticguy deleted the feat/artifact-factory branch April 28, 2026 00:28
@github-actions github-actions Bot mentioned this pull request Apr 27, 2026
theagenticguy added a commit that referenced this pull request May 1, 2026
## Summary

Ships spec 001 (the laptop artifact factory) end-to-end in a single,
self-contained branch.

- **Four new skills** in `plugins/opencodehub/skills/` —
`codehub-document`, `codehub-pr-description`, `codehub-onboarding`,
`codehub-contract-map` — all P0 per
`.erpaval/specs/001-claude-code-artifact-surface/spec.md`. The flagship
`codehub-document` runs the codeprobe-pattern four-phase orchestration
(Phase 0 precompute → AB parallel → CD parallel → E deterministic
assembler) in both single-repo and group mode.
- **Six new `doc-*` subagents** — `doc-architecture`, `doc-reference`,
`doc-behavior`, `doc-analysis`, `doc-diagrams`, `doc-cross-repo`
(group-only). All 8-section scaffold, Sonnet model, tool-allowlisted.
- **`codehub init`** — single-command project-scope bootstrap. Copies
the plugin into `<repo>/.claude/`, writes `.mcp.json`, appends
`.codehub/` to `.gitignore`, seeds `opencodehub.policy.yaml`. Check
`.claude/` into git and every teammate gets the plugin on clone.
- **PostToolUse staleness hook** — non-blocking `systemMessage` after
git mutations when `graph_hash` drifts and `.docmeta.json` exists. Never
auto-regenerates; requires user consent.
- **Three ADRs** — 0007 (artifact factory), 0008 (codeprobe pattern
port), 0009 (output conventions) — record the load-bearing decisions.
- **Dogfood fixes (ADR 0010)** — three small CLI-UX fixes discovered by
running the flow against a private two-repo workspace:
1. `--embeddings` now defaults `--embeddings-workers` to `"auto"`
(single-threaded ONNX on 100k nodes was a 45-min foot-gun).
2. `codehub list` gains a `HEALTH` column that flags dangling registry
entries (`⚠ missing path`) and cleaned indexes (`⚠ no graph.duckdb`).
3. Phase 0 of `codehub-document` now requires a schema preflight —
subagents probe `information_schema.columns` once, cached in
`.prefetch.md`, to prevent `Binder Error` failures from guessed column
names.

## Scope decisions locked (not timeline, not revisitable without
discussion)

- **Self-hosted OSS only.** No hosted tier, no managed service, no
OpenCodeHub-operated infrastructure.
- **No remote / HTTP MCP server.** Stdio MCP on the Claude Code plugin
only.
- **No agent SDK.** Agents consume OpenCodeHub via the Claude Code
plugin or by shelling out to the `codehub` CLI.
- **No `grounding_pack` compositor tool, no OpenCodeHub-branded agent,
no LLM-based PR review, no IDE plugin / LSP, no fine-tuned models.**

Full rationale and forfeits in ADR 0007 +
`.erpaval/brainstorms/013-synthesis-v2-two-surface-product.md`.

## What's next after this PR

Spec 002 (CI action surface — OSS GitHub Actions that shell out to the
`codehub` CLI, no HTTP server, no SDK) is at
`.erpaval/specs/002-agent-grounding-plane/` marked P1. It begins only
after this spec gets adoption signal.

## Test plan

- [x] `pnpm -F @opencodehub/cli build` clean
- [x] 18 CLI tests pass (13 setup + 5 init; covers init fresh bootstrap,
conflict refusal, idempotent re-run with `--force`, `--skip-mcp`,
`--skip-policy`, and every existing setup case)
- [x] `codehub init` dogfooded against a throwaway tmp repo — copies 28
files, rewrites `${CLAUDE_PLUGIN_ROOT}` →
`${CLAUDE_PROJECT_DIR}/.claude`, writes `.mcp.json` clean JSON, seeds
`.gitignore` and policy starter
- [x] `codehub list` dogfooded against the real registry — correctly
flagged a pre-existing stale entry
- [x] `codehub analyze` dogfooded against a real multi-repo workspace
(98k nodes, 97 nodes); contracts extracted; group sync worked;
empty-case `codehub-contract-map` artifact handled per AC-5-5
- [ ] `codehub-document` skill invoked from a real Claude Code session
against this repo (reviewer validation)
- [ ] Claude Code picks up `.claude/` project-scope plugin after running
`codehub init` in a clean repo and restarting (reviewer validation)

## Commits

- \`b61633d\` feat(plugin): ship artifact factory (spec 001 P0)
- \`7c3d9c9\` feat(cli): codehub init bootstraps a repo (project-scope
plugin + .mcp.json)
- \`7b9e91d\` fix: three dogfood findings (embeddings workers, registry
health, schema preflight)
- \`7d19351\` chore: anonymize dogfood references; rename gym Quickwork
fixtures; repo-relative paths
This was referenced May 1, 2026
@github-actions github-actions Bot mentioned this pull request May 11, 2026
theagenticguy added a commit that referenced this pull request May 12, 2026
🤖 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>
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.

1 participant