# 配置参考

[English](configuration.en.md) · [返回 README](../README.md)

## 配置来源与优先级

Auto Review 的 Host 配置由 Bundle 默认值、环境变量和 `auto-review` Settings namespace 组合。Web 设置只影响之后开始的 Review；已经开始的 Review 使用启动时捕获的不可变快照。

Web 卡位于 **设置 → 插件 → Auto Review**，默认折叠。展开后按以下分组显示字段：审查模型、审查范围、证据预算、人工审批、审计。保存只提交已修改字段；`provider/model` 作为一个 `route` 原子更新；相关数值上限按可验证的安全顺序写入，失败时回滚。

升级到新增 Settings 字段的版本时，旧 Host snapshot 可能暂时缺少该字段。Client 会为可见字段使用当前默认值，避免把空字符串报告为“值无效”。插件升级后仍应重启 DSH Host，使 Host Settings schema 与最新 Client 一致；如果保存时提示 Host 拒绝或连接变化，请先重启再重试。

## 字段

| 字段 | 默认值 | 范围或含义 |
|---|---:|---|
| `provider` / `model` | 当前会话路由 | 必须同时设置或同时留空 |
| `timeoutMs` | `30000` | `1`–`120000` |
| `maxOutputTokens` | `600` | `64`–`4096` |
| `maxEvidenceBytes` | `131072` | `4096`–`1048576` |
| `maxActionBytes` | `32768` | `1024`–`262144`，且不大于 evidence budget |
| `maxTranscriptEntries` | `80` | `1`–`500` |
| `maxEntryBytes` | `8192` | `256`–`65536` |
| `reviewShell` | `true` | 审查不能证明为只读的 Shell |
| `reviewNetwork` | `true` | 审查已知 Web/网络工具 |
| `reviewMcp` | `true` | 审查 `mcp__*` |
| `reviewGenericApproval` | `true` | 审查其他扩展产生的 approval request |
| `trajectoryEnabled` | `false` | 兼容字段；Host/环境变量仍接受，当前 Web 设置隐藏且生产 Client 不产生 Trajectory UI |
| `manualOverride` | `denied-and-unavailable` | 见下表 |
| `auditEnabled` | `true` | 启用最终 JSONL 审计 |
| `auditPath` | `${DSH_HOME}/audit/auto-review.jsonl` | 私有非空路径 |
| `auditDetail` | `summary` | `summary` 或 `full` |
| `auditMaxBytes` | `16777216` | `65536`–`1073741824` |
| `maxAuditRecordBytes` | `262144` | `8192`–`4194304`，且不大于 audit max |

## 人工审批策略

| `manualOverride` | 行为 |
|---|---|
| `denied-and-unavailable` | Guardian 拒绝、超时或技术故障时进入 DSH 原生单次审批 |
| `denied-only` | 仅 Guardian 明确拒绝时进入原生单次审批 |
| `never` | 不调用人工 answerer，保持自动结果 |

人工面板只有 `Reject` 和 `Allow once` 语义；允许仍需通过 audit-before-allow。

## 环境变量

常用变量：

```bash
DSH_AUTO_REVIEW_PROVIDER
DSH_AUTO_REVIEW_MODEL
DSH_AUTO_REVIEW_MANUAL_OVERRIDE
DSH_AUTO_REVIEW_AUDIT_PATH
DSH_AUTO_REVIEW_AUDIT_DETAIL
```

Reviewer route 两项必须同时存在。两项都缺失时复用触发工具调用的会话路由；只设置一项属于无效配置并 fail closed。

## Preset patch 注意事项

`cordis.patch.yml` 会替换 `permission.config.presets` 表。Bundle 显式保留 DSH 三个内置 preset 并增加 `auto-review`，但无法自动保留 Profile 中的其他自定义项。请在本 Bundle 之后的 patch 中重新声明自定义项，并执行：

```bash
dsh --profile <profile> --dump-config
```

当前 DSH Web 对内置 preset 图标使用硬编码映射，外部插件没有图标注册 API。本插件保持 plugin-only，因此本版本没有给 `auto-review` 增加伪图标或修改 DSH 内核。
