Commit Graph
4709 Commits
Author SHA1 Message Date
Martin Vogel f33f976458 Merge origin/main into fix/2537-go-net-http-servemux-patterns-with-a-met
origin/main (#2305) moved the route-registration checks of the sequential
resolver into calls_emit_route_call and made emit_classified_edge return
whether it emitted. Keep the structure and bookkeeping of main and carry
the ServeMux pattern reading over: emit_classified_edge and
calls_emit_route_call now take the registration path from route_reg_path,
so "POST /v1/x" patterns register in both passes as before.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-28 22:43:04 +01:00
Martin Vogel dca2a44ef0 Merge pull request #2807 from divakantpandey/fix/2787-pi-extension-string-enum
fix(cli): emit string enums as Type.String({ enum }) in Pi adapter (#2787)
2026-10-28 18:10:35 +01:00
Martin Vogel e425666aab Merge pull request #2760 from gaurav0107/fix/2388-extraction-remaining-fixed-size-tsnode-w
fix(extract): YAML walkers grow their stacks instead of capping content
2026-10-28 18:08:25 +01:00
Martin Vogel 635f8e3b63 Merge pull request #2309 from BumaldaOverTheWater94/fix/home-user-symlink-alias
fix(cli): trust root-owned per-user /home entries during activation walk
2026-10-28 18:08:15 +01:00
Martin Vogel 2796460efe Merge pull request #2305 from pcristin/fix/issue-2265-unresolved-call-coverage
fix(pipeline): expose unresolved call coverage
2026-10-28 18:07:59 +01:00
Martin Vogel ea892c5349 Merge pull request #2817 from DeusData/feat/drift-reminder-hook
feat(cli): note when a Claude Code session keeps searching without the graph
2026-10-28 18:07:44 +01:00
Divakant Pandey 323e88fa0b Merge branch 'main' into fix/2787-pi-extension-string-enum 2026-10-28 16:51:53 +05:30
Pcristin 8a2f718e1c Merge branch 'main' into fix/issue-2265-unresolved-call-coverage 2026-10-28 08:27:52 +00:00
Martin Vogel 820cd02307 Merge pull request #2161 from htarnacki/fix/discover-external-fast-mode
fix(discover): retain external source directories in fast mode (#2151)
2026-10-28 07:47:51 +01:00
Martin Vogel ee9dc48d1e Merge origin/main into fix/issue-2265-unresolved-call-coverage
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-28 07:07:50 +01:00
Martin Vogel 8012a7516f Merge origin/main into fix/2388-extraction-remaining-fixed-size-tsnode-w
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-28 03:28:13 +01:00
Martin Vogel 3b646da612 Merge origin/main into fix/2537-go-net-http-servemux-patterns-with-a-met
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-28 03:08:38 +01:00
Martin Vogel 1f934b6afb Merge pull request #2774 from RithvikReddy0-0/python-prefixed-string-urls
extract: fold prefixed and triple-quoted Python string URLs
2026-10-28 03:07:57 +01:00
Martin Vogel b956413eb4 Merge pull request #2423 from harshitaajoshi/fix/2386-bm25-label-window
fix(mcp): apply search_graph label filter inside the BM25 candidate window (#2386)
2026-10-28 02:27:53 +01:00
Martin Vogel 5810183b3b Merge pull request #2430 from AmirF194/fix/2276-incremental-reindex-root-path-stale
fix(pipeline): refresh the projects row's root_path on the delta route
2026-10-28 01:08:02 +01:00
Martin Vogel 74982efc60 test(cli): restore Pi abort-kill assertion dropped alongside #2787 test
The #2787 change added client_adapter_pi_emits_string_enum_issue2787 directly below client_adapter_pi_wraps_result_and_honors_abort and, in the same hunk, removed that test's check that the generated abort handler kills the cli child (if (!child.killed) child.kill();). The generator still emits the line; restore the assertion byte-for-byte so the abort path keeps its coverage.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-27 23:41:04 +01:00
Martin Vogel 7716153630 Merge origin/main into fix/home-user-symlink-alias
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-27 23:36:28 +01:00
Martin Vogel df2c35f841 Merge origin/main into fix/discover-external-fast-mode
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-27 20:03:02 +01:00
Martin Vogel 8fd93a2e08 test(smoke): pin the Claude PostToolUse matcher that covers the graph tools
Smoke check 8d required Claude's PostToolUse matcher to be exactly Read. The
drift note widens it on purpose to Read|mcp__.*codebase-memory-mcp__.*, so a
graph tool call can reset the search count, and the macOS PR smoke failed on
it. 8d now requires exactly the new matcher, and besides a Search matcher it
also refuses a catch-all ("*" or empty) matcher, as its comment promised.

Checked against real installs: the previous binary's Read-only settings fail
8d, the new install passes, and the new install plus a catch-all PostToolUse
entry fails.

Refs #509

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-27 19:32:04 +01:00
Martin Vogel 9c075722c8 Merge origin/main into fix/issue-2265-unresolved-call-coverage
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-27 19:30:40 +01:00
Martin Vogel abdd281566 Merge origin/main into fix/2388-extraction-remaining-fixed-size-tsnode-w
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-27 19:16:18 +01:00
Martin Vogel 20a6f1f801 Merge origin/main into fix/2537-go-net-http-servemux-patterns-with-a-met
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-27 19:15:46 +01:00
Martin Vogel 27c1cdd955 Merge origin/main into python-prefixed-string-urls
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-27 19:15:32 +01:00
Martin Vogel cb0e6b5a2b Merge origin/main into fix/2386-bm25-label-window
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-27 19:15:17 +01:00
Martin Vogel 7ca765f69a Merge origin/main into fix/2276-incremental-reindex-root-path-stale
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-27 19:15:09 +01:00
Martin Vogel 83109dde52 Merge pull request #2802 from harshitaajoshi/fix/2797-relative-import-exact-path
fix(pipeline): never guess a same-named sibling for explicit ./ and ../ imports (#2797)
2026-10-27 19:12:29 +01:00
Martin Vogel e73eb9d6ae Merge pull request #2777 from gaurav0107/fix/1818-daemon-autoindex-skipped-omits-the-effec
fix(daemon): log the effective auto_index_limit in daemon.autoindex.skipped
2026-10-27 19:12:23 +01:00
Martin Vogel 70cd1a5568 Merge pull request #2622 from Lixsp11/fix/windows-sqlite-writer-64bit-offsets
fix(store): use 64-bit file offsets in the SQLite page writer
2026-10-27 19:12:17 +01:00
Martin Vogel 6ef815540d Merge pull request #2422 from Fieldnote-Echo/fix/py-definitions-oom
fix(py-lsp): walk each lambda body at most once per call chain
2026-10-27 19:12:10 +01:00
Martin Vogel aaf9021582 Merge pull request #1730 from henry-hz/upstream-pr/elixir-channels
fix(elixir): Phoenix channel extraction is unreachable in both branches
2026-10-27 19:12:04 +01:00
Martin Vogel 4edc6b7b30 Merge pull request #2724 from tmonestudio/fix/java-skip-dirs-and-typed-calls
fix(discover): keep JVM packages named like build dirs (part of #2661)
2026-10-27 19:11:57 +01:00
Martin Vogel 5948316c3d Merge pull request #2800 from WarGloom/fix/objectscript-empty-deserialize
fix: guard empty ObjectScript scanner state
2026-10-27 19:11:51 +01:00
Martin Vogel 5dcf253b45 Merge pull request #2555 from lorenzozanee/fix/js-template-leading-substitution-url
test(pipeline): guard base-URL constant in JS/TS template fetch URLs (#2540)
2026-10-27 19:11:44 +01:00
Martin Vogel 69b26df9f0 Merge pull request #2372 from lorenzozanee/fix/search-code-cancellation-observability
fix(mcp): report request timing in mcp.request logs
2026-10-27 19:11:15 +01:00
Martin Vogel 402617555c feat(cli): note when a Claude Code session keeps searching without the graph
The search hook gives each Grep, Glob or Bash search the matching graph
symbols, but a session can keep searching text for questions the graph answers
in one call (#509). Once a session has run three searches with no
codebase-memory-mcp tool call, the next augmentation now adds one factual line
saying so. The next note comes after six searches, then twelve, and any graph
tool call resets the count.

- State: a per-session counter in the process that runs hook requests (the
  daemon), keyed by the payload's session_id, in a bounded 64-slot table that
  evicts the least recently used session, behind a spin lock. Only searches
  that reach the graph lookup count. A search without an augmentation still
  counts, and the note waits for the next augmentation.
- Reset: Claude's managed PostToolUse entry now matches
  "Read|mcp__.*codebase-memory-mcp__.*", covering plain and plugin server
  names. The previous Read-only entry, as installs up to v0.12 wrote it, is
  recognized as owned, so install replaces it in place and uninstall removes
  either.
- Scope: Claude Code only. Codex sends the same event payload with a turn_id
  but has no reset hook, so its sessions are not tracked, and payloads without
  a session_id are not tracked either.
- Cost: a graph tool call now runs one hook round-trip to the daemon for the
  reset, about 130 ms on a local build.

Refs #509

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-27 19:04:47 +01:00
Martin Vogel 129443a0b7 Merge pull request #2801 from DeusData/feat/copilot-posttooluse-hook
feat(cli): give Copilot searches graph context through a PostToolUse hook
2026-10-27 19:04:13 +01:00
Divakant Pandey 86320afa97 fix(cli): emit string enums as Type.String({ enum }) in Pi adapter (#2787)
Signed-off-by: Divakant Pandey <divakant01@gmail.com>
2026-10-26 16:06:49 +05:30
Pcristin 81820258ee Merge branch 'main' into fix/issue-2265-unresolved-call-coverage 2026-10-26 08:35:59 +00:00
Martin Vogel 8530c8cd1c Merge pull request #2675 from attilaolah/musl
Fix build against musl
2026-10-26 02:29:09 +01:00
Martin Vogel d6109bfdfe Merge origin/main into fix/windows-sqlite-writer-64bit-offsets
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-26 02:26:54 +01:00
Martin Vogel a49481df70 Merge pull request #2602 from bline/fix/doc-link-moved-directory
fix(doc-links): report references into a moved directory as missing (#2588)
2026-10-26 02:18:59 +01:00
Martin Vogel 25665c6e4d Merge origin/main into fix/search-code-cancellation-observability
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>

# Conflicts:
#	src/mcp/mcp.c
2026-10-26 02:00:28 +01:00
Martin Vogel 14bf8f0c6c fix(mcp): keep request timing, defer protocol behaviour changes
Split the PR along the line the review asked for. The request timing and
transport fields stay: every mcp.request log line carries
handler_duration_ms, response_serialization_ms, cancelled and timed_out,
and a search that reaches its deadline logs status=timeout.

The behaviour changes go back to the base text and need a separate
maintainer decision: stricter jsonrpc/id parsing, dropping "result":null,
NULL returns from the response formatters, leaving the stdio loop on a
missing response or an input/output failure, the removed blocking-poll
fallback, the HTTP 500 path, the daemon session end on a missing response,
and the update-notice warning. Their tests go with them. The list_projects
sort guard is dropped as well (main has the same fix).

cbm_mcp_server_handle formats its three responses with
cbm_jsonrpc_format_response directly; a NULL reply still marks the request
as an error. The cbm_log_mcp_request checks in tests/test_log.c are back
with the new signature, plus checks for the new fields and for
status=timeout. clang-format on the new lines.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-26 01:58:34 +01:00
Martin Vogel f05c221e9c Merge pull request #2744 from harshitaajoshi/fix/2591-cypher-where-property-compare
fix(cypher): support property-to-property comparisons in WHERE (#2591)
2026-10-26 01:58:25 +01:00
Martin Vogel 4ef2d23b1d Merge pull request #2234 from lorenzozanee/fix/framework-entry-dead-code
fix(ui): preserve framework route entry points from dead-code status
2026-10-26 01:57:50 +01:00
Martin Vogel 2ba6e64210 Merge remote-tracking branch 'origin/main' into prq/pr2752-fixup
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-26 01:46:52 +01:00
Martin Vogel 4d97d7819b fix(routes): read a ServeMux pattern only for Handle and HandleFunc
The Go 1.22 pattern split ran for every route-verb callee, so other Go
calls whose name ends in Get/Post/Put/Delete/Patch became route
registrations: st.Get("users/123") on a project method minted
__route__GET__/123 and lost its CALLS edge to Store.Get, and
c.Get("https://api.example.com/v1/x") split "https:" off as a host and
minted __route__GET__//api.example.com/v1/x, in both passes.

cbm_service_pattern_mux_route_path reads the pattern only for a callee
ending ".Handle" or ".HandleFunc", and never for an argument containing
"://". The extractor's handler capture and both passes (route_reg_path,
find_route_path_in_args, cbm_pipeline_route_reg_method) go through it,
so the two passes still mint identical Routes. Two negative cases
extend pipeline_go_servemux_method_patterns_issue2537 in both passes,
and the infrascan unit covers the gate.

Refs #2537

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-26 01:46:33 +01:00
Martin Vogel 9e7794b04f Merge pull request #2443 from bmcnaboe/docs/help-daemon-subcommand
docs(cli): list daemon <start|stop|status> in --help
2026-10-26 01:45:17 +01:00
Martin Vogel 807a780feb Merge origin/main into fix/js-template-leading-substitution-url
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-26 01:42:42 +01:00
Martin Vogel 0c83f60442 Merge origin/main into fix/2276-incremental-reindex-root-path-stale
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-26 01:39:54 +01:00