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
The HTTP API's `clusters`, `change-points`, `author`, `impact`, `semantic-diff`, `semantic-blame`, `triage`, and `workflow` analysis routes now accept the same `model`/`textModel`/`codeModel` embedding overrides already available as `--model`/`--text-model`/`--code-model` on their CLI equivalents, via a new shared request-scoped resolver.
`POST /analysis/author` (HTTP API) now supports the full `gitsema author` CLI flag surface: `since`, `detail`, `includeCommits`, `hybrid`, and `bm25Weight` are wired through to the same author-attribution logic the CLI uses, plus `chunks`/`level`/`vss` are accepted for flag-surface parity (no-op, matching the CLI's own behavior for these three). Breaking change: the response shape is now `{ authors, commits? }` instead of a bare array, to carry `includeCommits` results.
`gitsema code-search` now isolates its chunk and symbol candidate pools by default, returning them as separate, independently-ranked result lists instead of one shared-cutoff merged ranking — the default `--level symbol` was combining both pools on every call, which could let a file whose best evidence was chunk-framed get crowded out by symbol-framed matches (or vice versa) purely from embedding-framing bias. Pass `--merge-levels` to opt back into the previous single merged list. The MCP `code_search` tool and Guide's `code_search` tool adopt the same per-level separation, returning a `results_by_level` object (keyed by `file`/`chunk`/`symbol`) instead of a flat `results` array when multiple levels are active — a breaking response-shape change for existing callers, both of which gained a `merge_levels` parameter to opt back into the flat shape.
`POST /evolution/file` now accepts `level` (`file`/`symbol` per-symbol centroid evolution), `branch`, `model`/`textModel`/`codeModel` overrides, and `alerts` (top-N largest semantic jumps with author/commit), matching the CLI's `file-evolution` flag surface. `POST /evolution/concept` gains `branch` and model overrides, matching `evolution`/`concept-evolution`. `POST /graph/hotspots` gains `weightStructural`, matching CLI's `--weight-structural`. Branch filtering is now threaded through the core `computeEvolution()`/`computeConceptEvolution()` functions rather than being CLI-only.
MCP `semantic_search`/`first_seen` and HTTP `POST /search`/`POST /search/first-seen` now have full flag parity with CLI `search`/`first-seen`: per-level result separation (a new `module` search level, plus labeled per-level output or a `resultsByLevel` JSON shape when 2+ of chunk/symbol/module are active, with `merge_levels`/`mergeLevels` to opt back into one merged list), negative-example scoring (`not_like`/`notLike`, `lambda`), boolean query composition (`or`/`and`), `explain`, LLM provenance citations (`explain_llm`/`explainLlm`), query expansion (`expand_query`/`expandQuery`), cluster annotation (`annotate_clusters`/`annotateClusters`), HNSW ANN search (`vss`), multi-repo search (`repos`), per-request embedding model overrides (`model`/`text_model`/`code_model` on MCP, `model`/`textModel`/`codeModel` on HTTP), candidate-pool sampling (`early_cut`/`earlyCut`), and cache bypass (`no_cache`/`noCache`). This is a breaking change to the HTTP `POST /search` JSON response shape when 2+ search levels are active (now `{ resultsByLevel: {...} }` instead of a flat array), matching CLI's existing per-level behavior. `POST /api/v1/analysis/multi-repo-search` is now deprecated in favor of `POST /api/v1/search` with a `repos` param — the old route still works unchanged, with a `Deprecation` response header pointing at its replacement.
Copy file name to clipboardExpand all lines: .github/skills/gitsema.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
@@ -661,10 +661,10 @@ This section is generated from `src/core/narrator/interpretations.ts` (result in
661
661
662
662
**`code_search`** — Symbol/chunk-level search using the code embedding model.
663
663
664
-
- Usage: Search code using the code embedding model and return symbol/chunk-level matches.
665
-
- Parameters: `snippet` (required) — Code snippet to embed and search for.; `top_k` — Maximum number of results to return (default 10, max 25).; `branch` — Restrict to blobs on this branch.
666
-
- Result shape: Rendered "score path [blobHash]" lines (symbol level by default).
667
-
- How to read it: Like semantic_search but embeds with the code model and targets symbols/chunks — better for finding specific functions/classes from a code snippet than from prose. Higher scores mean closer code-level similarity.
664
+
- Usage: Search code using the code embedding model and return symbol/chunk-level matches. The chunk and symbol pools are searched in isolation by default and returned as a `results_by_level` object with independently-ranked lists per level (Phase 137) — pass merge_levels to opt back into one merged `results` array.
665
+
- Parameters: `snippet` (required) — Code snippet to embed and search for.; `top_k` — Maximum number of results to return (default 10, max 25).; `branch` — Restrict to blobs on this branch.; `merge_levels` — Merge the chunk/symbol pools into one shared-cutoff results array instead of separate per-level results_by_level lists.
666
+
- Result shape: { snippet, results_by_level: { file: [...], chunk: [...], symbol: [...] } } by default — chunk and symbol pools are searched in isolation and returned as separate, independently-ranked lists (Phase 137). Pass merge_levels to get the pre-Phase-137 shape instead: { snippet, results: [{ paths[], score, blobHash }] }.
667
+
- How to read it: Like semantic_search but embeds with the code model and targets symbols/chunks — better for finding specific functions/classes from a code snippet than from prose. Higher scores mean closer code-level similarity within a level's own list. Don't rank across levels by raw score — chunk and symbol pools embed differently-framed text (raw excerpt vs. name+signature-annotated), so their scores are not on a directly comparable scale; read each level list separately.
668
668
669
669
**`cross_repo_similarity`** — Compare semantic search results for the same query across two separate repos.
|`--merge-levels`| off | The default `symbol` level isolates the chunk and symbol candidate pools into separate labeled lists (Phase 137, mirroring `search`'s `--merge-levels`); pass this flag to merge them back into one shared-cutoff ranked list |
0 commit comments