host
50cae2a0af
part 6 修复:worktree 根移出 /app——RETEST5 挂载点回归
RETEST5:part 5 的 --bind=<workspace>/.chv-worktrees:/app/work
(adc7bf6,排在 --bind-ro=/app 之后)让所有 cell 启动失败:
后挂的 bind 只有在挂载点已存在时才能盖住,挂载点不存在时
nspawn 在只读 /app 下连建都建不起来(Failed to create mount
point .../app/work: Read-only file system,全量 73 次,
CELL-RC=0 共 0 次),缺陷 1 的 15/15 回退为 0/15。
三选一取 (a) worktree 根移出 /app:
- chv-cell 不再发任何指向 /app 之下的 bind,删
--bind=...:/app/work 与 worktrees_dir 参数;WORKTREE_DIR
(/home/chv/workspace/.chv-worktrees)改经
--setenv=CHV_WORKTREE_ROOT 传进单元——该路径在已可写绑进
单元的 workspace 之下,挂载点问题按构造即不存在;backing
仍在客机 workspace 下随磁盘持久化,隔离与落盘语义不变,
只是单元内路径从 /app/work/host-worktrees 改为
/home/chv/workspace/.chv-worktrees/host-worktrees。
- host.py 新增 worktree_base():CHV_WORKTREE_ROOT 优先;
CHV_CELL=1 但变量未设时回落到同一单元内路径(旧版 chv-cell
/ 单元内手动跑 host.py 仍不出 /app);单元外沿用
HERE/work/host-worktrees,行为不变。make_worktree 与
dispatch_from_branch(第二个 HERE/work 调用方)同走该函数,
goal/fork/依赖链一并修到。
- 不选 (b) 默认 --no-worktree:隔离丢了,且 goal/fork 同样
调 make_worktree,照样撞 Errno 30;不选 (c) 镜像预建空
目录 /app/work:修法耦合镜像构建,某次重建漏建即静默回归,
且单测无法钉住镜像内容。
- 根因 1(39084ce)与根因 3(0203f32)代码未动。
单测:删 part 5 钉 argv 顺序的 4 项(该顺序本身已被真机证伪),
新增 CellPart6WorktreeTest 4 项 + HostWorktreeBaseTest 5 项:
argv 里无任何指向 /app 之下的 bind、CHV_WORKTREE_ROOT 经
setenv 进单元、worktree 根只经可写 workspace 绑定可达、
两处同值常量一致、worktree_base 三路选择、make_worktree
真 git worktree 落点、dispatch_from_branch 同根。
全量:cloud/ 下 discover -s tests,2067 项 OK(skipped=9)。
(注:仓库根跑 discover 会把 queue 解析成标准库、致
test_queue_sandbox 导入失败,须在 cloud/ 下跑。)
2026-11-07 14:23:48 +00:00
..
2026-10-26 16:27:42 +08:00
2026-10-26 16:47:55 +08:00
2026-10-27 15:53:50 +08:00
2026-10-27 15:53:50 +08:00
2026-10-30 00:49:03 +08:00
2026-10-28 12:12:10 +08:00
2026-10-30 01:55:59 +08:00
2026-10-27 15:53:50 +08:00
2026-10-27 15:53:50 +08:00
2026-10-29 00:19:30 +08:00
2026-10-27 16:27:50 +00:00
2026-10-27 15:53:50 +08:00
2026-10-29 07:01:57 +08:00
2026-10-30 06:00:31 +00:00
2026-10-29 05:27:22 +08:00
2026-11-06 17:59:53 +00:00
2026-10-31 06:55:26 +00:00
2026-11-06 21:36:56 +00:00
2026-11-07 10:30:45 +00:00
2026-11-06 17:43:54 +00:00
2026-11-06 17:59:53 +00:00
2026-11-07 04:00:04 +00:00
2026-11-07 00:48:25 +00:00
2026-11-06 21:31:48 +00:00
2026-11-06 21:31:48 +00:00
2026-11-07 14:23:48 +00:00
2026-11-07 03:58:45 +00:00
2026-11-07 03:52:34 +00:00
2026-11-06 21:58:01 +00:00
2026-11-07 03:56:24 +00:00
2026-11-06 15:34:06 +08:00
2026-11-06 15:13:23 +08:00
2026-10-27 16:27:50 +00:00
2026-11-06 21:31:48 +00:00
2026-10-29 06:32:38 +08:00
2026-10-30 01:32:35 +08:00
2026-10-28 08:57:05 +00:00
2026-10-29 02:42:52 +08:00
2026-10-30 05:11:06 +08:00
2026-10-26 03:23:06 +08:00
2026-10-26 01:32:57 +08:00
2026-10-26 10:26:21 +08:00
2026-10-30 04:17:09 +08:00
2026-10-26 06:19:01 +08:00
2026-10-30 02:53:46 +08:00
2026-10-27 16:27:50 +00:00
2026-10-29 06:32:38 +08:00
2026-10-29 16:45:07 +08:00
2026-10-27 10:56:08 +08:00
2026-10-29 16:32:58 +08:00
2026-10-29 14:21:18 +08:00
2026-10-26 08:39:57 +08:00
2026-10-28 03:43:02 +08:00
2026-10-30 02:53:30 +08:00
2026-10-30 04:05:00 +08:00
2026-10-30 01:32:35 +08:00
2026-10-30 15:39:55 +08:00
2026-10-30 07:15:05 +08:00
2026-10-28 10:13:40 +00:00
2026-10-29 04:40:47 +08:00
2026-10-30 14:46:11 +08:00
2026-10-27 19:10:49 +00:00
2026-10-26 01:23:21 +08:00
2026-10-30 12:58:41 +08:00
2026-10-27 15:35:23 +00:00
2026-10-29 16:45:07 +08:00
2026-10-26 16:27:42 +08:00
2026-10-26 16:27:42 +08:00
2026-10-26 01:32:57 +08:00
2026-10-26 23:51:54 +08:00
2026-10-26 07:42:14 +08:00
2026-10-27 15:35:23 +00:00
2026-10-29 15:31:07 +08:00
2026-10-27 16:27:50 +00:00
2026-10-29 12:42:19 +08:00
2026-10-29 06:32:38 +08:00
2026-10-27 16:37:28 +00:00
2026-10-27 14:12:28 +08:00
2026-10-27 14:12:28 +08:00
2026-10-30 13:36:24 +08:00
2026-10-30 14:27:04 +08:00
2026-10-28 22:49:06 +08:00
2026-10-26 03:23:06 +08:00
2026-10-26 16:47:55 +08:00
2026-10-26 15:20:02 +08:00
2026-10-28 11:14:10 +08:00
2026-10-27 19:10:49 +00:00
2026-10-26 17:01:47 +08:00
2026-10-29 17:46:12 +08:00
2026-10-30 04:15:54 +08:00
2026-10-28 10:12:57 +00:00
2026-10-27 03:05:15 +08:00
2026-10-30 04:18:09 +08:00
2026-10-30 05:11:06 +08:00
2026-10-30 05:11:06 +08:00
2026-10-27 19:10:49 +00:00
2026-10-28 11:09:29 +08:00
2026-10-30 02:46:37 +08:00
2026-10-27 05:40:30 +08:00
2026-10-27 01:44:53 +08:00
2026-10-27 15:53:50 +08:00
2026-10-27 15:53:50 +08:00
2026-10-29 05:41:35 +08:00
2026-10-30 15:14:37 +08:00
2026-10-26 23:17:25 +08:00
2026-10-27 16:27:50 +00:00
2026-10-26 02:46:10 +08:00
2026-10-27 15:35:23 +00:00
2026-10-26 16:47:55 +08:00
2026-10-26 06:46:20 +08:00
2026-10-29 23:16:01 +08:00
2026-10-30 14:46:11 +08:00
2026-10-27 15:35:23 +00:00
2026-10-30 07:15:05 +08:00
2026-10-30 07:08:51 +00:00
2026-10-30 06:00:31 +00:00
2026-10-27 16:37:28 +00:00
2026-10-30 06:33:25 +00:00
2026-10-27 23:09:22 +08:00
2026-10-27 04:30:43 +08:00
2026-10-27 04:40:11 +08:00
2026-10-29 06:32:38 +08:00
2026-10-27 03:17:51 +08:00
2026-10-30 05:11:06 +08:00
2026-10-30 02:25:48 +08:00
2026-10-30 00:39:13 +08:00
2026-10-28 11:14:10 +08:00
2026-10-28 11:25:17 +08:00
2026-10-27 12:58:24 +08:00
2026-10-29 06:32:38 +08:00
2026-10-26 07:24:54 +08:00
2026-10-28 04:56:22 +08:00
2026-10-27 16:37:28 +00:00
2026-10-28 05:36:18 +08:00
2026-10-28 06:10:02 +08:00
2026-10-28 04:33:20 +08:00
2026-10-30 05:11:06 +08:00
2026-10-30 14:46:11 +08:00
2026-10-26 01:23:21 +08:00
2026-10-30 01:16:49 +08:00
2026-10-28 17:14:22 +08:00
2026-10-30 01:16:49 +08:00
2026-10-28 22:17:19 +08:00
2026-10-26 06:46:20 +08:00
2026-10-27 14:12:28 +08:00
2026-10-28 11:25:17 +08:00
2026-10-30 14:46:11 +08:00
2026-10-30 01:38:01 +08:00