fix: add transactional remote patch v2

This commit is contained in:
Codex
2026-05-26 17:38:09 +00:00
parent 6a596bc452
commit 98715ce2be
8 changed files with 1278 additions and 40 deletions
+6 -2
View File
@@ -14,11 +14,15 @@ UniDesk 是一个以主 server 为统一入口的分布式工作平台;本文
- 对第三方模型、硬件、跨平台 bridge、CLI/tran 和高频工具链摩擦的修复,必须先用目标运行面上的最小脚本、临时 pod exec、真实端口或受控透传命令证明核心链路跑通;只有闭环通过后,才把修复固化到源码、测试、长期参考和正式发布。
- 外部 API 或模型行为可能变化时,先查官方/一手文档和成熟实践,再在目标运行面做实验验证;不要凭旧记忆反复推 CI/CD 试错。
## Critical HyueAPI Direct NO_PROXY Rule
- P0: `hyueapi.com` / `.hyueapi.com` 是 Codex API 通道的直连域名,必须始终保留在 `NO_PROXY` / `no_proxy` 中;DeepSeek、Codex API 或其他 provider profile 切换、G14 proxy 注入、旧 D601 egress 迁移和 pod/env render 都不得把 hyueapi 流量改成走 HTTP/SOCKS proxy。
## Critical G14 HWLAB Workspace Rule
- P0: `G14:HWLAB` 是当前 HWLAB DEV/PROD source workspace 和 k3s/GitOps 运行面真相;唯一长期 source workspace 是 G14 节点上的 `/root/hwlab`,固定使用 `G14` 分支和 `origin git@github.com:pikasTech/HWLAB.git`;所有 HWLAB 新开发、文档、render、polling、CI/CD/GitOps 修复默认都必须以该目录和 G14 运行面为准。
- P0: 每次开始 `G14:HWLAB` 分布式开发、切换任务、恢复中断或上下文压缩后,必须重新读取目标 workspace 的 `/root/hwlab/AGENTS.md`,并以该文件和其引用的 HWLAB repo 内规则为当前任务约束;禁止只凭压缩摘要或主 server 记忆继续改代码。
- 操作入口必须通过 UniDesk SSH 维护桥:host/source 操作用 `bun scripts/cli.ts ssh G14 script``bun scripts/cli.ts ssh G14 apply-patch`k3s 操作用 `bun scripts/cli.ts ssh G14:k3s ...`;禁止使用 `ssh G14 k3s ...`,定位必须写在第一个 route token,后续 token 才是 operation。
- 操作入口必须通过 UniDesk SSH 维护桥:host/source 操作用 `bun scripts/cli.ts ssh G14 script`workspace route 加 `v2`,远端文本 patch 默认优先 `v2`、旧 `apply-patch` 仅作 fallbackk3s 操作用 `bun scripts/cli.ts ssh G14:k3s ...`;禁止使用 `ssh G14 k3s ...`,定位必须写在第一个 route token,后续 token 才是 operation。
- 每次开始 `G14:HWLAB` 工作前必须先通过 SSH 桥在 G14 执行 `cd /root/hwlab && git status --short --branch && git remote -v`;若分支不是 `G14...origin/G14`、remote 不是 `git@github.com:pikasTech/HWLAB.git`,或当前路径不是 `/root/hwlab`,必须停止并先修正 workspace,不得继续开发、render、polling 或部署。
- G14 HWLAB 开发必须先以 `/root/hwlab` 做固定 repo 预检,再在 `/root/hwlab/.worktree/<task>` 从最新 `origin/G14` 创建独立 worktree 修改和提交;不要把固定 repo 当作并行任务 scratch 区,细则见 `docs/reference/g14.md`
- P0: G14 已有节点本地 GitHub/Google/DockerHub/npm 等 bootstrap 加速 proxy;在 G14 host、临时 pod、构建 pod 或透传 pod 里拉 GitHub/Google 资源前必须优先使用该 proxy,避免把网络直连失败当作代码阻塞。主入口:HTTP/HTTPS `http://127.0.0.1:10808`、SOCKS `socks5h://127.0.0.1:10808`,备份入口和 NO_PROXY 规则见 `docs/reference/g14.md`
@@ -86,7 +90,7 @@ UniDesk 是一个以主 server 为统一入口的分布式工作平台;本文
## Critical Tran Shell Boundary Rule
- P0: `tran <route> ...` 后面禁止裸放本地 shell 续接控制符,包括 `&&``;``|`;需要在远端执行多步命令时,必须使用 `tran <route> script -- '远端完整脚本'``tran <route> script <<'SCRIPT'` 或等价的单一 stdin/script 参数,避免后半段被本地 shell 执行或被 CLI 误当成 operation 参数。`apply-patch``script``py`明确 stdin-backed operation 可以使用 heredoc 或 `< patch.diff` 作为本地输入。
- P0: `tran <route> ...` 后面禁止裸放本地 shell 续接控制符,包括 `&&``;``|`;需要在远端执行多步命令时,必须使用 `tran <route> script -- '远端完整脚本'``tran <route> script <<'SCRIPT'` 或等价的单一 stdin/script 参数,避免后半段被本地 shell 执行`script -- '<单个字符串>'` 会按远端 shell one-liner 执行;`script -- <多个 argv>` 才是 direct argv。`v2``apply-patch``script``py` 等 stdin/capture-backed operation 可以使用 heredoc 或 `< patch.diff` 作为本地输入。
## CLI