Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Replace `[feature]` with something you want to find. The first run downloads a l

### New in 2.4.0

- Opt-in NestJS support from community contributor Aaron Olin. See the [analyzer options](./docs/capabilities.md#analyzers).
- NestJS support from community contributor Aaron Olin. See the [analyzer details](./docs/capabilities.md#analyzers).
- Better React/Next.js detection and a fix for reranker passage scoring.
- Transformers.js v4 for local models.

Expand Down Expand Up @@ -72,7 +72,7 @@ The default connection is `stdio` (standard input/output): your client starts th

### Team patterns and examples

`get_team_patterns` shows the approaches used in the repository and points to representative files. Version `2.4.0` includes dedicated analyzers for Angular, React, Next.js and opt-in NestJS, with a generic analyzer for other stacks.
`get_team_patterns` shows the approaches used in the repository and points to representative files. Version `2.4.0` includes dedicated analyzers for Angular, React, Next.js and NestJS, with a generic analyzer for other stacks.

### Project memory

Expand Down Expand Up @@ -157,7 +157,7 @@ The method and failures are documented so the measurements can be inspected with
- Retrieval measurements describe expected-file coverage, file precision, and reported `peakPrivateGb`, not patch correctness or end-to-end coding quality.
- The paired token observation covers two frozen investigation tasks and records observed agent behavior; it is not a universal token or time guarantee.
- Setup checks differ by client. The detailed guide distinguishes a written config, a config recognized by the client, a local connection, and instructions checked only against official docs.
- Version `2.4.0` has dedicated Angular, React, Next.js and opt-in NestJS analyzers. Other projects use the generic analyzer and the language parsers available for that stack.
- Version `2.4.0` has dedicated Angular, React, Next.js and NestJS analyzers. Other projects use the generic analyzer and the language parsers available for that stack.
- The default searchable-chunk limit is 5,000 per project. In `~/.codebase-context/config.json`, set `projects[].parsing.maxChunks` for a project that needs a higher limit.
- The agent must identify its repository in tool calls when no default or unambiguous client root is available. Concurrent HTTP client isolation is not established by the stdio routing checks.

Expand Down
10 changes: 5 additions & 5 deletions docs/capabilities.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Capabilities Reference

Technical reference for the 2.4.0 setup preview. The public product posture is map first, find second: the bounded conventions map is the first-call surface, and search narrows to the right local example after that. For the user-facing overview, see [README.md](../README.md).
Technical reference for Codebase Context 2.4.0. Start with the repository map, then search for relevant code. For an overview, see [README.md](../README.md).

**These commands use 2.4.0.** If that version is not available on npm yet, use the published 2.2.0 [setup guide](https://github.com/PatrickSys/codebase-context/blob/10ba0a635ff73cd5c5b011ffd5b31e7ed4656c65/docs/client-setup.md).

Expand Down Expand Up @@ -29,7 +29,7 @@ Copy-pasteable client config templates are shipped in the package:
- `templates/mcp/stdio/.mcp.json` — stdio setup for `.mcp.json`-style clients
- `templates/mcp/http/.mcp.json` — HTTP setup for `.mcp.json`-style clients

Use Node.js 22 or newer with the 2.4.0 commands shown here. For 2.4.0 setup preview recipes and their verification limits, see the [client setup guide](./client-setup.md).
Use Node.js 22 or newer with the 2.4.0 commands shown here. For setup commands and what was checked, see the [client setup guide](./client-setup.md).

## CLI Reference

Expand All @@ -52,7 +52,7 @@ For a command gallery with examples, see `docs/cli.md`.
| `memory add` | `--type`, `--category`, `--memory`, `--reason` | `remember` |
| `memory remove <id>` | — | — |

Commands that list `--json` above support raw JSON output. For MCP client registration, follow the [2.4.0 setup preview recipes](./client-setup.md). The existing `init` wizard is interactive and generates HTTP setup; see that guide for its current limitations. Errors go to stderr with exit code 1.
Commands that list `--json` above support raw JSON output. Follow the [client setup guide](./client-setup.md) to connect your client. The `init` command can set up Claude Code and Codex for the current project; the guide covers the other clients. Errors go to stderr with exit code 1.

```bash
# Quick examples
Expand Down Expand Up @@ -276,7 +276,7 @@ Impact is 2-hop transitive: direct importers (hop 1) and their importers (hop 2)
- **Angular**: signals, standalone components, control flow syntax, lifecycle hooks, DI patterns, component metadata
- **React**: function/class components, custom hooks, context usage, memoization, Suspense, ecosystem signal extraction
- **Next.js**: App Router and Pages Router detection, route/API classification, route paths, `"use client"`, metadata exports
- **NestJS (opt-in)**: modules, controllers, providers and route handlers, contributed by Aaron Olin. The library indexer accepts `config: { analyzers: { nestjs: { enabled: true } } }`; the CLI/server project configuration does not currently expose analyzer enablement.
- **NestJS**: modules, controllers, providers and route handlers, contributed by Aaron Olin. Matching NestJS source is detected automatically.
- **Generic**: 30+ have indexing/retrieval coverage including PHP, Ruby, Swift, Scala, Shell, config/markup., 10 languages have full symbol extraction (Tree-sitter: TypeScript, JavaScript, Python, Java, Kotlin, C, C++, C#, Go, Rust).

Notes:
Expand Down Expand Up @@ -305,6 +305,6 @@ Reproducible evaluation is shipped as a CLI entrypoint backed by shared scoring

- **Symbol refs are not a call-graph.** `get_symbol_references` counts identifier-node occurrences in the AST (comments/strings excluded via Tree-sitter). It does not distinguish call sites from type annotations, variable assignments, or imports. Full call-site-specific analysis (`call_expression` nodes only) is a roadmap item.
- **Impact is 2-hop max.** `computeImpactCandidates` walks direct importers then their importers. Full BFS reachability is on the roadmap.
- **The 2.4.0 preview source has dedicated Angular, React, Next.js and NestJS analyzers.** Other languages use the Generic analyzer (30+ languages, chunking + import graph, no framework-specific signal extraction).
- **Version 2.4.0 has dedicated Angular, React, Next.js and NestJS analyzers.** Other languages use the Generic analyzer (30+ languages, chunking + import graph, no framework-specific signal extraction).
- **Default embedding model is `bge-small-en-v1.5` (512-token context).** Granite (8192 context) is opt-in via `EMBEDDING_MODEL`. OpenAI is opt-in via `EMBEDDING_PROVIDER=openai` — sends code externally.
- **Patterns are file-level frequency counts.** Not semantic clustering. Rising/Declining trend is derived from git commit recency for files using each pattern, not from usage semantics.
4 changes: 2 additions & 2 deletions docs/client-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@

Codebase Context runs as a local MCP server: a tool your AI editor or command-line client can call while it works. Register it without a fixed folder, then let the agent supply its current repository through the `project` tool parameter. These recipes target the 2.4.0 release.

Use Node.js 22 or newer for these recipes. The package still declares Node 18+, but the built pack failed to index source on Node 18.20.4 with `ReferenceError: crypto is not defined` in UUID chunk creation. Node 22 is the lowest version used successfully in the package check; the engine declaration remains an open compatibility issue.
Use Node.js 22 or newer, as required by the package.

The copyable registration commands target PowerShell or a POSIX terminal. Windows Command Prompt was not tested; OpenCode's quoted separator is shell-dependent.

## Client recipes for 2.4.0

Claude Code, Codex CLI and OpenCode registration commands were checked again on October 6 without a project argument. The other clients retain their older config-shape evidence; no-folder native agent use is unverified for them. See the dated notes below.

Each client section says how far its isolated Windows check went:
Each client section says how far its earlier Windows check went. Those checks used published `2.2.0` unless another build is named; they do not verify the 2.4.0 commands:

| Status | What it means |
| ------------------------------ | ------------------------------------------------------------------------------------------ |
Expand Down
13 changes: 13 additions & 0 deletions tests/release-truth-surfaces.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -175,4 +175,17 @@ describe('release truth surfaces', () => {
expect(capabilities).not.toContain('what `codebase-context` ships today');
expect(capabilities).not.toContain('Published 2.4.0 has');
});

it('keeps release wording, analyzer claims and setup checks accurate', () => {
const capabilities = readText('docs/capabilities.md');
const setup = readText('docs/client-setup.md');
const beforeFirstClient = setup.slice(0, setup.indexOf('## Claude Code'));

expect(capabilities).not.toMatch(/\b2\.4\.0 (?:setup )?preview\b/i);
expect(`${readme}\n${capabilities}`).not.toMatch(/opt-in NestJS|NestJS \(opt-in\)/i);
expect(capabilities).not.toContain('analyzers: { nestjs: { enabled: true } }');
expect(capabilities).not.toContain('generates HTTP setup');
expect(setup).not.toContain('package still declares Node 18+');
expect(beforeFirstClient).toContain('`2.2.0`');
});
});
Loading