fix: 收敛 trans 远端文本短路径

This commit is contained in:
Codex
2026-07-13 05:20:27 +02:00
parent 18937da9db
commit c04983455e
16 changed files with 498 additions and 70 deletions
+9 -1
View File
@@ -8,13 +8,21 @@ UniDesk 的统一 CLI 实现入口是根目录 `scripts/cli.ts`,运行方式
- 顶层帮助只展示分组索引和可执行的下钻命令,详细合同通过 `<command> --help <operation>` 或等价 scoped help 获取。
- 未知子命令、未知 help scope 和可预测 option 校验失败必须返回紧凑、结构化且无 stack 的输入错误;stack 只允许在显式 debug/raw 错误模式下披露,内部异常不得伪装成输入错误。
- 默认输出或帮助输出触发 dump 视为 CLI 缺陷,必须收敛信息结构,禁止用提高 stdout 阈值掩盖。
- dump 只允许用于用户显式请求的 `--full``--raw`、机器完整输出,或确实无法预先界定的一次性异常证据
- 默认超限只返回语义化窄查询,不创建 `/tmp/unidesk-cli-output` dump`--json` 只选择机器格式,不等同于完整披露
- dump 只允许用于用户显式请求的 `--full``--raw``UNIDESK_TRAN_STREAM_DUMP=1`,或确实无法预先界定的一次性异常证据。
- stdin 文本输入默认直接使用 quoted heredoc
- 单次使用的正文、评论、prompt、patch、脚本或 JSON 必须直接写成 `--*-stdin <<'EOF'` 或等价 stdin heredoc。
- 禁止先把同一段文本写入 `/tmp` 或工作区临时文件,再用 `< file` 传给支持 stdin 的命令。
- 只有内容需要复用、作为正式工件保留、属于二进制,或目标工具明确只接受文件路径时,才使用 `--*-file`、upload 或文件重定向。
- heredoc delimiter 必须引用,避免 `$()`、反引号、变量和反斜杠被本地 shell 提前展开。
- `apply-patch` 检测到交互 TTY 且没有 stdin 时必须立即返回 `apply-patch-stdin-required``trans <route> apply-patch <<'PATCH'`,不得等待短连接超时。
- 远端文本与文件传输边界:
- 文本读取使用 `cat``head``tail``rg`
- 文本修改使用 `apply-patch <<'PATCH'`,不得先建临时 patch 文件;
- 已知文本路径的 `upload` / `download` 默认在远端操作和本地目标写入前返回 `text-transfer-discouraged`
- 只有确需整体搬运文本生成物时才显式加 `--allow-text-transfer`,成功结果必须记录 override 并继续执行字节数和 SHA-256 校验。
主 server 必须在 PATH 上提供 `/root/.local/bin/trans` 可执行 wrapper,内容委托 repo 内版本化 `scripts/trans` 并执行 `bun scripts/ssh-cli.ts ssh "$@"`;交互 shell 可额外提供 alias,但非交互 Codex `exec` 和脚本不能依赖 alias 展开。