git: 1cd5f52c2b54 - main - devel/codebase-memory-mcp: update to 0.12.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 16 Oct 2026 07:17:31 UTC
The branch main has been updated by olivier:
URL: https://cgit.FreeBSD.org/ports/commit/?id=1cd5f52c2b54decd8bb994061ee5c0a20ce9d1ff
commit 1cd5f52c2b54decd8bb994061ee5c0a20ce9d1ff
Author: Olivier Cochard <olivier@FreeBSD.org>
AuthorDate: 2026-10-16 07:12:14 +0000
Commit: Olivier Cochard <olivier@FreeBSD.org>
CommitDate: 2026-10-16 07:14:14 +0000
devel/codebase-memory-mcp: update to 0.12.0
---
devel/codebase-memory-mcp/Makefile | 2 +-
devel/codebase-memory-mcp/distinfo | 6 ++--
devel/codebase-memory-mcp/files/patch-Makefile.cbm | 8 ++---
.../files/patch-internal_cbm_cbm.c | 12 ++++----
.../files/patch-internal_cbm_cbm.h | 36 +++++++++++-----------
.../files/patch-internal_cbm_result__compact.c | 26 ++++++++++++++++
.../codebase-memory-mcp/files/patch-src_cli_cli.c | 6 ++--
.../files/patch-src_daemon_ipc.c | 8 ++---
.../files/patch-src_pipeline_pass__definitions.c | 10 +++---
.../files/patch-src_pipeline_pass__parallel.c | 6 ++--
.../files/patch-src_pipeline_pipeline.c | 14 ++++-----
.../files/patch-src_pipeline_pipeline__internal.h | 4 +--
12 files changed, 82 insertions(+), 56 deletions(-)
diff --git a/devel/codebase-memory-mcp/Makefile b/devel/codebase-memory-mcp/Makefile
index 10f0fdaed90c..68e1193374e6 100644
--- a/devel/codebase-memory-mcp/Makefile
+++ b/devel/codebase-memory-mcp/Makefile
@@ -1,6 +1,6 @@
PORTNAME= codebase-memory-mcp
DISTVERSIONPREFIX=v
-DISTVERSION= 0.11.0
+DISTVERSION= 0.12.0
CATEGORIES= devel
MAINTAINER= olivier@FreeBSD.org
diff --git a/devel/codebase-memory-mcp/distinfo b/devel/codebase-memory-mcp/distinfo
index e19f19c211cf..453f42a87c30 100644
--- a/devel/codebase-memory-mcp/distinfo
+++ b/devel/codebase-memory-mcp/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1789587997
-SHA256 (DeusData-codebase-memory-mcp-v0.11.0_GH0.tar.gz) = 7a292eb925640c1d254863733dd260911c94a5f3d1846b228ada685c2770b7ae
-SIZE (DeusData-codebase-memory-mcp-v0.11.0_GH0.tar.gz) = 97846612
+TIMESTAMP = 1792128923
+SHA256 (DeusData-codebase-memory-mcp-v0.12.0_GH0.tar.gz) = a977033aba6ac9e76bb1ad1b13f28367d99663d7ac8b622c6f3b951c632502f3
+SIZE (DeusData-codebase-memory-mcp-v0.12.0_GH0.tar.gz) = 109721617
diff --git a/devel/codebase-memory-mcp/files/patch-Makefile.cbm b/devel/codebase-memory-mcp/files/patch-Makefile.cbm
index d243e69e4a42..67aa4a223740 100644
--- a/devel/codebase-memory-mcp/files/patch-Makefile.cbm
+++ b/devel/codebase-memory-mcp/files/patch-Makefile.cbm
@@ -1,14 +1,14 @@
---- Makefile.cbm.orig 2026-09-15 17:16:24 UTC
+--- Makefile.cbm.orig 2026-10-16 05:39:05 UTC
+++ Makefile.cbm
-@@ -273,6 +273,7 @@ EXTRACTION_SRCS = \
+@@ -372,6 +372,7 @@ EXTRACTION_SRCS = \
$(CBM_DIR)/extract_type_assigns.c \
$(CBM_DIR)/extract_env_accesses.c \
$(CBM_DIR)/extract_channels.c \
+ $(CBM_DIR)/extract_sysctl.c \
$(CBM_DIR)/extract_k8s.c \
$(CBM_DIR)/extract_dbt.c \
- $(CBM_DIR)/helpers.c \
-@@ -389,6 +390,7 @@ PIPELINE_SRCS = \
+ $(CBM_DIR)/doclink.c \
+@@ -551,6 +552,7 @@ PIPELINE_SRCS = \
src/pipeline/pass_cross_repo.c \
src/pipeline/artifact.c \
src/pipeline/pass_ensemble_routing.c \
diff --git a/devel/codebase-memory-mcp/files/patch-internal_cbm_cbm.c b/devel/codebase-memory-mcp/files/patch-internal_cbm_cbm.c
index da9a588dfb5a..8cd70060e01e 100644
--- a/devel/codebase-memory-mcp/files/patch-internal_cbm_cbm.c
+++ b/devel/codebase-memory-mcp/files/patch-internal_cbm_cbm.c
@@ -1,7 +1,7 @@
---- internal/cbm/cbm.c.orig 2026-09-15 17:16:24 UTC
+--- internal/cbm/cbm.c.orig 2026-10-16 05:39:05 UTC
+++ internal/cbm/cbm.c
-@@ -194,6 +194,11 @@ void cbm_channels_push(CBMChannelArray *arr, CBMArena
- arr->items[arr->count++] = ch;
+@@ -472,6 +472,11 @@ void cbm_diagram_arrows_push(CBMDiagramArrowArray *arr
+ arr->items[arr->count++] = da;
}
+void cbm_sysctl_push(CBMSysctlArray *arr, CBMArena *a, CBMSysctl s) {
@@ -12,7 +12,7 @@
// --- String input reader (for parse_with_options) ---
typedef struct {
-@@ -1834,6 +1839,9 @@ static CBMFileResult *extract_file_ex_body(const char
+@@ -3870,6 +3875,9 @@ static CBMFileResult *extract_file_ex_body(const char
// Channel detection (Socket.IO / EventEmitter) — JS/TS only.
cbm_extract_channels(&ctx);
@@ -20,5 +20,5 @@
+ // FreeBSD/DragonFly sysctl OID collection — C only (no-op elsewhere).
+ cbm_extract_sysctl(&ctx);
- // K8s / Kustomize semantic pass (additional structured extraction for YAML-based infra files).
- if (ctx.language == CBM_LANG_KUSTOMIZE || ctx.language == CBM_LANG_K8S) {
+ // Diagrams: blocks of documents and diagram files (self-gated by language).
+ cbm_extract_diagrams(&ctx);
diff --git a/devel/codebase-memory-mcp/files/patch-internal_cbm_cbm.h b/devel/codebase-memory-mcp/files/patch-internal_cbm_cbm.h
index f26022fac7e4..c40bc260c62d 100644
--- a/devel/codebase-memory-mcp/files/patch-internal_cbm_cbm.h
+++ b/devel/codebase-memory-mcp/files/patch-internal_cbm_cbm.h
@@ -1,8 +1,8 @@
---- internal/cbm/cbm.h.orig 2026-09-15 17:16:24 UTC
+--- internal/cbm/cbm.h.orig 2026-10-16 05:39:05 UTC
+++ internal/cbm/cbm.h
-@@ -380,6 +380,21 @@ typedef struct {
- CBMChannelDirection direction;
- } CBMChannel;
+@@ -580,6 +580,21 @@ typedef struct {
+ const char *type_text; // raw annotation text, resolved later per file
+ } CBMFieldType;
+// FreeBSD/DragonFly sysctl OID declaration collected from a SYSCTL_* macro.
+// The runtime dotted path (kern.ipc.maxsockbuf) is NOT stored here — it is
@@ -22,9 +22,9 @@
// Rust: impl Trait for Struct
typedef struct {
const char *trait_name; // trait name (raw text)
-@@ -493,6 +508,12 @@ typedef struct {
- int cap;
- } CBMChannelArray;
+@@ -826,6 +841,12 @@ typedef struct {
+ bool failed;
+ } CBMDocLinkArray;
+typedef struct {
+ CBMSysctl *items;
@@ -35,27 +35,27 @@
// Full extraction result for one file.
typedef struct CBMFileResult {
CBMArena arena; // owns local memory; composites may also retain child arenas below
-@@ -511,6 +532,7 @@ typedef struct CBMFileResult {
- CBMStringRefArray string_refs; // URL/config string literals from AST
+@@ -846,6 +867,7 @@ typedef struct CBMFileResult {
CBMInfraBindingArray infra_bindings; // topic→URL pairs from IaC configs
+ CBMK8sFactArray k8s_facts; // Kubernetes references and CRD declarations
CBMChannelArray channels; // Socket.IO / EventEmitter pub/sub participation
+ CBMSysctlArray sysctls; // FreeBSD/DragonFly SYSCTL_* OID declarations
+ CBMDiagramArrowArray diagram_arrows; // arrows between the file's DiagramElement defs
+ CBMFieldTypeArray field_types; // Python: annotated instance fields (#1277)
- const char *module_qn; // module qualified name
- const char *namespace_name; // declared namespace/package (Java/Kotlin/C#/PHP), NULL if none
-@@ -824,6 +846,7 @@ void cbm_channels_push(CBMChannelArray *arr, CBMArena
- void cbm_impltrait_push(CBMImplTraitArray *arr, CBMArena *a, CBMImplTrait it);
+@@ -1326,6 +1348,7 @@ void cbm_channels_push(CBMChannelArray *arr, CBMArena
+ #endif
void cbm_resolvedcall_push(CBMResolvedCallArray *arr, CBMArena *a, CBMResolvedCall rc);
void cbm_channels_push(CBMChannelArray *arr, CBMArena *a, CBMChannel ch);
+void cbm_sysctl_push(CBMSysctlArray *arr, CBMArena *a, CBMSysctl s);
+ void cbm_diagram_arrows_push(CBMDiagramArrowArray *arr, CBMArena *a, CBMDiagramArrow da);
// --- Sub-extractor entry points ---
-
-@@ -842,6 +865,7 @@ void cbm_extract_channels(CBMExtractCtx *ctx);
+@@ -1345,6 +1368,7 @@ void cbm_extract_channels(CBMExtractCtx *ctx);
void cbm_extract_env_accesses(CBMExtractCtx *ctx);
void cbm_extract_type_assigns(CBMExtractCtx *ctx);
void cbm_extract_channels(CBMExtractCtx *ctx);
+void cbm_extract_sysctl(CBMExtractCtx *ctx);
-
- // Single-pass unified extraction (replaces the 7 calls above except defs+imports).
- void cbm_extract_unified(CBMExtractCtx *ctx);
+ /* Diagrams (diagram.c): a Diagram definition per diagram -- a Markdown, reST
+ * or AsciiDoc block, or a diagram file -- with a DiagramElement definition per
+ * element and the arrows between them. */
diff --git a/devel/codebase-memory-mcp/files/patch-internal_cbm_result__compact.c b/devel/codebase-memory-mcp/files/patch-internal_cbm_result__compact.c
new file mode 100644
index 000000000000..2dccae5b2386
--- /dev/null
+++ b/devel/codebase-memory-mcp/files/patch-internal_cbm_result__compact.c
@@ -0,0 +1,26 @@
+--- internal/cbm/result_compact.c.orig 2026-10-16 06:23:44 UTC
++++ internal/cbm/result_compact.c
+@@ -440,6 +440,15 @@ static void cr_walk(cr_ctx_t *c, CBMFileResult *r) {
+ cr_str(c, &r->channels.items[i].transport);
+ cr_str(c, &r->channels.items[i].enclosing_func_qn);
+ }
++ cr_array(c, (void **)&r->sysctls.items, r->sysctls.count, sizeof(CBMSysctl));
++ for (int i = 0; i < r->sysctls.count && r->sysctls.items; i++) {
++ cr_str(c, &r->sysctls.items[i].leaf_name);
++ cr_str(c, &r->sysctls.items[i].parent_symbol);
++ cr_str(c, &r->sysctls.items[i].self_symbol);
++ cr_str(c, &r->sysctls.items[i].handler);
++ cr_str(c, &r->sysctls.items[i].enclosing_func_qn);
++ cr_str(c, &r->sysctls.items[i].file_rel);
++ }
+ cr_array(c, (void **)&r->field_types.items, r->field_types.count, sizeof(CBMFieldType));
+ for (int i = 0; i < r->field_types.count && r->field_types.items; i++) {
+ cr_str(c, &r->field_types.items[i].class_qn);
+@@ -611,6 +620,7 @@ void cbm_result_compact(CBMFileResult *result) {
+ tmp.string_refs.cap = tmp.string_refs.count;
+ tmp.infra_bindings.cap = tmp.infra_bindings.count;
+ tmp.channels.cap = tmp.channels.count;
++ tmp.sysctls.cap = tmp.sysctls.count;
+ tmp.diagram_arrows.cap = tmp.diagram_arrows.count;
+ tmp.field_types.cap = tmp.field_types.count;
+ tmp.doc_links.cap = tmp.doc_links.count;
diff --git a/devel/codebase-memory-mcp/files/patch-src_cli_cli.c b/devel/codebase-memory-mcp/files/patch-src_cli_cli.c
index 98532a5cd2bd..f29bc25713be 100644
--- a/devel/codebase-memory-mcp/files/patch-src_cli_cli.c
+++ b/devel/codebase-memory-mcp/files/patch-src_cli_cli.c
@@ -1,6 +1,6 @@
---- src/cli/cli.c.orig 2026-09-16 19:47:37 UTC
+--- src/cli/cli.c.orig 2026-10-16 05:39:05 UTC
+++ src/cli/cli.c
-@@ -9003,7 +9003,12 @@ static void cbm_agent_installed_binary_path(const char
+@@ -9223,7 +9223,12 @@ static void cbm_agent_installed_binary_path(const char
static void cbm_agent_installed_binary_path(const char *home, char *binary_path,
size_t binary_path_size) {
@@ -14,7 +14,7 @@
snprintf(binary_path, binary_path_size, "%s/.local/bin/codebase-memory-mcp.exe", home);
#else
snprintf(binary_path, binary_path_size, "%s/.local/bin/codebase-memory-mcp", home);
-@@ -11147,6 +11152,13 @@ int cbm_cmd_install(int argc, char **argv) {
+@@ -11366,6 +11371,13 @@ int cbm_cmd_install(int argc, char **argv) {
manager ? " by " : "", manager ? manager : "", self_path, bin_dir);
}
skip_binary = true;
diff --git a/devel/codebase-memory-mcp/files/patch-src_daemon_ipc.c b/devel/codebase-memory-mcp/files/patch-src_daemon_ipc.c
index 576b8763c2b0..71c6184efff4 100644
--- a/devel/codebase-memory-mcp/files/patch-src_daemon_ipc.c
+++ b/devel/codebase-memory-mcp/files/patch-src_daemon_ipc.c
@@ -1,6 +1,6 @@
---- src/daemon/ipc.c.orig 2026-09-16 19:49:25 UTC
+--- src/daemon/ipc.c.orig 2026-10-16 05:39:05 UTC
+++ src/daemon/ipc.c
-@@ -381,6 +381,9 @@ int cbm_daemon_ipc_wait_pending(const cbm_ipc_pending_
+@@ -482,6 +482,9 @@ int cbm_daemon_ipc_wait_pending(const cbm_ipc_pending_
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/un.h>
@@ -9,8 +9,8 @@
+#endif
#include <time.h>
#include <unistd.h>
-
-@@ -3467,6 +3470,19 @@ uint64_t cbm_daemon_ipc_connection_peer_pid(const cbm_
+ #if defined(__linux__)
+@@ -3755,6 +3758,19 @@ uint64_t cbm_daemon_ipc_connection_peer_pid(const cbm_
return 0;
}
return (uint64_t)peer_id.unp_pid;
diff --git a/devel/codebase-memory-mcp/files/patch-src_pipeline_pass__definitions.c b/devel/codebase-memory-mcp/files/patch-src_pipeline_pass__definitions.c
index de7eccb915c0..44de95bee33a 100644
--- a/devel/codebase-memory-mcp/files/patch-src_pipeline_pass__definitions.c
+++ b/devel/codebase-memory-mcp/files/patch-src_pipeline_pass__definitions.c
@@ -1,18 +1,18 @@
---- src/pipeline/pass_definitions.c.orig 2026-09-15 17:16:24 UTC
+--- src/pipeline/pass_definitions.c.orig 2026-10-16 05:39:05 UTC
+++ src/pipeline/pass_definitions.c
-@@ -876,6 +876,7 @@ int cbm_pipeline_pass_definitions(cbm_pipeline_ctx_t *
+@@ -1040,6 +1040,7 @@ int cbm_pipeline_pass_definitions(cbm_pipeline_ctx_t *
* map is available without the cache (single-file scope). */
total_imports += create_import_edges_for_file(ctx, result, rel, NULL);
create_channel_edges_for_file(ctx, result, rel);
+ cbm_sysctl_emit_raw_for_file(ctx, result, rel);
+ cbm_pipeline_diagram_arrows(ctx, result);
cbm_pipeline_create_env_configures_for_file(ctx, result, rel);
cbm_free_result(result);
- }
-@@ -909,6 +910,7 @@ int cbm_pipeline_pass_definitions(cbm_pipeline_ctx_t *
+@@ -1074,6 +1075,7 @@ int cbm_pipeline_pass_definitions(cbm_pipeline_ctx_t *
total_imports +=
create_import_edges_for_file(ctx, result, files[i].rel_path, namespace_map);
create_channel_edges_for_file(ctx, result, files[i].rel_path);
+ cbm_sysctl_emit_raw_for_file(ctx, result, files[i].rel_path);
+ cbm_pipeline_diagram_arrows(ctx, result);
cbm_pipeline_create_env_configures_for_file(ctx, result, files[i].rel_path);
}
- cbm_pipeline_namespace_map_free(namespace_map);
diff --git a/devel/codebase-memory-mcp/files/patch-src_pipeline_pass__parallel.c b/devel/codebase-memory-mcp/files/patch-src_pipeline_pass__parallel.c
index d4285d239b3d..1373772c3e5b 100644
--- a/devel/codebase-memory-mcp/files/patch-src_pipeline_pass__parallel.c
+++ b/devel/codebase-memory-mcp/files/patch-src_pipeline_pass__parallel.c
@@ -1,10 +1,10 @@
---- src/pipeline/pass_parallel.c.orig 2026-09-15 17:16:24 UTC
+--- src/pipeline/pass_parallel.c.orig 2026-10-16 05:39:05 UTC
+++ src/pipeline/pass_parallel.c
-@@ -1681,6 +1681,7 @@ int cbm_build_registry_from_cache(cbm_pipeline_ctx_t *
+@@ -1996,6 +1996,7 @@ int cbm_build_registry_from_cache(cbm_pipeline_ctx_t *
imports_edges += create_imports_edges(ctx, result, rel, namespace_map);
create_channel_edges(ctx, result, rel);
+ cbm_sysctl_emit_raw_for_file(ctx, result, rel);
+ cbm_pipeline_diagram_arrows(ctx, result);
cbm_pipeline_create_env_configures_for_file(ctx, result, rel);
if (loaded) {
- cbm_free_result(result);
diff --git a/devel/codebase-memory-mcp/files/patch-src_pipeline_pipeline.c b/devel/codebase-memory-mcp/files/patch-src_pipeline_pipeline.c
index 33c6a0cd55c7..aea2140dc975 100644
--- a/devel/codebase-memory-mcp/files/patch-src_pipeline_pipeline.c
+++ b/devel/codebase-memory-mcp/files/patch-src_pipeline_pipeline.c
@@ -1,6 +1,6 @@
---- src/pipeline/pipeline.c.orig 2026-09-16 19:50:09 UTC
+--- src/pipeline/pipeline.c.orig 2026-10-16 05:39:05 UTC
+++ src/pipeline/pipeline.c
-@@ -1032,6 +1032,9 @@ static void predump_complexity(cbm_pipeline_ctx_t *ctx
+@@ -2007,6 +2007,9 @@ static void predump_complexity(cbm_pipeline_ctx_t *ctx
static void predump_complexity(cbm_pipeline_ctx_t *ctx) {
cbm_pipeline_pass_complexity(ctx);
}
@@ -10,11 +10,11 @@
static void predump_ensemble(cbm_pipeline_ctx_t *ctx) {
cbm_pipeline_pass_ensemble_routing(ctx);
}
-@@ -1268,6 +1271,7 @@ static void run_predump_passes(cbm_pipeline_t *p, cbm_
- {predump_sim, "similarity", true},
- {predump_sem, "semantic_edges", true},
- {predump_complexity, "complexity", false},
-+ {predump_sysctl, "sysctl_resolve", false},
+@@ -2277,6 +2280,7 @@ static void run_predump_passes(cbm_pipeline_t *p, cbm_
+ {predump_sim, "similarity", PREDUMP_SKIP_FAST},
+ {predump_sem, "semantic_edges", PREDUMP_FAST_DOC_CANDIDATES},
+ {predump_complexity, "complexity", PREDUMP_EVERY_MODE},
++ {predump_sysctl, "sysctl_resolve", PREDUMP_EVERY_MODE},
/* Importance runs LAST: it reads CALLS/USAGE (extraction) and TESTS
* (pass_tests, which run_post_extraction runs before this loop), so
* every edge type its score depends on already exists here. */
diff --git a/devel/codebase-memory-mcp/files/patch-src_pipeline_pipeline__internal.h b/devel/codebase-memory-mcp/files/patch-src_pipeline_pipeline__internal.h
index f0dfdbe97c3c..6864595f3c5b 100644
--- a/devel/codebase-memory-mcp/files/patch-src_pipeline_pipeline__internal.h
+++ b/devel/codebase-memory-mcp/files/patch-src_pipeline_pipeline__internal.h
@@ -1,6 +1,6 @@
---- src/pipeline/pipeline_internal.h.orig 2026-08-18 20:39:59 UTC
+--- src/pipeline/pipeline_internal.h.orig 2026-10-16 05:39:05 UTC
+++ src/pipeline/pipeline_internal.h
-@@ -570,6 +570,13 @@ int cbm_pipeline_pass_definitions(cbm_pipeline_ctx_t *
+@@ -1167,6 +1167,13 @@ int cbm_pipeline_pass_definitions(cbm_pipeline_ctx_t *
int cbm_pipeline_pass_definitions(cbm_pipeline_ctx_t *ctx, const cbm_file_info_t *files,
int file_count);