diff --git a/config/unidesk-cli.yaml b/config/unidesk-cli.yaml index d559e21f..931c9af9 100644 --- a/config/unidesk-cli.yaml +++ b/config/unidesk-cli.yaml @@ -174,8 +174,8 @@ gc: - node22-alpine-bun-v1 - sidecar deletableTagPattern: ^[0-9a-f]{7,64}$ - keepPerRepo: 20 - minAgeHours: 48 + keepPerRepo: 5 + minAgeHours: 24 previewLimit: 20 estimateBlobLimit: 5000 automatic: diff --git a/docs/reference/gc.md b/docs/reference/gc.md index f5609142..d5e34624 100644 --- a/docs/reference/gc.md +++ b/docs/reference/gc.md @@ -58,6 +58,7 @@ - 无论成功或失败都恢复原副本数,并复核 Deployment readiness 与 `/v2/` endpoint。 - writer idle guard 只阻塞 YAML grace 窗口内的新任务,或仍有 `Pending`/`Running` Pod 的 Tekton run;超过 grace 且没有活动 Pod 的残留 run 只报告为 stale,不得永久阻塞维护。 - 每批 manifest 上限由 YAML `automatic.maxDeleteManifestsPerRun` 控制;即使自动策略关闭,人工确认态也复用该批量边界并在每批前重新计算保护闭包。 + - `keepPerRepo` 与 `minAgeHours` 只控制历史版本冗余;运行 workload refs、保护 tag/仓库和 digest closure 始终独立保护,不得因容量目标跳过。 - `--include-tool-caches`:本机和远端都必须是显式 opt-in,只清理固定 allowlist 的可重建 npm/npx/Bun 缓存;不得扩大成清理 `~/.npm`、`~/.bun`、`node_modules`、auth/config 或运行面依赖。 所有成功和失败输出都必须是 JSON。`plan` 必须标记 `dryRun=true`、`mutation=false`;`run` 必须要求 `--confirm` 并报告 `diskBefore`、`diskAfter`、`summary`、`results` 和 `protected`。远端 GC 可用 `--target-use-percent N` 显式表达目标根盘水位;`summary.target` 必须给出目标所需释放量、候选估算、预计水位、缺口和 `safeStop` 决策,避免靠人工心算判断是否应该继续扩大清理范围。