Commit Graph
3426 Commits
Author SHA1 Message Date
Martin Vogel 2e7ed659dd Merge pull request #2488 from DeusData/test/daemon-runtime-connection-cap-deterministic
fix(daemon): preserve capacity rejection before the client HELLO
2026-10-04 20:27:41 +02:00
Martin Vogel 8a7519dfd6 Merge pull request #2480 from DeusData/fix/setup-one-install-path
fix(setup): install through install.sh / install.ps1, one install path
2026-10-04 18:03:26 +02:00
Martin Vogel 7bb1de0ed5 Merge pull request #2479 from DeusData/fix/workspace-resolved-home
fix(workspace): compare the home directory in its canonical form
2026-10-04 18:03:21 +02:00
Martin Vogel f40b1a564b Merge pull request #2475 from DeusData/fix/regex-compile-size-budget
fix(regex): size a pattern before compiling and refuse oversized ones
2026-10-04 18:03:16 +02:00
Martin Vogel 5c774862ac Merge pull request #2474 from DeusData/fix/search-arg-bounds
fix(mcp): clamp search_code context on both sides, add sink ceilings
2026-10-04 18:03:10 +02:00
Martin Vogel 94801254fd Merge pull request #2473 from DeusData/fix/pkg-wrapper-archive-limits
fix(pkg): apply the Go wrapper's archive size limits to npm and PyPI
2026-10-04 18:03:05 +02:00
Martin Vogel b05a68ce7b Break-glass merge PR #2544 2026-10-04 17:11:37 +02:00
Martin Vogel d8ece6ca9b fix(build): reconcile three call sites after concurrent merges
Two pairs of pull requests merged cleanly but left main unbuildable:

- #2447 added a route_mount parameter to emit_route_registration and
  handle_route_registration, while #2464 added a new call to each with
  the old argument list. The cross-language refused-route helper from
  #2464 now takes route_mount and passes it on, and the pass_calls.c
  call passes it too, as every other call site does. A route minted for
  a refused binding therefore gets the same Laravel api mount as any
  other route from that file.
- #2446 added a caller of is_project_db_file, which #2526 replaced with
  cbm_is_project_index_db. The new caller uses the replacement, so the
  owning-project lookup accepts the same file names as every other
  project scan.

Verified: build/c/test-runner and the server binary build again; suites
edge_types_probe, mcp, cli and pipeline: 1081 passed, 4 platform skips.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-04 16:40:05 +02:00
Martin Vogel 982621dd08 Merge pull request #2459 from DeusData/fix/doc-comment-capture
fix(extract): capture complete doc comments across languages
2026-10-04 16:30:34 +02:00
Martin Vogel b7f67c29a7 Merge pull request #2526 from DeusData/fix/underscore-project-discovery-v2
fix(mcp): discover projects with underscore-prefixed names
2026-10-04 16:24:34 +02:00
Martin Vogel 86f49a0f87 Merge pull request #2524 from DeusData/fix/issue-1366-search-hint-v2
fix(mcp): avoid misleading empty-search filter hints
2026-10-04 16:24:28 +02:00
Martin Vogel 369cf768c2 Merge pull request #2523 from DeusData/fix/issue-514-constructor-fields-v2
fix(typescript): resolve constructor properties and new-initialized fields
2026-10-04 16:24:22 +02:00
Martin Vogel 266e2814e3 Merge pull request #2518 from DeusData/fix/search-code-scratch-isolation-v2
test(mcp): isolate search scratch cleanup fixtures
2026-10-04 16:24:15 +02:00
Martin Vogel 5e6fa657ee Merge pull request #2517 from DeusData/fix/uninstall-keeps-indexes-v2
fix(cli): keep project indexes by default during uninstall
2026-10-04 16:24:09 +02:00
Martin Vogel 20fd3aadb5 Merge pull request #2511 from DeusData/fix/issue-1364-distinct-before-cap
fix(cypher): count DISTINCT rows against the row cap
2026-10-04 16:24:03 +02:00
Martin Vogel 873a966504 Merge pull request #2510 from DeusData/fix/issue-1484-close-range-v2
fix(subprocess): close inherited descriptors with kernel range operation
2026-10-04 16:23:58 +02:00
Martin Vogel 02abf31016 Merge pull request #2509 from DeusData/fix/issue-1186-psr4-imports-v2
fix(pipeline): resolve PSR-4 imports to exact class files
2026-10-04 16:23:52 +02:00
Martin Vogel dffec08c40 Merge pull request #2498 from DeusData/fix/issue-1277-py-crossfile-fields-v2
fix(python): retain typed fields across file boundaries
2026-10-04 16:23:46 +02:00
Martin Vogel 3a26acf402 Merge pull request #2496 from DeusData/fix/issue-1357-default-branch-v2
fix(mcp): detect changes from the repository default branch
2026-10-04 16:23:38 +02:00
Martin Vogel 79363adbc7 Merge pull request #2495 from DeusData/fix/issue-598-graphql-route-name
fix(pipeline): key GraphQL routes by operation name
2026-10-04 16:23:32 +02:00
Martin Vogel 5a9f6e7637 Merge pull request #2494 from DeusData/fix/issue-1300-silent-worker-exit
fix(index): report clean worker exits without a response
2026-10-04 16:23:27 +02:00
Martin Vogel bad3e482e2 Merge pull request #2469 from DeusData/fix/issue-1419-sqlite-write-amplification
fix(store): cut WAL write amplification on 64 KiB-page indexes (#1419)
2026-10-04 16:23:09 +02:00
Martin Vogel b5649e9823 Merge pull request #2468 from DeusData/fix/issue-1167-1180-client-detect
fix(cli): client detection for OpenCode, Hermes, Claude (#1167, #1180)
2026-10-04 16:23:04 +02:00
Martin Vogel 8c12de9b16 Merge pull request #2467 from DeusData/fix/issue-2228-toml-foreign-tables
fix(install): keep foreign tables between the managed TOML markers (#2228)
2026-10-04 16:22:57 +02:00
Martin Vogel a5d2ea0e18 Merge pull request #2466 from DeusData/fix/issue-1153-instance-receivers
fix(cpp): resolve Class::member calls across files (#1153)
2026-10-04 16:22:51 +02:00
Martin Vogel 3aef1c0bd8 Merge pull request #2464 from DeusData/fix/route-registration-before-xlang-suppression
fix(pipeline): route registrations survive the cross-language guard
2026-10-04 16:22:44 +02:00
Martin Vogel 971afc069d Merge pull request #2463 from DeusData/fix/http-axios-capitalized-import
fix(pipeline): classify capitalized `Axios` calls as HTTP clients
2026-10-04 16:22:26 +02:00
Martin Vogel 59a44d80a9 Merge pull request #2462 from DeusData/fix/http-typed-call-no-url-twin
fix(pipeline): no method-less arg_url twin for a typed HTTP call
2026-10-04 16:22:20 +02:00
Martin Vogel c4e1ad4c87 Merge pull request #2448 from DeusData/fix/hook-augment-log-path
fix(hook-augment): log under the cache dir, never at a cut-off path
2026-10-04 16:22:11 +02:00
Martin Vogel 6644fc433d Merge pull request #2447 from DeusData/fix/issue-1146-laravel-withrouting-prefix
fix(routes): compose the Laravel 11+ withRouting api prefix into Route paths (#1146)
2026-10-04 16:22:05 +02:00
Martin Vogel f6fe11dde9 Merge pull request #2446 from DeusData/fix/issue-1690-skill-project-name
fix(mcp): resolve a directory project arg to its owning project (#1690)
2026-10-04 16:21:59 +02:00
Martin Vogel 01fd6cb5e6 Merge pull request #2342 from DeusData/feat/callable-identity-plumbing
feat(identity): callable identity plumbing, no language enabled (#2061)
2026-10-04 16:21:48 +02:00
Martin Vogel db1dcf4600 Merge pull request #2333 from DeusData/fix/issue-1948
feat(watcher): opt-in polling of non-git project roots (#1948)
2026-10-04 16:21:40 +02:00
Martin Vogel 510fc2d695 Merge pull request #2329 from DeusData/fix/issue-1748
fix(csharp): refresh grammar for collection expressions in conditionals (#1748)
2026-10-04 16:21:07 +02:00
Martin Vogel 4793550568 style(cli): format uninstall help with clang-format 20
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-03 21:20:26 +02:00
Martin Vogel a8abd97644 fix(mcp): discover projects with underscore-prefixed names
Use the shared exact-name database predicate for all five MCP cache
scans, including reindex root ownership. Preserve exclusions for the
two internal stores and cover listing, lookup, hints, and root reuse.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-03 20:49:09 +02:00
Martin Vogel 91117bdf89 fix(mcp): avoid misleading empty-search filter hints
Describe the current filters together when a structural search returns
no results, instead of blaming the label or name pattern.

Refs #1366

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-03 20:21:24 +02:00
Martin Vogel a4a65ed0ea fix(typescript): resolve constructor properties and new-initialized fields
Reuse scoped constructor typing for direct new field initializers and
collect annotated constructor parameter properties as class fields.

Refs #514

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-03 20:16:31 +02:00
Martin Vogel c38bfff4c2 test(mcp): isolate search scratch cleanup fixtures
Let each test server use a private scratch parent so cleanup checks cannot
count other processes' temporary files. Observe live scratch in the
hook-rejection fixture, preserve deadline assertions, and cover scratch
creation failure with a valid path filter for leak-sanitizer validation.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-03 19:15:19 +02:00
Martin Vogel ba6307f037 fix(cli): keep project indexes by default during uninstall
Require --delete-indexes for automatic or noninteractive index removal.
Keep the separate terminal prompt with a default of retaining indexes,
and preserve dry-run and guarded activation ordering.

Refs #2200

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-03 19:11:36 +02:00
Martin Vogel fe8dd9df7e fix(mcp): release path filters on search setup errors
Free the compiled path_filter on missing pattern, missing project, unknown
project root, and failed scratch creation. Exercise the three argument and
project validation exits with a valid filter for leak-sanitizer coverage.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-03 19:05:00 +02:00
Martin Vogel bf2daa3603 fix(lsp): detach field arrays before overlay refinement
Copy inherited field-type pointer arrays into the writable registry arena
before Python refines an existing field. Keep shared type objects intact
and avoid retaining per-file scratch types in the sealed fallback.

Add deterministic shared-state and later-overlay coverage, retaining the
sequential Python field regression and adding a forced-parallel variant.

Refs #1277

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-03 18:25:03 +02:00
Martin Vogel 91ba8a3aa9 fix(subprocess): close inherited descriptors with kernel range operation
Use the Linux close_range syscall or BSD closefrom before exec, retaining
the bounded close loop when the range operation is unavailable. Add
coverage of descriptor closure, strategy selection, and forced fallback.

Refs #1484

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-03 18:09:22 +02:00
Martin Vogel 830f0ccfae fix(pipeline): resolve PSR-4 imports to exact class files
Preserve import kinds and resolve class imports through Composer prefixes
to the existing target class file, including autoload-dev mappings.

Refs #1186

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-03 17:56:11 +02:00
Martin Vogel 519c765e1f fix(python): retain typed fields across file boundaries
Carry declared instance-field types through extraction and result
compaction into the shared Python type registry so chained calls through
imported classes resolve their receiver types.

Refs #1277

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-03 01:37:27 +02:00
Martin Vogel 72f206d18f fix(mcp): resolve repository default for detect_changes
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-03 00:49:21 +02:00
Martin Vogel d13c0ecb73 test(cli): mark Claude Code installations in hook fixtures
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-03 00:21:00 +02:00
Martin Vogel 6f0ef01360 test: restrict tar archive fixtures to supported platforms
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-02 21:08:13 +02:00
Martin Vogel 8292e3e807 test: size hook log temp buffers for Windows paths
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-02 20:51:31 +02:00
Martin Vogel 6c00f96311 fix(setup): install through install.sh / install.ps1, one install path
scripts/setup.sh and scripts/setup-windows.ps1 carried their own copy of
the release download: resolve the latest tag, fetch the archive, unpack it
into the install directory. Two implementations of the same step drifted
apart: the setup scripts did not follow the installers as those gained
their checks, their architecture selection and their staging directory.

Both setup scripts now fetch the installer from the origin and branch they
are themselves served from and hand the download and install over to it,
so there is exactly one implementation and the setup scripts behave like
the installers: the same conditions stop them with a non-zero exit before
anything is installed, setup-windows.ps1 selects the archive through the
installer's architecture detection instead of always amd64 (CBM_ARCH pins
it) and stages in a freshly created directory, and the file is pure ASCII
again. CBM_DOWNLOAD_URL, the
installers' download-base override, also moves the installer fetch so both
scripts can be driven against a local fixture.

Everything the setup scripts do beyond installing the binary is unchanged:
the --from-source / -FromSource builds, the interactive Claude Code
configuration, the PATH hint, the git-hook activation and the uninstall
notes.

tests/test_setup_scripts_contract.sh runs setup.sh against a loopback
fixture release built from a stub binary, in file mode and in curl | bash
mode, covers the cases in which the installer refuses, and pins the static
contract for setup-windows.ps1. It is Step 0z of scripts/test.sh.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-02 06:50:04 +02:00