Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
7ecde90
fix(resolution): a same-name re-binding is not a local definition
Sep 8, 2026
a29d112
fix(resolution): only a selector arrow or a destructure is a re-binding
Sep 8, 2026
2b126b6
Merge remote-tracking branch 'origin/main' into fix/1714-rebinding-no…
Sep 9, 2026
28ca635
fix(cli): reject sync for stale extraction indexes
bompus Sep 11, 2026
3b8d55e
fix(status): detect committed but unindexed changes
bompus Sep 11, 2026
a5709f4
test(sync): verify committed renames and repeated no-op recovery
bompus Sep 11, 2026
95dccf9
fix(extraction): retain nested call evidence without guessed targets
bompus Sep 11, 2026
086e577
fix: объединить восстановление связей и проверку актуальности индекса
danusha2345 Sep 11, 2026
97de99b
fix: ускорить проверку индекса и сохранить корректность связей
danusha2345 Sep 12, 2026
8a09f0c
fix: исключить ложные вызовы и восстановить честные состояния sync и MCP
danusha2345 Sep 12, 2026
bc4a057
feat: восстановить Verilog и устранить утечки MCP и тестов
danusha2345 Sep 12, 2026
1a11de2
fix: устранить коллизии графа и завершить lifecycle MCP проектов
danusha2345 Sep 12, 2026
e174e68
fix: исправить выбор конструкторов и canonical lifecycle проектов
danusha2345 Sep 12, 2026
ce13487
feat: добавить навигацию по HDL экземплярам портам и сигналам
danusha2345 Sep 12, 2026
7d0321a
feat: связать HDL подключения с портами и восстановить selected signa…
danusha2345 Sep 12, 2026
4d97bb2
feat: добавить positional и wildcard HDL bindings и обновить grammar
danusha2345 Sep 12, 2026
545b083
fix: уточнить HDL scopes и сохранить контекст при повторной индексации
danusha2345 Sep 12, 2026
5f90335
feat: добавить HDL access roles и запросы чтения записи сигналов
danusha2345 Sep 12, 2026
b050fb8
feat: добавить HDL build profiles и согласованный контекст индекса
danusha2345 Sep 12, 2026
d8921aa
docs: сохранить полный трекер развития Verilog и SystemVerilog
danusha2345 Sep 12, 2026
ced3a06
test: закрепить HDL-корпуса и проверить AXI с locked dependencies
danusha2345 Sep 12, 2026
11b3b44
test: сравнить HDL frontends и выбрать slang для semantic adapter
danusha2345 Sep 12, 2026
d1d25f0
feat: добавить вычисленные HDL параметры и ширины через slang
danusha2345 Sep 12, 2026
13df92b
feat: добавить compiler provenance HDL макросов через pyslang
danusha2345 Sep 12, 2026
9c96927
feat: добавить origins HDL initializer и type expressions
danusha2345 Sep 12, 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
45 changes: 45 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,12 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

### New Features

- HDL: pyslang теперь показывает macro origins в initializer параметров и объявленных типах, различая override и исходный default.

- HDL: `hdl-semantic --python` с pyslang показывает исходное написание и места вызова макросов, явно отмечая неполное сопоставление.

- HDL: `hdl-semantic` с установленным slang показывает вычисленные параметры и ширины портов для выбранного профиля и экземпляра.

- **Codex and Astra read project guidance from `AGENTS.md`.** The canonical agent guide now lives in `AGENTS.md` (with a nested `docs/AGENTS.md` for long validation notes); `CLAUDE.md` is a thin `@AGENTS.md` wrapper for Claude Code. Codex/Astra no longer miss the old CLAUDE-only instructions.

- **A big screen's picture stops wrapping into a column.** How wide a screen's lines run before they wrap was worked out with a formula, and the formula was wrong for the way these pictures are actually drawn: a part of a screen spends lines on its own structure — a step that fires things gets a line to itself, and what it fires starts another — so estimating the lines from the boxes alone badly undercounted them, and one screen's 98 boxes wrapped into a 4,356px column. Laying a picture out is cheap and exact, so the widths are now simply tried and the one that comes out closest to the shape of a window is kept. Across one app's 51 screens the tallest picture went from 4,356px to 3,796px, total height fell 8%, and — because a shorter picture is also a picture whose lines have less far to go — lines running over other boxes fell by a third and lines crossing each other went from 13 to 5.
Expand Down Expand Up @@ -145,12 +151,51 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

### Fixes

- HDL: именованные profiles в codegraph.json, filelists/include/define context, сохранение offsets при conditional selection, fingerprint/sync invalidation и диагностика configured/indexed profile. Watcher учитывает profile dependencies; полноценный macro expansion пока не выполняется.

- HDL: source access roles read/write/readwrite/control/event и направления аргументов известных functions/tasks доступны через explore `hdlAccess` / CLI `--hdl-access`. Сохраняются разные позиции одной строки, initializer writes и переклассификация после изменения/удаления сигнатуры через sync.

- HDL: точные procedural scopes, formal parameters и generate template declarations сохраняют локальные связи; исправлены defaults/for initializer calls, приоритет block imports и qualified cross-file replay после sync.

- HDL: позиционные подключения следуют порядку ANSI/non-ANSI заголовка; `.*` учитывает явные подключения и локальную область видимости. Sync пересчитывает весь набор связей при изменении заголовка или удалении дубликата модуля. Grammar обновлена до tree-sitter-systemverilog 0.4.0 после сравнения 137 реальных HDL-файлов.

- HDL: именованные подключения имеют отдельные переходы к формальным портам выбранного модуля и локальным сигналам; LHS bit/part selects и concatenations больше не теряют основания и индексы. Неоднозначные module declarations не дают предполагаемую formal binding.

- Verilog/SystemVerilog: именованные экземпляры и generate scopes, порты/сигналы и always/assign доступны для навигации; связи локальных сигналов и package calls сохраняют scope, interfaces показывают modports. Полные elaboration и timing не моделируются.

- Вызовы действий store больше не теряются из-за одноимённой сигнатуры в TypeScript-интерфейсе.

- Вложенные вызовы JavaScript и TypeScript снова доступны Steps и распознаванию фреймворков без привязки встроенных коллекций к посторонним методам; существующие индексы нужно пересобрать. (#1794, #1566)
- `codegraph status` показывает непроиндексированные добавления, изменения и удаления даже после commit в Git. (#1829)
- `codegraph sync` отклоняет индекс устаревшего формата извлечения и предлагает полную переиндексацию. (#1798)

- Spring mappings now include every declared path combination and resolve constants declared in the same file, while unresolved paths no longer appear as false root routes. (#1461)
- `codegraph callers`, `codegraph callees` and `codegraph impact` now resolve qualified names, group results and JSON edges by definition, and accept `--file` to narrow ambiguous names; thanks @ferrine. (#1512, #1656)
- `codegraph callers`, `codegraph callees` and `codegraph impact` (CLI and MCP) now report missing names with did-you-mean suggestions instead of another symbol's results, and exact matches with no callers stay empty; thanks @uvmplus. (#1473, #1481)

#### MCP / indexing

- Исправлены namespace и арность C++ local constructors, ложные вызовы от pointer/reference initializers и same-line C++ IDs.
- Macro recovery больше не принимает комментарии и noexcept-expression за объявление функции; условный undef сохраняет неопределённость.
- Symlink-псевдонимы проекта используют один MCP watcher и общий catch-up вместо параллельных экземпляров одного индекса.

- Callback связывается с обработчиком регистрирующего класса, включая TSX→TS и наследование, а не с одноимённым методом другого класса.
- Исправлены C/C++ macro calls и local constructors; одноаргументные function macros получают подтверждённое имя.
- TS/JS getter и setter одной строки больше не перезаписывают друг друга; Dart extension types сохраняют правильные границы и членов.
- Явно выбранные MCP-проекты получают catch-up и watcher; shutdown дожидается записи, а тесты удаляют свой daemon.

- Восстановлена поддержка Verilog/SystemVerilog и поиска пути от верхнего FPGA-модуля до вложенного; спасибо @FHYQ-Dong за исходный extractor.
- Обрыв подключения во время MCP-handshake больше не оставляет фантомного клиента.
- Prompt-hook пропускает служебные уведомления о завершении задач; тесты resolution удаляют временные каталоги после закрытия графа.

- Проверка вызовов больше не связывает C-макросы с одноимёнными enum и Go-код с посторонними TypeScript-символами.
- Занятый `codegraph sync` сообщает о блокировке вместо ложного успеха, в том числе в quiet-режиме.
- Неисправные query workers завершаются; старые PID-lockfiles живых процессов сохраняются.

- При отказе `codegraph sync --quiet` из-за устаревшего индекса причина теперь выводится одной строкой в stderr.
- Прерывание повторного разрешения связей больше не оставляет граф без исходной связи и записи восстановления.
- В TypeScript вызов метода у результата `await` с объявленным `Promise<string>` больше не связывается с одноимённым методом постороннего класса.

- The prompt hook no longer injects unrelated projects when run from your home directory or a broader directory containing a stray workspace manifest. (#1454)

- Indexing now succeeds when Node.js's SQLite lacks FTS5, with search falling back to name and fuzzy matching; thanks @aniruddhaadak80. (#1532)
Expand Down
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ CodeGraph's parsing engine is a **native Rust kernel**: 20 languages — TypeScr
| **Full-Text Search** | Find code by name instantly across your entire codebase, powered by FTS5 |
| **Impact Analysis** | Trace callers, callees, and the full impact radius of any symbol before making changes |
| **Always Fresh** | File watcher uses native OS events (FSEvents/inotify/ReadDirectoryChangesW) with debounced auto-sync — the graph stays current as you code, zero config |
| **20+ Languages** | TypeScript, JavaScript, ArkTS, Python, Go, Rust, Java, C#, VB.NET, PHP, Ruby, C, C++, CUDA, Objective-C, Metal, Swift, Kotlin, Scala, Dart, Lua, Luau, R, Nix, Erlang, CFML, COBOL, Solidity, Terraform/OpenTofu, Svelte, Vue, Astro, Liquid, Pascal/Delphi |
| **20+ Languages** | TypeScript, JavaScript, ArkTS, Python, Go, Rust, Java, C#, VB.NET, PHP, Ruby, C, C++, CUDA, Objective-C, Metal, Swift, Kotlin, Scala, Dart, Lua, Luau, R, Nix, Erlang, CFML, COBOL, Solidity, Terraform/OpenTofu, Svelte, Vue, Astro, Liquid, Pascal/Delphi, Verilog/SystemVerilog |
| **Framework-aware Routes** | Recognizes web-framework routing files and links URL patterns to their handlers across 17 frameworks |
| **Mixed iOS / React Native / Expo** | Closes cross-language flows that static parsing misses: Swift ↔ ObjC bridging, React Native legacy bridge + TurboModules + Fabric view components, native → JS event emitters, Expo Modules |
| **100% Local** | No data leaves your machine. No API keys. No external services. SQLite database only |
Expand Down Expand Up @@ -892,6 +892,7 @@ is written):
| Astro | `.astro` | Full support (frontmatter + script extraction, template component/call references, `src/pages/` routes) |
| Liquid | `.liquid` | Full support |
| Pascal / Delphi | `.pas`, `.dpr`, `.dpk`, `.lpr` | Full support (classes, records, interfaces, enums, DFM/FMX form files) |
| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, build profiles (filelists/includes/defines), lexical/generate scopes и formal parameters, порты/сигналы и named/positional/wildcard port bindings, bit/part selects, read/write/control/event queries, always/assign, interfaces/modports, package calls и иерархия instantiates; source-граф без elaboration/timing, отдельный hdl-semantic через slang для параметров и ширин |
| Lua | `.lua` | Full support (functions, methods with receivers, local variables, `require` imports, call edges) |
| R | `.R` `.r` | Full support (functions in every assignment form, S4/R5/R6 classes with methods, `library`/`require` imports, `source()` file references, call edges) |
| Luau | `.luau` | Full support (everything in Lua, plus `type`/`export type` aliases, typed signatures, and Roblox instance-path `require`) |
Expand Down Expand Up @@ -970,3 +971,7 @@ MIT
[Report Bug](https://github.com/colbymchenry/codegraph/issues) · [Request Feature](https://github.com/colbymchenry/codegraph/issues)

</div>

Подробности HDL-профилей: [настройка и ограничения](docs/hdl-profiles.md).
Вычисленные параметры и ширины по явному запросу: [hdl-semantic с установленным slang](docs/hdl-semantics.md);
[происхождение макросов через pyslang](docs/hdl-macro-source-map.md).
Loading