You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Upstream the React and Next.js analyzer work from issue #2 and the aolin480 fork through the existing registry surfaces with focused tests and docs updates.
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,8 @@ See [README.md](./README.md) for configuration with Claude Desktop, VS Code, Cur
22
22
src/
23
23
analyzers/
24
24
angular/ # Angular-specific analysis
25
+
nextjs/ # Next.js routes, metadata, and client/server detection
26
+
react/ # React components, hooks, and context patterns
25
27
generic/ # Fallback for non-Angular files
26
28
core/
27
29
indexer.ts # Scans files, creates chunks
@@ -34,8 +36,6 @@ src/
34
36
35
37
## What Would Help
36
38
37
-
**React analyzer** - Biggest gap right now. Look at `src/analyzers/angular/index.ts` for the pattern. Needs to detect components, hooks, context usage, etc.
38
-
39
39
**Vue analyzer** - Same deal. Detect components, composables, Pinia stores.
40
40
41
41
**Better search ranking** - The hybrid search in `src/core/search.ts` could use tuning. Currently uses RRF to combine semantic and keyword scores.
@@ -44,9 +44,9 @@ src/
44
44
45
45
## Adding a Framework Analyzer
46
46
47
-
1. Create `src/analyzers/react/index.ts`
47
+
1. Create `src/analyzers/<framework>/index.ts`
48
48
2. Implement `FrameworkAnalyzer` interface
49
-
3. Register in `src/index.ts`
49
+
3. Register in `src/index.ts`, `src/cli.ts`, and `src/lib.ts`
Copy file name to clipboardExpand all lines: README.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -145,7 +145,7 @@ If you get `selection_required`, retry with one of the paths from `availableProj
145
145
146
146
## Language Support
147
147
148
-
10 languages with full symbol extraction via Tree-sitter: TypeScript, JavaScript, Python, Java, Kotlin, C, C++, C#, Go, Rust. 30+ languages with indexing and retrieval coverage, including PHP, Ruby, Swift, Scala, Shell, and config formats. Angular has a dedicated analyzer; everything else uses the Generic analyzer with AST-aligned chunking when a grammar is available.
148
+
10 languages with full symbol extraction via Tree-sitter: TypeScript, JavaScript, Python, Java, Kotlin, C, C++, C#, Go, Rust. 30+ languages with indexing and retrieval coverage, including PHP, Ruby, Swift, Scala, Shell, and config formats. Angular, React, and Next.js have dedicated analyzers; everything else uses the Generic analyzer with AST-aligned chunking when a grammar is available.
149
149
150
150
## Configuration
151
151
@@ -156,6 +156,9 @@ If you get `selection_required`, retry with one of the paths from `availableProj
156
156
|`CODEBASE_ROOT`| — | Bootstrap root for CLI and single-project MCP clients |
157
157
|`CODEBASE_CONTEXT_DEBUG`| — | Set to `1` for verbose logging |
158
158
|`EMBEDDING_MODEL`|`Xenova/bge-small-en-v1.5`| Local embedding model override |
159
+
|`CODEBASE_CONTEXT_HTTP`| — | Set to `1` to start in HTTP mode (same as `--http` flag) |
160
+
|`CODEBASE_CONTEXT_PORT`|`3100`| HTTP server port override (same as `--port`; ignored in stdio mode) |
161
+
|`CODEBASE_CONTEXT_CONFIG_PATH`|`~/.codebase-context/config.json`| Override the server config file path |
-**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).
273
275
274
276
Notes:
@@ -291,6 +293,6 @@ Reproducible evaluation is shipped as a CLI entrypoint backed by shared scoring/
291
293
292
294
-**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.
293
295
-**Impact is 2-hop max.**`computeImpactCandidates` walks direct importers then their importers. Full BFS reachability is on the roadmap.
294
-
-**Angular is the only framework with a rich dedicated analyzer.** All other languages go through the Generic analyzer (30+ languages, chunking + import graph, no framework-specific signal extraction).
296
+
-**Angular, React, and Next.js have dedicated analyzers.** All other languages go through the Generic analyzer (30+ languages, chunking + import graph, no framework-specific signal extraction).
295
297
-**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.
296
298
-**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.
0 commit comments