@@ -63,12 +63,15 @@ CXXFLAGS_PROD = $(CXXFLAGS_COMMON) -O2
6363
6464# Test flags: debug + sanitizers (override SANITIZE= to disable on Windows)
6565SANITIZE = -fsanitize=address,undefined -fno-omit-frame-pointer
66- CFLAGS_TEST = $(CFLAGS_COMMON) -g -O1 $(SANITIZE)
66+ EDITOR_TEST_DEFINES = -DCBM_JSON_LIKE_ENABLE_TEST_API=1 \
67+ -DCBM_TOML_EDIT_ENABLE_TEST_API=1 -DCBM_YAML_ENABLE_TEST_API=1 \
68+ -DCBM_TEXT_EDIT_ENABLE_TEST_API=1 -DCBM_CLI_ENABLE_TEST_API=1
69+ CFLAGS_TEST = $(CFLAGS_COMMON) $(EDITOR_TEST_DEFINES) -g -O1 $(SANITIZE)
6770CXXFLAGS_TEST = $(CXXFLAGS_COMMON) -g -O1 $(SANITIZE)
6871
6972# TSan (can't combine with ASan)
7073TSAN_SANITIZE = -fsanitize=thread -fno-omit-frame-pointer
71- CFLAGS_TSAN = $(CFLAGS_COMMON) -g -O1 \
74+ CFLAGS_TSAN = $(CFLAGS_COMMON) $(EDITOR_TEST_DEFINES) -g -O1 \
7275 $(TSAN_SANITIZE)
7376CXXFLAGS_TSAN = $(CXXFLAGS_COMMON) -g -O1 \
7477 $(TSAN_SANITIZE)
@@ -132,6 +135,8 @@ EXTRACTION_SRCS = \
132135 $(CBM_DIR)/extract_k8s.c \
133136 $(CBM_DIR)/helpers.c \
134137 $(CBM_DIR)/lang_specs.c \
138+ $(CBM_DIR)/macro_table.c \
139+ $(CBM_DIR)/iris_export_xml.c \
135140 $(CBM_DIR)/service_patterns.c
136141
137142# LSP resolvers (compiled as one unit via lsp_all.c)
@@ -174,7 +179,7 @@ STORE_SRCS = src/store/store.c
174179CYPHER_SRCS = src/cypher/cypher.c
175180
176181# MCP server module (new)
177- MCP_SRCS = src/mcp/mcp.c src/mcp/index_supervisor.c
182+ MCP_SRCS = src/mcp/mcp.c src/mcp/index_supervisor.c src/mcp/compact_out.c
178183
179184# Discover module (new)
180185DISCOVER_SRCS = \
@@ -237,7 +242,10 @@ WATCHER_SRCS = src/watcher/watcher.c
237242GIT_SRCS = src/git/git_context.c
238243
239244# CLI module (new)
240- CLI_SRCS = src/cli/cli.c src/cli/progress_sink.c src/cli/hook_augment.c
245+ CLI_SRCS = src/cli/cli.c src/cli/progress_sink.c src/cli/hook_augment.c \
246+ src/cli/agent_clients.c src/cli/agent_profiles.c \
247+ src/cli/config_json_like.c src/cli/config_toml_edit.c src/cli/config_yaml_edit.c \
248+ src/cli/config_text_edit.c
241249
242250# UI module (graph visualization)
243251UI_SRCS = \
@@ -369,6 +377,8 @@ TEST_CS_LSP_SRCS = tests/test_cs_lsp.c
369377
370378TEST_CS_LSP_BENCH_SRCS = tests/test_cs_lsp_bench.c
371379
380+ TEST_PERL_LSP_SRCS = tests/test_perl_lsp.c
381+
372382TEST_SCOPE_SRCS = tests/test_scope.c
373383
374384TEST_TYPE_REP_SRCS = tests/test_type_rep.c
@@ -391,7 +401,9 @@ TEST_INTEGRATION_SRCS = tests/test_integration.c tests/test_incremental.c tests/
391401TEST_TRACES_SRCS = tests/test_traces.c
392402
393403
394- TEST_CLI_SRCS = tests/test_cli.c
404+ TEST_CLI_SRCS = tests/test_cli.c tests/test_agent_clients.c tests/test_agent_profiles.c \
405+ tests/test_config_json_like.c \
406+ tests/test_config_toml_edit.c tests/test_config_yaml_edit.c tests/test_config_text_edit.c
395407
396408TEST_MEM_SRCS = tests/test_mem.c
397409
@@ -448,6 +460,7 @@ TEST_REPRO_SRCS = \
448460 tests/repro/repro_issue581.c \
449461 tests/repro/repro_issue787.c \
450462 tests/repro/repro_issue842.c \
463+ tests/repro/repro_issue964.c \
451464 tests/repro/repro_invariant_calls.c \
452465 tests/repro/repro_invariant_graph.c \
453466 tests/repro/repro_invariant_breadth.c \
@@ -472,7 +485,7 @@ TEST_REPRO_SRCS = \
472485 tests/repro/repro_lsp_java_cs.c \
473486 tests/repro/repro_lsp_kt_php_rust.c
474487
475- ALL_TEST_SRCS =$(TEST_FOUNDATION_SRCS) $(TEST_EXTRACTION_SRCS) $(TEST_STORE_SRCS) $(TEST_CYPHER_SRCS) $(TEST_MCP_SRCS) $(TEST_DISCOVER_SRCS) $(TEST_GRAPH_BUFFER_SRCS) $(TEST_PIPELINE_SRCS) $(TEST_WATCHER_SRCS) $(TEST_LZ4_SRCS) $(TEST_ZSTD_SRCS) $(TEST_ARTIFACT_SRCS) $(TEST_SQLITE_WRITER_SRCS) $(TEST_GO_LSP_SRCS) $(TEST_C_LSP_SRCS) $(TEST_PHP_LSP_SRCS) $(TEST_CS_LSP_SRCS) $(TEST_CS_LSP_BENCH_SRCS) $(TEST_SCOPE_SRCS) $(TEST_TYPE_REP_SRCS) $(TEST_PY_LSP_SRCS) $(TEST_PY_LSP_BENCH_SRCS) $(TEST_PY_LSP_STRESS_SRCS) $(TEST_PY_LSP_SCALE_SRCS) $(TEST_TS_LSP_SRCS) $(TEST_JAVA_LSP_SRCS) $(TEST_KOTLIN_LSP_SRCS) $(TEST_RUST_LSP_SRCS) $(TEST_TRACES_SRCS) $(TEST_CLI_SRCS) $(TEST_MEM_SRCS) $(TEST_UI_SRCS) $(TEST_HTTPD_SRCS) $(TEST_SECURITY_SRCS) $(TEST_YAML_SRCS) $(TEST_SEMANTIC_SRCS) $(TEST_AST_PROFILE_SRCS) $(TEST_SLAB_ALLOC_SRCS) $(TEST_SIMHASH_SRCS) $(TEST_STACK_OVERFLOW_SRCS) $(TEST_INTEGRATION_SRCS)
488+ ALL_TEST_SRCS =$(TEST_FOUNDATION_SRCS) $(TEST_EXTRACTION_SRCS) $(TEST_STORE_SRCS) $(TEST_CYPHER_SRCS) $(TEST_MCP_SRCS) $(TEST_DISCOVER_SRCS) $(TEST_GRAPH_BUFFER_SRCS) $(TEST_PIPELINE_SRCS) $(TEST_WATCHER_SRCS) $(TEST_LZ4_SRCS) $(TEST_ZSTD_SRCS) $(TEST_ARTIFACT_SRCS) $(TEST_SQLITE_WRITER_SRCS) $(TEST_GO_LSP_SRCS) $(TEST_C_LSP_SRCS) $(TEST_PHP_LSP_SRCS) $(TEST_CS_LSP_SRCS) $(TEST_CS_LSP_BENCH_SRCS) $(TEST_PERL_LSP_SRCS) $( TEST_SCOPE_SRCS) $(TEST_TYPE_REP_SRCS) $(TEST_PY_LSP_SRCS) $(TEST_PY_LSP_BENCH_SRCS) $(TEST_PY_LSP_STRESS_SRCS) $(TEST_PY_LSP_SCALE_SRCS) $(TEST_TS_LSP_SRCS) $(TEST_JAVA_LSP_SRCS) $(TEST_KOTLIN_LSP_SRCS) $(TEST_RUST_LSP_SRCS) $(TEST_TRACES_SRCS) $(TEST_CLI_SRCS) $(TEST_MEM_SRCS) $(TEST_UI_SRCS) $(TEST_HTTPD_SRCS) $(TEST_SECURITY_SRCS) $(TEST_YAML_SRCS) $(TEST_SEMANTIC_SRCS) $(TEST_AST_PROFILE_SRCS) $(TEST_SLAB_ALLOC_SRCS) $(TEST_SIMHASH_SRCS) $(TEST_STACK_OVERFLOW_SRCS) $(TEST_INTEGRATION_SRCS)
476489
477490
478491# ── Build directories ────────────────────────────────────────────
@@ -626,6 +639,14 @@ $(BUILD_DIR)/test-runner: $(ALL_TEST_SRCS) $(PROD_SRCS) $(EXTRACTION_SRCS) $(AC_
626639test: $(BUILD_DIR)/test-runner
627640 cd $(CURDIR) && $(BUILD_DIR)/test-runner
628641
642+ # Focused native development is intentionally a separate, explicit target so
643+ # an inherited TEST_SUITES value cannot silently narrow the gating test target.
644+ TEST_SUITES ?=
645+ test-focused: $(BUILD_DIR)/test-runner
646+ @test -n "$(strip $(TEST_SUITES))" || \
647+ (echo "TEST_SUITES is required for test-focused"; exit 2)
648+ cd $(CURDIR) && $(BUILD_DIR)/test-runner $(TEST_SUITES)
649+
629650# ── Cumulative bug-reproduction runner (RED by design, non-gating) ──
630651# Mirrors test-runner's link line but uses repro_main.c (own main + counters)
631652# and TEST_REPRO_SRCS instead of ALL_TEST_SRCS. Exits non-zero while any bug is
0 commit comments