Commit Graph
3342 Commits
Author SHA1 Message Date
Martin Vogel 77310d5f6f fix(cli): keep the hook default path untouched while ignore_worktrees is off
The lifecycle hook now reads ignore_worktrees first and does nothing
else for it while the key is off; the project lookup is then the one
the hook did before the key existed.

- cbm_mcp_ignore_worktrees_runtime_enabled() replaces
  cbm_mcp_server_attach_runtime_config(). It never attaches a store to
  the server, which may be the daemon session server. A server with a
  store answers from it. Otherwise the runtime store is opened only to
  read this key, and only when it already exists, so a hook event never
  creates _config.db.
- cwd canonicalization, the linked-worktree probe and the parent-graph
  check moved into ha_resolve_project_ignoring_worktrees(), which runs
  only when the key is on.

Test cli_hook_ignore_worktrees_default_off_does_no_worktree_work was red
on the previous head (a default-off event created _config.db). It also
pins, through a test-API counter, that neither an absent store nor a
store without the key reaches the worktree gate, and that the key on
reaches it once. mcp_ignore_worktrees_runtime_read_leaves_server_and_store_alone
replaces the test of the removed helper.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-11-02 02:04:15 +01:00
Martin Vogel faf25ee4fa fix(config): drop the fuzz-link and Cypher hunks from the worktree change
The review of 2026-10-01 asked to split these out of the ignore_worktrees
change. Neither belongs to it, and both are already on main in another
form, so this restores the three files to the branch merge-base:

- Makefile.cbm: main links cbm-fuzz with -fsanitize-link-c++-runtime.
- src/cypher/cypher.c and tests/test_cypher.c: main frees a partially
  parsed MATCH pattern since 70543ba82, with its own regression test
  cypher_parse_error_frees_partial_pattern.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-11-02 02:04:05 +01:00
Nohj 62479ff9fc Isolate Git context probes from inherited repository environment
Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-30 22:38:59 -04:00
Nohj 9588007b16 Free partial Cypher patterns after parse errors
Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-30 21:45:52 -04:00
Nohj adc2764a3e Fix C++ sanitizer runtime linkage in fuzz build
Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-30 20:32:09 -04:00
Nohj 470500eaae Restore runtime config attachment for hook augmentation
Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-30 19:55:35 -04:00
Nohj 7ca336b5aa Merge worktree follow-ups into PR #1430
Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-30 19:39:42 -04:00
Nohj b2e1433711 Fix portable stat declarations for worktree detection
Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-30 19:31:54 -04:00
Nohj 3f6969a6c5 Merge upstream main into fm/cbm-worktree-ignore-1
Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-30 19:17:54 -04:00
Martin Vogel 0f52d30c29 Merge pull request #2412 from DeusData/fix/activation-unknown-daemon-is-foreign
fix(cli): never stop a daemon whose cache is not confirmed as ours
2026-09-30 22:21:59 +02:00
Martin Vogel 878379a8af Merge pull request #2411 from DeusData/fix/harness-timeout-race-deterministic
test(harness): hold the scheduler contract's fixtures by construction
2026-09-30 22:21:53 +02:00
Martin Vogel f4ff01b10b Merge pull request #2410 from DeusData/fix/test-runner-isolate-runtime-dir
fix(test): isolate the C test runners' daemon runtime
2026-09-30 22:21:48 +02:00
Martin Vogel 8b8cafb616 Merge pull request #2409 from DeusData/test/daemon-ipc-startup-gate-no-timeout
test(daemon-ipc): wait for the startup gate event, not an attempt budget
2026-09-30 22:21:43 +02:00
Martin Vogel 218f0e5b78 Merge pull request #2408 from DeusData/test/watcher-poll-only-watched-deflake
test(watcher): poll-only-watched-projects waits for the watched reindex, not one poll
2026-09-30 22:21:35 +02:00
Martin Vogel 0bee4c1b79 Merge pull request #2406 from DeusData/fix/spill-test-disk-determinism
test(spill): make spill test verdicts independent of host free disk
2026-09-30 22:21:17 +02:00
Martin Vogel 48acb559e6 Merge pull request #2405 from DeusData/fix/internal-db-enumeration
fix(cli): never treat internal cache stores as project indexes
2026-09-30 22:21:11 +02:00
Martin Vogel 083bc99d80 Merge pull request #2404 from DeusData/fix/issue-2118
fix(mcp): annotate get_file_outline and ingest_traces as read-only (#2118)
2026-09-30 22:21:06 +02:00
Martin Vogel 39da5de00c Merge pull request #2403 from DeusData/fix/issue-1297
docs(readme): semantic_query is a search_graph parameter; team artifact is opt-in (#1297)
2026-09-30 22:21:00 +02:00
Martin Vogel d0ec2313d9 Merge pull request #2394 from DeusData/fix/issue-2184-post-extraction-budget
fix(pipeline): spill before the post-extraction phases when they would cross the budget (#2184)
2026-09-30 22:20:56 +02:00
Martin Vogel 6d19350e37 Merge pull request #2358 from DeusData/fix/issue-2311
docs(pipeline): CBM_EXTRACT_BUDGET is a CPU-time parse budget, not bytes (#2311)
2026-09-30 22:20:51 +02:00
Martin Vogel cb251ed472 Merge pull request #2357 from DeusData/fix/issue-2144
feat(mcp): opt-in async index_repository with status polling (#2144)
2026-09-30 22:20:46 +02:00
Martin Vogel 029919c660 Merge pull request #2355 from DeusData/fix/issue-2209
fix(install): Hermes hook edit no longer refuses unrelated YAML sections (#2209)
2026-09-30 22:20:30 +02:00
Martin Vogel 1ff6299976 Merge pull request #2354 from DeusData/fix/issue-2235
fix(extract): read the url of a JS/TS request-config object (#2235)
2026-09-30 22:20:23 +02:00
Martin Vogel 368f33f9e0 Merge pull request #2353 from DeusData/fix/issue-2200
test(cli): pin that update -y never deletes project indexes (#2200)
2026-09-30 22:20:18 +02:00
Martin Vogel 372aff2b5c Merge pull request #2351 from DeusData/fix/issue-2208
fix(cypher): carry the real node through WITH, not a name-only stub (#2208)
2026-09-30 22:20:14 +02:00
Martin Vogel 6746f43549 Merge pull request #2343 from DeusData/fix/issue-2133
fix(cross-repo): a pre-#768 store no longer aborts ["*"] or wipes edges (#2133)
2026-09-30 22:19:37 +02:00
Martin Vogel 94097f0727 Merge pull request #2341 from DeusData/fix/git-spawn-local-env
fix(git): clear git's repository-local env for cbm's own git children (#2003)
2026-09-30 22:19:32 +02:00
Martin Vogel 9df483f0af Merge pull request #2338 from DeusData/fix/issue-2044
fix(install): accept a Codex hook binary path that contains a space (#2044)
2026-09-30 22:19:27 +02:00
Martin Vogel 30a410b398 Merge pull request #2335 from DeusData/fix/issue-1955
fix(daemon): hash a verified peer image copy once, not on every HELLO (#1955)
2026-09-30 22:19:22 +02:00
Martin Vogel 78795ad76a Merge pull request #2339 from DeusData/fix/issue-2053
fix(rust): never let a std-typed receiver bind a same-named project method (#2053)
2026-09-30 22:19:17 +02:00
Martin Vogel 5910c47a97 Merge pull request #2332 from DeusData/fix/issue-1916
fix(pipeline): compose axios.create baseURL into HTTP_CALLS (#1916)
2026-09-30 22:19:12 +02:00
Martin Vogel e2f9fcc399 Merge pull request #2334 from DeusData/fix/issue-1951
fix(mcp): translate Git-root paths for subdirectory projects in detect_changes (#1951)
2026-09-30 22:19:07 +02:00
Martin Vogel 7821a1babb Merge pull request #2331 from DeusData/fix/issue-1827
fix(mcp): resolve projects by their non-ASCII folder name (#1827)
2026-09-30 22:19:02 +02:00
Martin Vogel 6bce86383e Merge pull request #2330 from DeusData/fix/issue-1783
fix(sqlite-writer): never end a B-tree level with a zero-cell interior page (#1783)
2026-09-30 22:18:48 +02:00
Martin Vogel 09819ba144 Merge pull request #2328 from DeusData/fix/issue-1743
fix(lsp): bound structured-binding field reads and TS method heritage walk (#1743)
2026-09-30 22:18:43 +02:00
Martin Vogel 0cff5dbe7c Merge pull request #2325 from DeusData/fix/issue-1735
fix(discover): skip Laravel's compiled Blade view cache by default (#1735)
2026-09-30 22:18:38 +02:00
Martin Vogel e9a3d18fbd Merge pull request #2322 from DeusData/fix/issue-1687
fix(daemon): name the WSL DrvFs remedy when a /mnt/<drive> cache is refused (#1687)
2026-09-30 22:18:33 +02:00
Martin Vogel f5ecb5f739 Merge pull request #2321 from DeusData/fix/issue-1457
fix(dart): index extension declarations and their members (#1457)
2026-09-30 22:18:27 +02:00
Martin Vogel 2bed1c8c4a Merge pull request #2319 from DeusData/fix/issue-1459
fix(cross-repo): skip CROSS_HTTP_CALLS for calls the caller serves itself (#1459)
2026-09-30 22:18:22 +02:00
Martin Vogel aa53278b29 Merge pull request #2318 from DeusData/fix/issue-1133
fix(cross-repo): fail explicitly when zero target projects resolve (#1133)
2026-09-30 22:17:47 +02:00
Nohj cb7dfae20b Merge pull request #1 from vitalNohj/cloud/cbm-worktree-ignore-rework-6ddc
feat(config): ignore_worktrees rework for DeusData#1430
2026-09-30 05:02:46 -04:00
Nohj b21c8ccb6e fix(cli): drop a parent worktree graph without a new free
The memory-core ratchet rejects another raw free() in the hook. Keep the
parent name until the existing free(project) and skip it when the match
is a different worktree.

Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-29 12:19:57 +00:00
Nohj 3bab06134b style(cli): break the worktree gate assignment for clang-format
The ignore_linked initializer exceeded the formatter's assignment break.
Lint treats that as an error, so the line now matches .clang-format.

Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-29 12:00:58 +00:00
Nohj 394faaacfb fix(cli): canonicalize cwd before the worktree gate
A symlink into a linked worktree has no .git on its lexical path, so the
hook told the agent to run index_repository. That call canonicalizes first
and then refuses. Resolve the cwd before project lookup and the
ignore_worktrees checks.

Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-29 11:35:29 +00:00
Nohj 72f1a52dc6 fix(git): identify a worktree by its canonical gitdir
A 64-level walk missed a deep session path, and a relative gitdir joined
onto a symlink spelling no longer matched the real project root. Walk to
the filesystem root and compare canonical gitdirs. Drop the unused project
resolver that failed the macOS -Werror build.

Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-29 11:25:14 +00:00
Nohj 51a18c7b27 fix(cli): keep a worktree graph only for that same worktree
The parent-graph drop treated any linked worktree root as a match, so an
unindexed worktree nested inside an indexed one still inherited that
parent. Compare the gitdir of each path's own anchor and keep the project
only when both paths are that same linked worktree.

Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-29 11:18:45 +00:00
Nohj 47c7a07a74 fix(cli): do not treat a parent graph as a linked worktree
ignore_worktrees checked the setting only after project resolution, so a
linked worktree nested in an indexed checkout was reported as that parent
project. Drop an ancestor match and keep an index whose root is the
worktree itself.

Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-29 11:12:54 +00:00
Nohj 0071007396 fix(git): detect linked worktrees from nested directories
ignore_worktrees only inspected <path>/.git, so a session or index path
inside a linked worktree still passed the gate. Walk ancestors until a
git anchor, and stop at a main checkout or a submodule.

Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-29 10:59:57 +00:00
Nohj 5d5c9621eb fix(cli): load runtime config for the hook-augment worktree note
The production hook builds its server with cbm_mcp_server_new(NULL), so
ignore_worktrees stayed off and an unindexed linked worktree still told
the agent to run index_repository. Attach the runtime store for that
check, then drop it before return.

Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-29 10:44:02 +00:00
Nohj 3bb85c8c7c fix(daemon): recheck ignore_worktrees on auto-index retry
A session queued while capacity was full could still be indexed after the
setting was turned on. Retry admission now applies the same linked-worktree
gate as the initial path.

Signed-off-by: Nohj <vitalnohj@gmail.com>
2026-09-29 03:37:57 +00:00