fix: 收敛 trans 远端文本短路径
This commit is contained in:
@@ -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 展开。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user