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>
This commit is contained in:
Martin Vogel committed 2026-10-04 16:40:05 +02:00
1 parent 982621dd08
commit d8ece6ca9b
3 files changed
+6 -5

No files matched your search

+1 -1
View File
@@ -12093,7 +12093,7 @@ static char *resolve_path_owner(const char *path, char *derived) {
cbm_dirent_t *entry;
while ((entry = cbm_readdir(d)) != NULL) {
mcp_project_record_t record = {0};
if (!is_project_db_file(entry->name, strlen(entry->name)) ||
if (!cbm_is_project_index_db(entry->name) ||
read_project_record_identity(dir_path, entry->name, 0, &record) != PROJECT_RECORD_OK) {
continue;
}
+1 -1
View File
@@ -903,7 +903,7 @@ static int resolve_single_call(cbm_pipeline_ctx_t *ctx, CBMCall *call, const CBM
if (cbm_service_pattern_route_method(call->callee_name) != NULL && call->first_string_arg &&
call->first_string_arg[0] == '/') {
handle_route_registration(ctx, call, source_node, module_qn, imp_keys, imp_vals,
imp_count);
imp_count, route_mount);
return SKIP_ONE;
}
return 0;
+4 -3
View File
@@ -2668,7 +2668,8 @@ static void emit_service_edge(cbm_gbuf_t *gbuf, const cbm_gbuf_node_t *source,
static void emit_xlang_refused_route(cbm_gbuf_t *gbuf, const cbm_gbuf_node_t *source,
const CBMCall *call, const char *module_qn,
const cbm_registry_t *registry, const cbm_gbuf_t *main_gbuf,
const char **imp_keys, const char **imp_vals, int imp_count) {
const char **imp_keys, const char **imp_vals, int imp_count,
const char *route_mount) {
if (cbm_service_pattern_route_method(call->callee_name) == NULL) {
return;
}
@@ -2680,7 +2681,7 @@ static void emit_xlang_refused_route(cbm_gbuf_t *gbuf, const cbm_gbuf_node_t *so
const char *route_path = find_route_path_in_args(call, &handler_ref);
if (route_path) {
emit_route_registration(gbuf, source, call, route_path, handler_ref, module_qn, registry,
main_gbuf, imp_keys, imp_vals, imp_count);
main_gbuf, imp_keys, imp_vals, imp_count, route_mount);
}
}
@@ -3259,7 +3260,7 @@ static void resolve_file_calls(resolve_ctx_t *rc, resolve_worker_state_t *ws, CB
* CALLS edge across a language boundary. A route registration
* behind the refused binding still gets its Route. */
emit_xlang_refused_route(ws->local_edge_buf, source_node, call, module_qn, rc->registry,
rc->main_gbuf, imp_keys, imp_vals, imp_count);
rc->main_gbuf, imp_keys, imp_vals, imp_count, route_mount);
continue;
}
if (!target_node || source_node->id == target_node->id) {