Commit Graph
3 Commits
Author SHA1 Message Date
host eb495892e1 fix(chv): 阶段 3 live 根因——浏览器 socket 与数据盘 profile 的两处权限
- /run/chv 0755 root:root 时 chv-browser 建 browser.sock 报
  PermissionError、服务无限 crash-loop(P2 遗留,阶段 2 从未验
  过 browser.sock):tmpfiles 改 0775 root:chv-browser。
- /home/chv 默认 0750,chv-browser 穿不过家目录,ismount 判假、
  profile 静默回落本机盘:chv-data-mount 挂载成功后 chmod 0751
  /home/chv(只放行穿过,不放行列表)。
- 驱动:等 cloud-init done + 四服务 active 再验浏览器。
- 回归 97 项全过(新增 2 项接线断言)。
2026-11-08 09:45:00 +00:00
host 1188e4b000 feat(chv): 阶段 3 浏览器服务化——持久 profile + CDP + 多会话 + JPEG 截图 + 双浏览器
- chv-browser:launch_persistent_context,profile 固定数据盘
  /home/chv/workspace/.chv-browser-profile(未挂载回落本机盘并明说);
  CDP --remote-debugging-port 9222(op cdp 返回 webSocketDebuggerUrl);
  多会话每会话一页;截图 JPEG q70、viewport 宽封顶 1280、diff_only
  整帧相同跳过;mount_full/unmount_full 切 full/shell 引擎,full
  未装或起不来回落 shell 并明说。
- chv-data-mount:挂载后预建 profile 目录(chv-browser:chv-browser 0700)。
- build.sh:chv-browser 单元 Restart=always、After cloud-final.service。
- chv-execd:codex 环境白名单加 CHV_BROWSER_ 前缀。
- 测试:新增 test_chv_opt_stage3.py(20 项);P2 假实现改为持久
  上下文 + JPEG;stage2 的 Restart=always 计数 3→4。
- 全量回归 2032 过 skipped=8。
2026-11-08 09:45:00 +00:00
host a5f836e9fd feat(chv-guest): 阶段 1 数据盘独立持久(客内挂载)
- 新增 chv-guest/chv-data-mount.sh:按 LABEL=CHVDATA 找盘
  (不依赖 /dev/vd? 固定名;seed ISO 与根盘排除),无 fs
  即 mkfs.ext4 -L CHVDATA,挂到 /home/chv/workspace,幂等;
  无数据盘即静默退出 0(copy 模式旧 VM 不报错)。
- build.sh:缺脚本即失败(与 chv-sync.sh 同款门);拷入
  镜像 /usr/local/bin/chv-data-mount;99-chv-sync.cfg
  runcmd 在 chv-sync boot 之前调它(工作区先挂好再 clone)。
- buildinfo.py BASE_CONTENTS 与两 lockfile DECLARED_SOURCES
  登记 chv-data-mount(repo_commit,随 P2 三脚本先例)。
- tests:test_chv_opt_stage1.DataMountScriptTest(脚本内容、
  构建接线、lockfile 登记);P2 干跑夹具补新文件。
回归:discover test_chv_*.py 与 test_cloud_hypervisor.py 全过。
不推、不合、不部署;只本地分支。
2026-11-08 09:45:00 +00:00