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
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: "The README's spelled-out language count makes every new-language PR conflict with every other"
author: Shrish
date: 2026-11-09
branch: docs/readme-language-count
cost: { minutes: 39, tokens: 83938 }
id: l-e43790d6
scope: repo
status: active
src: agent
touches:
- test/mcp-server.test.ts
- src/claude/settings-merge.ts
- test/claude-init.test.ts
- test/claude-settings-merge.test.ts
- test/hosts-claude-global.test.ts
- test/hosts-retract.test.ts
- src/ai/llm/recover-tool.ts
- test/llm-ops.test.ts
- src/graph/build.ts
- src/graph/extract-cache.ts
---

## Watch out
The README says "Twenty-four languages, plus Vue, Svelte and Astro..." in words, and lists the languages in a bullet a few lines up. Every PR that adds a language (Julia, Bash, GLSL, PowerShell landed in the same week) edits both lines, so they all conflict with each other and each needs a rebase after the previous one merges.

## Decided
When several language PRs land together, resolve their README conflicts by keeping main's count line and fix the count once in a follow-up after the batch merges, instead of rebasing each PR through CI again.

In the code: README.md, the "N languages, plus Vue..." sentence and the "symbols only" language list; src/graph/generic.ts registry rows are the source of truth for what's supported.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -489,7 +489,7 @@ compiler-grade layer, all `$0` and deterministic (no model, no key):
- **Broad**: symbols (functions, classes, methods, types, …) plus name-resolved
call edges via a generic tree-sitter extractor, one grammar per language:
**Rust, C, C++, C#, Ruby, Scala, Elixir, Solidity,
Dart, Clojure, Nix, Lua, Gleam, Julia**, and **OCaml, Zig, GLSL** (symbols only for now, no call edges).
Dart, Clojure, Nix, Lua, Gleam, Julia, PowerShell**, and **OCaml, Zig, GLSL** (symbols only for now, no call edges).
**Bash** (`.sh`, `.bash`) also uses this tier for function symbols;
Bash call edges and extensionless shell scripts are not yet supported.

Expand All @@ -507,7 +507,7 @@ compiler-grade layer, all `$0` and deterministic (no model, no key):
own files. It's best-effort: a missing or failed server leaves those languages
on the AST graph while the other servers still run.

Twenty-five languages, plus Vue, Svelte and Astro single-file components. A file whose language isn't listed is skipped, not
Twenty-eight languages, plus Vue, Svelte and Astro single-file components. A file whose language isn't listed is skipped, not
indexed. Adding a broad-tier language is a small contribution; see
[CREDITS.md](CREDITS.md) for the folks who added the current set.

Expand Down
Loading