安全修复:复合命令缺口、状态文件投毒、自批命令、协议 fail-open、dangerlist 漏报
- COMPOUND 补全换行/单个&/重定向(白名单不再被多行/重定向命令绕过),find 移出白名单
- gatekeeper 状态文件读写确定性硬拒(防 approved.json 投毒绕过灾难黑名单)
- 模型自批 approve 命令确定性硬拒(防 --yes 自我放行)
- approvedConsume 校验时间戳必须在过去(防未来时间戳使批准永不过期)
- daemon 协议错误/未知 op 返回 {ok:false},客户端降级内联完整审查(消除 fail-open)
- onReviewerError 支持 prompt 别名;llmTimeoutMs 超时预算钳制(防 hook 超时 fail-open)
- dangerlist 补漏:del/rd flag 顺序无关、Remove-Item 盘根星号、Format-Volume、format.com
- review 输入 JSON 解析失败与基础设施崩溃改为 fail-closed
- install 首次安装从模板生成 config.json;回归扩展至 41 项
This commit is contained in:
@@ -77,6 +77,12 @@ async function cmdInstall() {
|
||||
}
|
||||
out(`✓ 已复制 ${copied} 个文件 → ${TARGET_DIR}`);
|
||||
|
||||
// 首次安装没有 config.json(仓库不含真实密钥)→ 从模板生成
|
||||
if (!existsSync(path.join(TARGET_DIR, 'config.json'))) {
|
||||
cpSync(path.join(SCRIPT_DIR, 'config.example.json'), path.join(TARGET_DIR, 'config.json'));
|
||||
out('✓ 已从模板生成 config.json —— 请编辑填入你的审查端点(baseUrl/apiKey/model)');
|
||||
}
|
||||
|
||||
if (!existsSync(USER_CONFIG)) {
|
||||
out(`✗ 未找到用户配置 ${USER_CONFIG} —— 请确认 ZCode 已安装过并至少启动过一次`);
|
||||
return 1;
|
||||
|
||||
Reference in New Issue
Block a user