fix(minio): support mc_path and harden sync against transient objects

This commit is contained in:
William Valentin
2026-02-19 13:18:20 -08:00
parent b5d691a99f
commit d4f4be068c
12 changed files with 238 additions and 21 deletions
+34 -1
View File
@@ -5860,10 +5860,43 @@
"docs/plans/state.json"
],
"test_status": "docs-only change"
},
"minio-mc-path-and-enoent-hardening": {
"status": "completed",
"date": "2026-02-19",
"updated": "2026-02-19",
"summary": "Added backup-level MinIO CLI path override (`backup.minio.mc_path`) and wired it through MinIO backup upload + `minio.share`/`minio.ingest`/`minio.sync`. Added consistent ENOENT guidance so missing `mc` now returns actionable setup errors instead of raw spawn failures.",
"files_modified": [
"src/config/schema.ts",
"src/config/schema.test.ts",
"src/backup/run.ts",
"src/backup/run.test.ts",
"src/tools/builtin/minio-share.ts",
"src/tools/builtin/minio-share.test.ts",
"src/tools/builtin/minio-ingest.ts",
"src/tools/builtin/minio-ingest.test.ts",
"src/tools/builtin/minio-sync.ts",
"src/tools/builtin/minio-sync.test.ts",
"README.md",
"docs/plans/state.json"
],
"test_status": "pnpm test:run src/config/schema.test.ts src/tools/builtin/minio-sync.test.ts src/tools/builtin/minio-ingest.test.ts src/tools/builtin/minio-share.test.ts src/backup/run.test.ts + pnpm typecheck passing"
},
"minio-sync-keep-marker-and-race-hardening": {
"status": "completed",
"date": "2026-02-19",
"updated": "2026-02-19",
"summary": "Hardened `minio.sync` against noisy object listings and race conditions by skipping `.keep` marker objects and treating missing-object read errors (objects deleted after listing) as per-object skips instead of failing the entire sync task.",
"files_modified": [
"src/tools/builtin/minio-sync.ts",
"src/tools/builtin/minio-sync.test.ts",
"docs/plans/state.json"
],
"test_status": "pnpm test:run src/tools/builtin/minio-sync.test.ts + pnpm typecheck passing"
}
},
"overall_progress": {
"total_test_count": 1933,
"total_test_count": 1941,
"all_tests_passing": true,
"p0_completion": "3/3 (100%)",
"p1_completion": "4/4 (100%)",