Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions scripts/security-allowlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ src/pipeline/pass_githistory.c:popen:via cbm_popen wrapper call
# ── Pipeline: artifact persistence (git HEAD hash, merge driver config) ────
src/pipeline/artifact.c:cbm_popen:git rev-parse HEAD for artifact metadata (hardcoded cmd)
src/pipeline/artifact.c:cbm_popen:git config merge.ours.driver for gitattributes (hardcoded cmd)
src/pipeline/artifact.c:cbm_popen:git diff/ls-files/ls-tree/cat-file for bootstrap hash reconciliation (commit hex-validated via is_hex_oid, repo path shell-validated via cbm_validate_shell_arg)
src/pipeline/artifact.c:popen:via cbm_popen wrapper calls

# ── UI: HTTP server process management ─────────────────────────────────────
Expand Down
8 changes: 7 additions & 1 deletion src/mcp/mcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -3246,7 +3246,13 @@ static void try_artifact_bootstrap(const char *project_name, const char *repo_pa
project_db_path(project_name, db_buf, sizeof(db_buf));
if (cbm_file_size(db_buf) < 0 && cbm_artifact_exists(repo_path)) {
cbm_log_info("index.artifact_bootstrap", "project", project_name);
cbm_artifact_import(repo_path, db_buf);
if (cbm_artifact_import(repo_path, db_buf) == 0) {
/* Reconcile imported (foreign-mtime) hash rows against the local
* working tree so the first incremental run classifies by actual
* git diff instead of re-parsing ~everything. Best-effort: a -1
* return leaves rows foreign and falls back to today's behavior. */
(void)cbm_artifact_reconcile_hashes(repo_path, db_buf, project_name);
}
}
}

Expand Down
Loading
Loading