Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
465ee07
Add scientific language reference graphs (#4738)
Widthdom Jul 24, 2026
52c6ba1
Address scientific graph review findings (#4738)
Widthdom Jul 24, 2026
b5696a0
Merge remote-tracking branch 'origin/main' into fix-issue4738
Widthdom Jul 24, 2026
c8c219b
Fix scientific graph lexical edge cases (#4738)
Widthdom Jul 24, 2026
9cff38e
Fix scientific graph review regressions (#4738)
Widthdom Jul 24, 2026
6c93c2d
Resolve final scientific graph review findings (#4738)
Widthdom Jul 24, 2026
3d2d4fc
Harden scientific graph language parsing (#4738)
Widthdom Jul 24, 2026
a8002ce
Resolve scientific graph review edge cases (#4738)
Widthdom Jul 24, 2026
c0c8d24
Resolve scientific graph review findings (#4738)
Widthdom Jul 24, 2026
6a10809
Merge remote-tracking branch 'origin/main' into fix-issue4738
Widthdom Jul 24, 2026
fa43a67
Close scientific graph adversarial gaps (#4738)
Widthdom Jul 24, 2026
f7ce7d0
Resolve scientific graph adversarial findings (#4738)
Widthdom Jul 24, 2026
e9848e0
Merge remote-tracking branch 'origin/main' into fix-issue4738
Widthdom Jul 24, 2026
1cd4334
Resolve scientific graph final review findings (#4738)
Widthdom Jul 24, 2026
ae73bef
Fix scientific graph language smoke cases (#4738)
Widthdom Jul 24, 2026
41de90d
Handle scientific graph syntax variants (#4738)
Widthdom Jul 24, 2026
ac51e18
Resolve qualified scientific graph references (#4738)
Widthdom Jul 24, 2026
22c4095
Harden scientific qualified references (#4738)
Widthdom Jul 24, 2026
36cd822
Merge remote-tracking branch 'origin/main' into fix-issue4738
Widthdom Jul 24, 2026
2755f7e
Address scientific graph review findings (#4738)
Widthdom Jul 24, 2026
db271cd
Fix adversarial scientific graph gaps (#4738)
Widthdom Jul 24, 2026
154d0dd
Fix scientific graph review edge cases (#4738)
Widthdom Jul 24, 2026
950275a
Merge remote-tracking branch 'origin/main' into fix-issue4738
Widthdom Jul 24, 2026
94a4f91
Resolve final scientific graph review findings (#4738)
Widthdom Jul 24, 2026
d0197e2
Merge remote-tracking branch 'origin/main' into fix-issue4738
Widthdom Jul 24, 2026
b8833b7
Resolve persisted scientific graph review findings (#4738)
Widthdom Jul 24, 2026
94a17fd
Resolve second adversarial review findings (#4738)
Widthdom Jul 24, 2026
51ceb1c
Merge remote-tracking branch 'origin/main' into fix-issue4738
Widthdom Jul 24, 2026
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
4 changes: 2 additions & 2 deletions DEVELOPER_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -1639,7 +1639,7 @@ Process exit codes are coarse (`0` success including valid zero-row queries, `1`
## Design decisions

- **Language capability patterns remain typed at the integration boundary** — CLI/MCP `languages` rows expose suffix-only `extensions`, literal `exact_filenames`, and `<suffix>`-rendered `filename_prefix_patterns`. `legacy_patterns` preserves the former combined list during deprecation, and `pattern_provenance` identifies built-in, plugin/pattern, and language-map override ownership. Round-trip tests feed every advertised typed pattern back through `FileIndexer.DetectLanguage` (#4617).
- **Ambiguous source extensions stay explicit** — `.m` and `.pl` are not assigned to Objective-C and Perl by default. `FileIndexer` checks an authoritative recognized shebang, then a 64 KiB bounded prefix for strong mutually exclusive Objective-C/MATLAB or Perl/Prolog markers, then at most 256 entries per ancestor directory for conservative project markers. Conflicting or weak evidence is indexed as `ambiguous_m` / `ambiguous_pl`; MATLAB and Prolog have conservative symbol patterns but deliberately advertise no reference/graph support (#4612).
- **Ambiguous source extensions stay explicit** — `.m` and `.pl` are not assigned to Objective-C and Perl by default. `FileIndexer` checks an authoritative recognized shebang, then a 64 KiB bounded prefix for strong mutually exclusive Objective-C/MATLAB or Perl/Prolog markers, then at most 256 entries per ancestor directory for conservative project markers. Conflicting or weak evidence is indexed as `ambiguous_m` / `ambiguous_pl`; unresolved `.m` files run the bounded MATLAB and Objective-C symbol/reference paths after a shared position-preserving comment mask, while Prolog deliberately remains without reference/graph support (#4612, #4738).
- **Hotspot marker fingerprints share one bounded tree traversal** — full/update CLI and MCP indexing compute C#, VB, F#, and MSBuild marker fingerprints together instead of walking the directory tree once per language. Each distinct marker glob retains the platform filesystem's matching behavior and is enumerated once per visited directory, while child directories are enumerated once; marker sets, budgets, truncation sentinels, and warning order remain isolated per language. The single-language API delegates to the same engine, preserving ignore rules, nested-repository/submodule boundaries, and MCP authorized-read failures.
- **Lock-file dependency graphs model package relationships** — `packages.lock.json`, `package-lock.json`, and `npm-shrinkwrap.json` keep package declarations as symbols, but emit `dependency` references only for explicit parent-package to child-package entries. The parent package is stored as the reference container, so `callers` can identify which package requires a child and `deps` does not infer lock-file-to-lock-file similarity merely because two files contain the same resolved package set (#4409).
- **Dependency-cycle audits separate analysis from display** — CLI `deps --cycles` and MCP `deps` with `cycles=true` analyze a deterministic, path-ordered edge set up to the independent `--graph-budget` / `graphBudget` before computing and stably ranking strongly connected components. `--limit` / `limit` only paginates that ranked SCC set, and opaque cursors are bound to the filters, graph budget, and indexed graph that produced them. Machine-readable responses expose `analysis_complete`, graph edge count/budget, stable ranking mode, authoritative total-cycle status, and continuation metadata; exhausting the graph budget is reported as an explicitly incomplete analysis rather than a complete cycle audit (#4731).
Expand Down Expand Up @@ -4666,7 +4666,7 @@ USER_GUIDEの[終了コード](USER_GUIDE.md#終了コード)セクションを
## 設計判断

- **integration boundary では language capability pattern の型を維持** — CLI/MCP の `languages` 行は suffix のみの `extensions`、literal な `exact_filenames`、`<suffix>` 表記の `filename_prefix_patterns` を公開します。`legacy_patterns` は deprecation 中に従来の combined list を保持し、`pattern_provenance` は built-in、plugin/pattern、language-map override の所有元を示します。round-trip test は広告した全 typed pattern を `FileIndexer.DetectLanguage` に戻して検証します(#4617)。
- **曖昧な source extension は曖昧なまま明示** — `.m` と `.pl` を既定で Objective-C / Perl に割り当てません。`FileIndexer` は authoritative な認識済み shebang、64 KiB 上限 prefix 内の相互排他的で強い Objective-C/MATLAB または Perl/Prolog marker、各 ancestor directory 最大 256 entry の保守的な project marker の順に確認します。競合または弱い証拠は `ambiguous_m` / `ambiguous_pl` として index し、MATLAB / Prolog は保守的な symbol pattern を持つ一方、reference / graph 対応を意図的に広告しません(#4612)。
- **曖昧な source extension は曖昧なまま明示** — `.m` と `.pl` を既定で Objective-C / Perl に割り当てません。`FileIndexer` は authoritative な認識済み shebang、64 KiB 上限 prefix 内の相互排他的で強い Objective-C/MATLAB または Perl/Prolog marker、各 ancestor directory 最大 256 entry の保守的な project marker の順に確認します。競合または弱い証拠は `ambiguous_m` / `ambiguous_pl` として index し、未確定の `.m` は位置を保つ共通コメントマスクの後で上限付きの MATLAB / Objective-C symbol・reference 経路を実行します。Prolog は意図的に reference / graph 未対応のままです(#4612、#4738)。
- **hotspot marker fingerprint は上限付きtree traversalを1回共有** — full/update CLIとMCP indexingは、directory treeを言語ごとに歩かず、C#、VB、F#、MSBuildのmarker fingerprintをまとめて計算します。各directoryでは固有marker globごとにplatform filesystemのmatching挙動を保って1回ずつ列挙し、child directoryも1回だけ列挙する一方、marker集合、budget、truncation sentinel、warning順は言語別に分離します。single-language APIも同じengineへ委譲し、ignore rule、nested repository/submodule境界、MCP authorized read failureを維持します。
- **lock file の依存グラフは package 間の関係をモデル化** — `packages.lock.json`、`package-lock.json`、`npm-shrinkwrap.json` は package 宣言を symbol として保持しますが、`dependency` reference は明示された親 package → 子 package の項目だけに出力します。親 package を reference container に保存するため、`callers` はどの package が子 package を必要としているかを特定でき、`deps` は同じ resolved package 集合を持つだけの lock file 同士を類似関係として推論しません(#4409)。
- **依存サイクル監査では解析と表示を分離** — CLI の `deps --cycles` と MCP `deps` の `cycles=true` は、独立した `--graph-budget` / `graphBudget` まで path 順で決定的な edge 集合を解析してから、強連結成分を安定順位付けします。`--limit` / `limit` はその SCC 順位集合をページ分割するだけで、不透明 cursor は生成時の filter、graph budget、indexed graph に結び付けます。machine-readable 応答は `analysis_complete`、graph edge 件数/予算、安定 ranking mode、authoritative な総 cycle 件数かどうか、continuation metadata を公開し、graph budget 枯渇時は完全な cycle 監査を装わず明示的な未完了解析として報告します(#4731)。
Expand Down
Loading
Loading