Commit Graph
2889 Commits
Author SHA1 Message Date
Martin Vogel 70a7062e18 Merge origin/main into fix/go-bare-init-never-binds
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-31 16:29:40 +01:00
Martin Vogel 4a78fe6a6b fix(go): a bare init never binds to a package init or an init method
Go gives `init` no binding in the package block: init functions cannot
be referred to from anywhere in a program, and a method or field named
init needs a selector. A bare `init` is therefore always a local name -
a closure (`init := func(ctx) {...}; init(ctx)`), a parameter, or the
`package init` clause of a directory named init.

Before #1915 same_module bound such a name to the flat package init.
With per-file init QNs it now falls through to the short-name fallback
and binds unrelated methods named init. On kubernetes that minted 24
CALLS (22 e2e storage DefineTests closures among them), 28 WRITES,
7 USAGE and one derived TESTS edge, all false.

cbm_go_suppress_bare_init_bind refuses, for a bare Go `init`, any
registry binding onto a Function (every Go Function named init is a
package init) and a weak short-name binding onto a Method or Field.
lsp_* answers and selector calls (`w.init()`) are untouched. Wired at
the CALLS, USAGE and READS/WRITES seams of both resolvers.

Kubernetes, full index, main vs branch: only those 60 edges removed,
nodes identical, no resolver edge added; the 14 LSP-typed selector
CALLS into init methods are unchanged.

Tests: pipeline_go_bare_init_binds_nothing (+ parallel twin) are RED
with the predicate disabled (closure CALLS, parameter CALLS, closure
WRITES, package-clause USAGE onto Watcher.init) and GREEN with it; the
selector control keeps Watcher.Start/Boot -> Watcher.init.
go_bare_init_never_binds_init_namesake pins the predicate.

Refs #1915

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-31 14:16:05 +01:00
Martin Vogel 747665d71f Merge pull request #2752 from gaurav0107/fix/2537-go-net-http-servemux-patterns-with-a-met
fix(routes): read Go 1.22 ServeMux method and host patterns
2026-10-31 13:53:35 +01:00
Martin Vogel e0823879e9 Merge pull request #2819 from DeusData/fix/2386-bm25-post-window-filters
fix(mcp): rank every BM25 candidate when post-window filters would hide them
2026-10-31 13:45:14 +01:00
Martin Vogel d1d8bbfa8f Merge pull request #1833 from LeoLan-Digital/fix/permanent-daemon-watch
fix: persist daemon watches across client disconnects
2026-10-31 13:45:05 +01:00
Martin Vogel 70f6de8a2f Merge pull request #2822 from divakantpandey/fix/2722-install-managed-binary-path
fix(cli): use managed binary path for agent configs when externally managed (#2722)
2026-10-31 13:44:54 +01:00
Martin Vogel d86ca262ce Merge branch 'main' into fix/2386-bm25-post-window-filters 2026-10-31 06:11:43 +01:00
Martin Vogel 4787012023 Merge origin/main into fix/2722-install-managed-binary-path
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-31 06:11:22 +01:00
Martin Vogel 3e075d59be 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-31 06:11:15 +01:00
Martin Vogel 2609e56336 Merge origin/main into fix/permanent-daemon-watch
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-31 06:10:47 +01:00
Martin Vogel 8c62cb3344 Merge origin/main into fix/go-init-qn
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-31 06:10:26 +01:00
Martin Vogel 9f0fdcb400 Merge pull request #2613 from bline/fix/doc-section-hierarchy
fix(markdown): qualify a repeated heading's Section by its parent headings (#2586)
2026-10-31 06:09:28 +01:00
Martin Vogel 85a38ed2a8 Merge pull request #2839 from halindrome/fix/subagent-reminder-cli-fallback
fix(hooks): tell subagents without MCP tools how to reach the graph via the CLI
2026-10-31 06:07:37 +01:00
Martin Vogel 0e4c96b4cf Merge pull request #2849 from DeusData/ci/macos-15-runners
ci: move macOS runners to macos-15 and pin the deployment target to 14.0
2026-10-31 06:07:30 +01:00
Martin Vogel 76dda7e35b Merge pull request #2827 from nefayran/fix/2818-puml-edge-operand
fix(diagram): set an empty PlantUML operand id when there is none
2026-10-31 04:27:30 +01:00
Martin Vogel 395763cd1d Merge origin/main into fix/subagent-cli-hint
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-31 01:02:43 +01:00
Martin Vogel 9bb891b669 ci: move macOS runners to macos-15 and pin the deployment target to 14.0
GitHub retires the macos-14 runner image on 2026-11-02, and its brownouts
already cancel our macos-14 jobs. Move every macos-14 runner reference to
macos-15 (arm64): the release darwin-arm64 build, the unix-macos14 and
tsan-mac test legs, the smoke-mac PR leg (its two matrix.os guards move in
lockstep), the release smoke, both soak legs, the memwaste event lane, the
bug-repro board, the cache warmer and the all-platform smoke. Lane names
stay unchanged: select-lanes.sh, ci-ok and the lane contracts key on them,
never on the runner label.

Two broad legs already ran on macos-15 (_test.yml BROAD_UNIX, _smoke.yml
BROAD_UNIX) and smoke.yml listed both images, so the moved legs would have
duplicated them. Those duplicates are dropped; PR CI keeps exactly the
same legs.

Without an explicit minimum, clang stamps the binary with the SDK's
default (LC_BUILD_VERSION minos), so a release built on macos-15 would
refuse to start on macOS 14. Makefile.cbm now folds
-mmacosx-version-min=14.0 into CC/CXX next to ARCHFLAGS for Apple targets
(detected from the compiler's target, not the host), so it reaches every
compile and link, vendored objects included, on every build path.

Proof on macOS 26.6 / SDK 26.5: the production binary built from
origin/main reports minos 26.0; with this change it reports minos 14.0,
with zero warnings under -Werror, no weak imports and an identical
undefined-symbol set. The test runner (direct make, no env.sh) is minos
14.0 too; platform and daemon_ipc suites pass.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-30 23:44:25 +01:00
Martin Vogel d514868ee4 test(diagram): keep the unclosed class declaration in its own diagram
A class line makes a PlantUML diagram a class diagram, where -> is an arrow rather than a sequence message, so the edge-message fixture could never produce the message arrow it asserts. Put the unclosed declaration in a second @startuml block and assert both diagram kinds.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-30 23:20:25 +01:00
Martin Vogel 6f63e38567 Merge origin/main into fix/search-code-file-pattern-path
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-30 23:00:55 +01:00
Martin Vogel 47474b668a Merge pull request #2826 from knewstimek/fix/inc-c-family-routing
fix(discover): select C++ for C-family .inc fragments
2026-10-30 22:42:29 +01:00
Martin Vogel cf77fb84e2 Merge origin/main into fix/2722-install-managed-binary-path
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-30 22:40:59 +01:00
Martin Vogel b33a645e47 Merge origin/main into fix/permanent-daemon-watch
test_daemon_application.c: the new auto-watch test passes false for the approve_broad parameter that #2017 added to cbm_workspace_grant_add, the same value the existing callers use; the merged tree did not compile without it.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-30 22:37:40 +01:00
Martin Vogel 0bd442cd2f Merge origin/main into fix/doc-section-hierarchy
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-30 22:34:08 +01:00
Martin Vogel 7ee29d8841 Merge origin/main into fix/go-init-qn
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-30 22:33:54 +01:00
Martin Vogel 24dfb30c6d Merge branch 'main' into fix/2386-bm25-post-window-filters 2026-10-30 22:30:32 +01:00
Martin Vogel 46c95bcddb 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-30 22:29:48 +01:00
Martin Vogel a33878c039 Merge pull request #2420 from Fieldnote-Echo/perf/py-cross-registry-index
perf(py-lsp): O(1) type membership in the shared Python cross-registry build
2026-10-30 22:26:46 +01:00
Martin Vogel edb4a6e735 Merge pull request #2295 from MopicMP/fix/java-record-accessor-calls
fix(java): resolve record accessor calls, and never bind a call to data
2026-10-30 22:26:38 +01:00
Martin Vogel 88a1d1d761 Merge pull request #2716 from DeusData/feat/claude-code-plugin-marketplace
feat(plugin): Claude Code plugin marketplace, discovery slice (#1188 slice 1)
2026-10-30 22:26:30 +01:00
Martin Vogel 164b2dc02f Merge pull request #1996 from Jumaga2015/fix/1762-paired-free-functions
fix(store,ui): export paired free functions for FFI callers (#1762)
2026-10-30 22:26:19 +01:00
Martin Vogel d01ba80039 Merge pull request #2244 from lorenzozanee/fix/windows-unicode-agent-detection
fix(cli): support non-ASCII Windows agent paths
2026-10-30 22:26:09 +01:00
Divakant Pandey 58e5841e19 Merge branch 'main' into fix/2722-install-managed-binary-path 2026-10-30 19:02:13 +05:30
Shane McCarron 5a666f2fa3 fix(mcp): match search_code file_pattern with a directory against the repo-relative path
search_code matched file_pattern against the file basename only, so any
pattern containing a directory (src/cli/*.c, apps/web/src/**/*.ts)
silently returned 0 results, while search_graph's file_pattern matches
the full repo-relative path.

A file_pattern containing '/' is now matched in C against the
repo-relative path of every indexed file, on all platforms, with
search_graph-equivalent semantics: '*' and '**' match across '/', '**/'
also matches zero directories, '?' matches one character, and a pattern
without wildcards is a substring match. Patterns without '/' keep the
existing basename behaviour. On Windows such patterns are scanned in
process from the already-filtered list instead of the PowerShell -like
post-filter. A search with a '/' pattern that returns nothing now carries
a hint explaining whole-path matching and pointing at path_filter, and
the schema describes both parameters.

Refs #2836

Signed-off-by: Shane McCarron <shane.mccarron@corvexconnect.com>
2026-10-29 11:46:23 -05:00
Shane McCarron 7f2fd1081d fix(hooks): tell subagents without MCP tools how to reach the graph via the CLI
The SubagentStart hook matches every agent type, but agents defined with an
explicit tool list (e.g. tools: Read, Grep, Glob, Bash) have no MCP tools, and
SubagentStart input carries no tool list to detect that. Append one sentence to
the SubagentStart context only (indexed and unindexed variants) pointing such
agents at `codebase-memory-mcp cli <tool> --help`. Longest variant is ~1.1 KB,
well inside the 2 KB context buffer.

Closes #2837

Signed-off-by: Shane McCarron <shane.mccarron@corvexconnect.com>
2026-10-29 10:48:36 -05:00
Martin Vogel 9c836894f6 Merge origin/main into fix/permanent-daemon-watch
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-29 07:54:04 +01:00
Martin Vogel a3831c9795 Merge pull request #2017 from kobaz/feat/path-allow-broad-too-shallow-override
feat(workspace): add PATH_ALLOW_BROAD override for too-shallow roots
2026-10-29 07:53:11 +01:00
Martin Vogel 7abfb0d847 Merge branch 'main' into feat/claude-code-plugin-marketplace 2026-10-29 07:07:36 +01:00
Martin Vogel d807b1eca7 Merge pull request #2419 from Fieldnote-Echo/perf/py-lexical-ancestor-kind
perf(python): climb the walk cursor for scope-directive and default checks
2026-10-29 06:32:06 +01:00
Rodion Kazennov d68cd2e2af fix(diagram): set an empty PlantUML operand id when there is none
dg_puml_operand set *label up front but *id only on its success paths, so an
opener without its closer (`Alice ->: x`, `[-> Alice: x`, `class [Unclosed`)
returned with *id unwritten. dg_puml_relation and dg_puml_decl then read an
uninitialized dg_str_t and passed it to dg_element, which crashed the index
worker on some stacks. The operand now starts with an empty id, so those lines
take the existing `!lid.n` / `!rid.n` exits and declarations make no element.

Fixes #2818

Signed-off-by: Rodion Kazennov <nefayran@gmail.com>
2026-10-29 05:01:23 +00:00
Martin Vogel bff6ce9c23 Merge origin/main into fix/java-record-accessor-calls
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-29 04:48:28 +01:00
Martin Vogel 3be5a02708 Merge pull request #2601 from bline/fix/doc-link-missing-member
fix(doc-links): report a path::member reference to a missing member (#2587)
2026-10-29 04:47:39 +01:00
Martin Vogel d841ddd177 Merge origin/main into fix/inc-c-family-routing
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-29 04:33:04 +01:00
Martin Vogel 59d6b52679 Merge pull request #2421 from Fieldnote-Echo/fix/dotd-depinfo-sniff
fix(discover): keep make/cargo dep-info .d files out of the D grammar
2026-10-29 04:32:21 +01:00
Martin Vogel ed17097e34 Merge origin/main into fix/permanent-daemon-watch
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-29 04:07:49 +01:00
Martin Vogel d1a96df077 Merge origin/main into fix/java-record-accessor-calls
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-29 03:48:11 +01:00
Martin Vogel ba4122d3cc Merge pull request #2418 from Fieldnote-Echo/fix/sequential-definitions-retention
fix(pipeline): free trees and compact results in sequential definitions pass
2026-10-29 03:47:38 +01:00
Martin Vogel fec0b87b4c 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-29 03:33:16 +01:00
Martin Vogel 006101ae4f Merge pull request #1710 from benrfairless/fix/ruby-namespaced-constructor-callee
fix(extraction): reduce A::B.new callee to the constant
2026-10-29 03:32:26 +01:00
Martin Vogel 83ed2bd9ea Merge branch 'main' into fix/2386-bm25-post-window-filters 2026-10-29 03:29:49 +01:00
Martin Vogel 5842b84c65 Merge origin/main into fix/1762-paired-free-functions
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-29 03:29:22 +01:00