Commit Graph
4532 Commits
Author SHA1 Message Date
Martin Vogel 5350b5b83e fix(cli): render the Copilot manifest through the memory core
The PostToolUse change rendered the manifest twice per install and uninstall
(current and previous generation) and freed both with free(), which grew the
raw allocator count in src/cli/cli.c past its baseline (lint-memory-core).
The manifest is now written with cbm_json_writer_allocator() and released with
cbm_free(CBM_MEM_CLASS_OTHER, ...), including the frees that predate the
change, so cli.c drops from 170 to 166 raw sites and its baseline is lowered
to match. The rendered bytes are unchanged, so byte-exact ownership of
manifests written by earlier installs still holds.

Refs #509

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-25 20:57:54 +01:00
Martin Vogel d0937940a9 docs(readme): name the Codex PreToolUse and Copilot PostToolUse search hooks
The Codex CLI row still listed only SessionStart and SubagentStart after the
PreToolUse Bash hook landed (#2719), and the hook section described only
Claude Code's search context. The row now names the Codex search hook, and the
section says how Codex, Copilot CLI and VS Code's Copilot runtime get search
context.

Refs #509

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-25 20:03:40 +01:00
Martin Vogel a18b4a4574 feat(cli): give Copilot searches graph context through a PostToolUse hook
Copilot CLI's preToolUse output can only decide permissions, and its command
hooks fail closed on errors, so the graph context that Claude Code and Codex
searches get could not ride a pre-tool hook there. postToolUse
additionalContext is appended to the tool result the model sees on the same
turn (github/docs content/copilot/reference/hooks-reference.md). VS Code's
agent mode shares the Copilot harness and reads the same ~/.copilot/hooks
manifest.

- Manifest: $COPILOT_HOME/hooks/codebase-memory-mcp.json adds a PascalCase
  PostToolUse entry, matcher "Bash|Grep|Glob|bash|powershell|grep|rg|glob",
  running hook-augment --event PostToolUse --dialect copilot. The previous
  lifecycle-only manifest, as installs up to v0.12 wrote it, stays recognized
  as owned: install upgrades it in place and uninstall removes either
  generation. A foreign manifest still fails closed.
- hook-augment: the Copilot dialect reads either payload form
  (tool_name/tool_input or toolName/toolArgs), maps runtime tool names to the
  Claude names (bash/powershell to Bash, grep/rg to Grep, glob to Glob),
  parses arguments passed as a JSON string, and answers with top-level
  additionalContext.
- Fast path: Copilot's forced PostToolUse goes through the no-op gate before
  executable-identity hashing. The gate also skips tools the augmenter does
  not read, because VS Code's local hook parser ignores matchers, so a
  non-search shell call or an edit exits in about 20 ms instead of paying the
  full round-trip of about 130 ms.
- The context header no longer says the search results are "below": after a
  post-tool hook they are above it.
- Tests: the three Copilot foreign-manifest tests now create
  .copilot/mcp-config.json. Without it Copilot CLI was never detected, so
  install and uninstall never reached the manifest, and the tests also passed
  with the ownership checks removed.

Refs #509

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-25 19:50:35 +01:00
Martin Vogel 619192a990 Merge pull request #2719 from DeusData/feat/codex-pretooluse-hook
feat(cli): give Codex shell searches graph context through a PreToolUse hook
2026-10-25 19:48:37 +01:00
Martin Vogel ced508f6a4 Merge pull request #2381 from wcy12378/fix/221-windows-cli-detection
fix(cli): resolve Windows CLI detection for long PATH and npm/mise/scoop shims (#221)
2026-10-25 19:37:14 +01:00
Martin Vogel e2f93baf5c Merge pull request #2231 from yasmoradi/fix/csharp14-extension-members
fix(extraction): recover C# 14 extension block members
2026-10-25 19:37:01 +01:00
Martin Vogel 4a1e6d1103 Merge pull request #2091 from CaptainMittens/fix/ts-lsp-walk-stack-drops-nodes
fix: grow the ts_lsp AST walk stacks so wide files keep every declaration
2026-10-25 19:36:39 +01:00
Martin Vogel 6efe33b730 Merge pull request #1999 from mikemikimike/fix/ts-inferred-receiver-calls-1974
test(ts): add regression for inferred imported receiver
2026-10-25 19:09:43 +01:00
Martin Vogel 023e997fd8 Merge pull request #2281 from knewstimek/pr/windows-aligned-delete-fix
fix(windows): use matching deallocator for CRT aligned blocks
2026-10-25 19:09:31 +01:00
Martin Vogel 46c01c479d Merge pull request #2737 from WarGloom/fix/session-index-watch-registration
fix: watch explicit MCP index targets
2026-10-25 19:04:01 +01:00
Martin Vogel b870019680 Merge pull request #2508 from lorenzozanee/fix/issue-1115-indexed-project-discovery
test(mcp): cover project discovery after store switches (#1115)
2026-10-25 19:03:20 +01:00
Martin Vogel 61f185c7fa Merge pull request #2762 from DeusData/dependabot/npm_and_yarn/graph-ui/npm_and_yarn-49322df965
build(deps): Bump @vitest/mocker from 4.1.11 to 4.1.12 in /graph-ui in the npm_and_yarn group across 1 directory
2026-10-25 18:49:12 +01:00
Martin Vogel 869fc2b54c Merge pull request #2757 from DeusData/codex/codeql-main-alerts
fix: preserve literal input and static asset boundaries
2026-10-25 18:39:47 +01:00
Martin Vogel 18d7273b74 test(config): a v0.10.2 Codex block now upgrades in place to the PreToolUse block
config_toml_codex_accepts_v0102_managed_windows_crlf asserted that re-upserting
over the v0.10.2 lifecycle-only block left the file byte-identical. That block
is now the previous generation: the upsert accepts it as owned and upgrades it
in place. The test now pins that upgrade (one PreToolUse table, BOM, CRLF and
the surrounding tables kept) and that a second upsert is byte-identical.

Refs #715

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-25 17:56:40 +01:00
Martin Vogel 3e5234f660 feat(cli): give Codex shell searches graph context through a PreToolUse hook
Codex runs its hooks with the same contract as Claude Code: its shell tool is
named Bash, tool_input.command is a string, and PreToolUse hookSpecificOutput
additionalContext reaches the model (openai/codex hooks/src/events/
pre_tool_use.rs, core/src/hook_runtime.rs). Codex only had the SessionStart and
SubagentStart reminders (#330), so its grep and rg calls never got the graph
context Claude Code's searches get (#715).

- config.toml: the managed block adds [[hooks.PreToolUse]] matcher = "Bash"
  running the same hook-augment command. The previous block (lifecycle pair
  only, as installs up to v0.12 wrote it) stays recognized as owned, so an
  upgrade replaces it in place and uninstall removes either generation.
- Inline forms (#1432): Codex's inline rewrite of our PreToolUse is replaced.
  A user's own inline hooks.PreToolUse is kept and our block then leaves
  PreToolUse out, because TOML cannot hold an inline array and array-of-tables
  entries for the same key; install says so instead of failing.
- hooks.json: the Codex-only PreToolUse Bash entry is added and removed next to
  the lifecycle pair, touching only the entry whose command is ours.

Codex asks users to re-trust changed hook definitions (/hooks).

Refs #715, #509

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-25 17:56:39 +01:00
Kris 7d01caeb6e Merge branch 'main' into fix/221-windows-cli-detection 2026-10-24 10:08:07 +08:00
dependabot[bot] c9d353440b build(deps): Bump @vitest/mocker
Bumps the npm_and_yarn group with 1 update in the /graph-ui directory: [@vitest/mocker](https://github.com/vitest-dev/vitest/tree/HEAD/packages/mocker).


Updates `@vitest/mocker` from 4.1.11 to 4.1.12
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.12/packages/mocker)

---
updated-dependencies:
- dependency-name: "@vitest/mocker"
  dependency-version: 4.1.12
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-22 02:01:23 +00:00
Martin Vogel 10ab613de3 Merge pull request #1766 from Yyunozor/fix/1355-external-import-shadow
fix(registry): stop external package imports binding to project homonyms
2026-10-22 02:54:58 +02:00
Martin Vogel a3d266d705 Merge pull request #2739 from DeusData/codex/dependabot-alerts-41-44
fix(deps): patch Vite and certifi security advisories
2026-10-22 02:36:35 +02:00
Martin Vogel dad6a01a80 Merge shared UI CI repair from main
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-22 02:27:07 +02:00
Martin Vogel 7028640495 fix(csharp): preserve escaped constructors and conditional extension members
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-22 02:26:28 +02:00
Martin Vogel 67695d4162 Merge current main to refresh required CI
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-22 02:13:21 +02:00
Martin Vogel ff28841eed Merge pull request #2753 from DeusData/codex/fix-ui-reader-focus-loading
fix(ui): hide stale focus warning while arranging graph
2026-10-22 02:11:50 +02:00
Martin Vogel 5e6b1bb3f6 Merge main to include shared CI contract repair
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-22 02:03:54 +02:00
Martin Vogel 22f41f16f2 Merge main to refresh PR CI
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-22 01:41:02 +02:00
Martin Vogel 060b56a1be fix(ts): keep uncapped signature walks linear
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-22 01:40:44 +02:00
Martin Vogel e30dd59fde fix: match architecture handtest identifiers literally
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-22 00:51:41 +02:00
Martin Vogel 8b2d840104 Merge main to pick up shared CI contract fixes
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-22 00:34:24 +02:00
Martin Vogel 8c4747666c fix: preserve literal input and static asset boundaries
Escape project names before building hand-test patterns, compare transport
identifiers as literal tokens, preserve boundaries when extracting prose
and XML facts, and require canonical containment for smoke static assets.
Add regression coverage for metacharacters, dollar identifiers, markup
joining, traversal, symlinks, and malformed URL encoding.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 23:12:06 +02:00
Martin Vogel aa5501d457 Merge main to pick up current CI baseline
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 22:57:29 +02:00
Martin Vogel b260a4bf70 fix: preserve watcher roots and refresh options
Match canonical Windows separators across watch ownership and admission,
drain all session watches when auto_watch is disabled, and retain the
resolved doc_candidates choice for later refreshes. Add deterministic
regressions for the five observed failures and an absent-option guard.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 22:57:14 +02:00
Martin Vogel 329aeeb1a9 Merge branch 'main' into fix/ts-inferred-receiver-calls-1974 2026-10-21 22:43:15 +02:00
Martin Vogel f309fd8425 Merge shared CI baseline fixes into dependency updates
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 22:18:02 +02:00
Martin Vogel 01368e65a2 Merge shared CI baseline fixes into external import shadow fix
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 22:17:52 +02:00
Martin Vogel 884bf9917d Merge main into external import shadow fix
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 22:17:52 +02:00
Martin Vogel 1a0afcdc05 Merge main after shared CI baseline repair
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 22:01:53 +02:00
Martin Vogel 72c36044a4 Merge pull request #2732 from DeusData/fix/language-count-surfaces-after-2729
fix(ci): repair language count and Windows CodeQL retrace contracts
2026-10-21 22:00:49 +02:00
Martin Vogel 72e8be9089 Merge commit '3457b21b0a3d75960c07ed3ec666a9e684985ef9' into HEAD
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 20:05:10 +02:00
Martin Vogel 7890796662 fix(ci): normalize Windows paths in CodeQL retracing
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 20:04:54 +02:00
Martin Vogel 0799f74afa fix(ui): hide stale focus warning while arranging graph
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 20:03:07 +02:00
wargloom 0325d6a3fa fix: watch explicit MCP index targets
Signed-off-by: wargloom <wargloom@gmail.com>
2026-10-21 14:03:07 +03:00
mikemikimike b74e91cb2f test(ts): cover module-level inferred receiver
Signed-off-by: mikemikimike <13286568797@163.com>
2026-10-21 10:46:20 +08:00
Martin Vogel 3457b21b0a Merge pull request #2502 from lorenzozanee/fix/query-graph-where-not-target
fix(cypher): early WHERE pass waits for function-argument aliases; #2250 regression tests
2026-10-21 03:44:39 +02:00
Martin Vogel 37e535ebea Merge pull request #2457 from Zhuoxi2000/fix-haskell-infix-def-name
fix(haskell): name infix-form definitions after the operator
2026-10-21 03:30:55 +02:00
Martin Vogel 402cc818f7 Merge pull request #2639 from H4M4CHi-ttr/fix/windows-utf8-watcher-paths
Thank you for the Windows path fix and the careful pre-fix investigation. This uses the existing UTF-8 filesystem helpers so valid repository roots and cached graph databases are not mistaken for missing paths.

Contributor history and DCO are preserved.
2026-10-21 02:03:00 +02:00
Martin Vogel 49130a3d8f fix(deps): patch Vite and certifi security advisories
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 00:48:24 +02:00
Martin Vogel d2e00366c0 test(contract): drop the language-count surfaces #2729 stopped claiming
The #2729 messaging refresh removed the language count from docs/index.html, docs/llms.txt, pkg/npm/README.md, scripts/package-release.sh and server.json, so Step 0w (tests/test_language_count_contract.sh) failed on main for every PR: each of those files was still registered as a surface but stated no count. They leave SURFACES; README.md and the Chocolatey nuspec still carry the count and stay gated. Section 4 still fails if any dropped file states a count again without being registered (checked by re-adding one).

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 00:33:40 +02:00
Martin Vogel d5bb016a37 Break-glass merge PR #2734 2026-10-21 00:30:54 +02:00
Martin Vogel 6a61538f97 fix(ci): retrace changed vendor families and wrappers
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 00:07:51 +02:00
Martin Vogel a22c89bd9c Merge pull request #2735: improve Lens demo clarity and correct README claims
Thank you to the community for the feedback that helped improve the README and website demonstrations.
2026-10-20 23:27:11 +02:00