docs: 固化 Webterm PTY 验收规则
This commit is contained in:
@@ -136,7 +136,29 @@ changelog。
|
||||
- 禁止作为 `oncx` 的 ChatGPT 登录凭据。
|
||||
- Webterm:
|
||||
- `config/platform-infra/webterm.yaml` 启动 `mycx`;
|
||||
- wrapper path 或启动方式变更必须保留原入口并执行 Webterm launch check。
|
||||
- YAML 是 target、镜像、端口、启动命令、fallback shell、挂载和公网暴露的唯一真相;
|
||||
- 关闭公网暴露:
|
||||
- `publicExposure.enabled: false` 时,DNS、FRP 和 Caddy 字段不参与解析与验证;
|
||||
- `plan`、`status` 和 `validate` 必须明确返回 `skipped`。
|
||||
- target 校验:
|
||||
- 按 YAML 中的实际端口和 `TERMINAL_SHELL` 只读挂载判断;
|
||||
- 禁止把 `7683`、固定挂载数量或其他实例值写入代码门禁。
|
||||
- PTY 所有权:
|
||||
- `nsenter` 或 `chroot` 后必须由唯一的长期交互 Bash 持有 PTY;
|
||||
- 禁止让外层非交互 Bash 等待内层交互 Bash,再在内层退出后创建 fallback shell。
|
||||
- 启动命令中断:
|
||||
- 持有 PTY 的 Bash 必须在启动命令运行期间显式处理 `SIGINT`;
|
||||
- 前台子命令退出后继续执行 fallback,再恢复默认 handler;
|
||||
- fallback shell 必须由原进程 `exec`,禁止创建新的等待层。
|
||||
- Webterm launch check:
|
||||
- wrapper path 或启动方式变更必须保留原入口;
|
||||
- 从真实 Web/xterm 入口启动 `mycx`、发送 `Ctrl+C` 并执行 marker;
|
||||
- 确认会话仍为 `running`;
|
||||
- 确认没有 `initialize_job_control`、`no job control` 或非主动 `logout`。
|
||||
- foreground process group 验证:
|
||||
- 使用 Bash 内建 `read < /proc/$$/stat` 同时读取 `pgrp` 和 `tpgid`;
|
||||
- 禁止用外部 `ps` 读取后直接比较;
|
||||
- `ps` 执行期间会暂时成为 foreground process group,导致错误的不相等结果。
|
||||
- Shell startup 文件:
|
||||
- 禁止定义同名 function 覆盖这些 executable;
|
||||
- 禁止在启动时重新生成 profile 文件;
|
||||
|
||||
Reference in New Issue
Block a user