host
99d9e5771b
merge(chv-hybrid): 合入 B 轨——租约 + 排队 + 升级提示 + 网关门
合入 feat-chv-hybrid-b (667a427)。executor.py 两处内容冲突按 hunk
解决,全部取 B 侧;合入时发现 merge 复制出第二个 suspend_after_task
定义(A 版截断体),已删除。
集成统一(A/B 语义冲突三处,设计 §4.1 的 state 模型为准):
- state 模型:A 的 flag 模型(resident: True + legacy state)与 B
的 state 模型(state ∈ resident-active/paused/hibernated/demoted)
统一为 state 模型;_mark_resident_record 标记常驻时同时置
resident-active,_ensure_resident_capacity 同时认 flag 与 state。
- 容量等待:A 的 bool 版 _wait_for_capacity 改名 _poll_capacity,
B 的 raise 版保留原名;_wait_for_resident_slot 豁免已有常驻登记
的租户(它已占一个槽位,再等等于把自己的槽位算成满——A 轨
test_resident_cap_blocks_new_resident 第二腿在合入时因此失败,
已修并通过)。
- 档位大小写:A 用小写 paid/heavy,B 用 Paid/Heavy;比较一律走
_norm_tier + HYBRID_RESIDENT_TIERS(resident_tier_eligible 与
promote_to_resident 两处),fail-closed 语义不变。
- 严格快照校验翻为默认开启(设计 §2.2):_snapshot_strict_tenant
默认 True,显式 CHV_SNAPSHOT_STRICT_TENANT=0 才关闭;旧恢复
测试的 fixture 已登记带匹配 tenant 的快照,A 轨 legacy 测试改
为显式 opt-out 覆盖。
生产接线:worker 只调 dispatch_task,dispatch_task_hybrid 在生产
路径上无调用方;dispatch_task 顶部加一道门,warm_pool_size>=1 时
走 dispatch_task_hybrid,==0 时保持旧冷启语义(不成环:hybrid 的
<=0 分支退化为 dispatch_task_persistent,后者 <=0 调回 dispatch_task)。
旧网关测试更新(B 的语义变更):test_worker_gateway_guard_allows_chv
前加常驻登记;新增 test_worker_gateway_guard_denies_pool_vm。
测试:test_chv_hybrid_a/b 64 项 + 受影响旧测试 16 项(Gateway、
RestoreNoFallback、RestoreSnapshotTest)全部通过;全量待跑。
2026-11-08 22:00:12 +00:00
..
2026-11-04 18:02:22 +00:00
2026-11-04 18:01:44 +00:00
2026-11-04 18:01:44 +00:00
2026-11-04 18:01:44 +00:00
2026-11-04 18:01:44 +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-11-04 20:55:49 +00:00
2026-11-04 21:03:54 +00:00
2026-11-04 21:23:25 +00:00
2026-11-04 20:56:06 +00:00
2026-11-04 18:02:10 +00:00
2026-11-04 20:56:06 +00:00
2026-11-04 18:02:22 +00:00
2026-11-04 21:38:42 +00:00
2026-11-04 18:02:23 +00:00
2026-11-04 21:38:42 +00:00
2026-11-04 18:02:23 +00:00
2026-11-04 21:38:42 +00:00
2026-11-04 18:02:21 +00:00
2026-11-04 18:02:21 +00:00
2026-11-04 18:02:21 +00:00
2026-11-04 18:02:21 +00:00
2026-11-04 21:23:25 +00:00
2026-11-04 18:02:22 +00:00
2026-11-05 02:54:22 +08:00
2026-11-04 21:03:33 +00:00
2026-11-04 18:02:23 +00:00
2026-11-04 21:03:32 +00:00
2026-11-04 18:02:21 +00:00
2026-11-04 18:02:23 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 20:56:06 +00:00
2026-11-04 20:55:49 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:32 +00:00
2026-11-04 21:03:32 +00:00
2026-10-28 12:12:10 +08:00
2026-11-04 20:56:06 +00:00
2026-10-27 15:53:50 +08:00
2026-11-04 20:54:04 +00: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-11-04 20:54:04 +00:00
2026-10-29 05:27:22 +08:00
2026-11-08 09:45:00 +00:00
2026-11-08 09:44:34 +00:00
2026-11-08 10:22:51 +00:00
2026-11-08 22:00:12 +00:00
2026-11-08 09:44:59 +00:00
2026-11-08 22:00:12 +00:00
2026-11-08 09:44:59 +00:00
2026-11-08 09:44:59 +00:00
2026-11-08 22:00:12 +00:00
2026-11-08 20:49:10 +00:00
2026-11-08 09:45:00 +00:00
2026-11-08 09:45:00 +00:00
2026-11-08 09:45:00 +00:00
2026-11-08 09:45:00 +00:00
2026-11-08 09:45:00 +00:00
2026-11-08 09:45:00 +00:00
2026-11-08 09:44:34 +00:00
2026-11-08 09:44:59 +00:00
2026-11-08 09:45:00 +00:00
2026-11-08 09:44:59 +00:00
2026-11-08 09:45:00 +00:00
2026-11-04 20:54:04 +00:00
2026-11-08 09:45:00 +00:00
2026-11-04 21:03:54 +00:00
2026-11-01 08:16:48 +00:00
2026-11-06 19:03:35 +00:00
2026-11-06 19:03:35 +00:00
2026-10-30 01:32:35 +08:00
2026-10-28 08:57:05 +00:00
2026-11-07 19:43:03 +00:00
2026-10-30 05:11:06 +08:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:32 +00:00
2026-11-04 21:03:32 +00:00
2026-11-08 10:22:51 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 21:03:33 +00:00
2026-10-26 03:23:06 +08:00
2026-10-26 01:32:57 +08:00
2026-11-04 18:01:44 +00:00
2026-10-26 10:26:21 +08:00
2026-11-04 20:54:04 +00:00
2026-11-04 18:02:20 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 21:04:06 +00:00
2026-11-04 21:04:06 +00:00
2026-11-04 21:04:06 +00:00
2026-11-04 21:04:06 +00:00
2026-11-04 21:03:54 +00:00
2026-11-04 21:03:54 +00:00
2026-11-04 21:03:54 +00:00
2026-11-04 21:04:06 +00:00
2026-10-30 02:53:46 +08:00
2026-10-27 16:27:50 +00:00
2026-11-05 02:45:09 +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-11-06 19:03:35 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-10-26 08:39:57 +08:00
2026-10-28 03:43:02 +08:00
2026-11-04 20:53:46 +00:00
2026-10-30 04:05:00 +08:00
2026-11-01 09:06:28 +00:00
2026-10-30 01:32:35 +08:00
2026-11-04 20:58:34 +00:00
2026-11-04 21:03:32 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 21:36:18 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 20:54:04 +00:00
2026-11-07 20:51:23 +00: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-11-04 21:03:32 +00: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-11-04 21:03:32 +00:00
2026-11-04 21:03:32 +00:00
2026-11-04 20:55:49 +00:00
2026-11-04 20:56:06 +00:00
2026-11-04 20:54:04 +00:00
2026-10-30 12:58:41 +08:00
2026-11-04 18:01:44 +00: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-11-04 20:54:04 +00:00
2026-11-04 20:53:46 +00: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-11-04 21:03:03 +00:00
2026-10-29 12:42:19 +08:00
2026-10-29 06:32:38 +08:00
2026-11-07 20:51:23 +00:00
2026-10-27 14:12:28 +08:00
2026-10-27 14:12:28 +08:00
2026-11-08 05:49:52 +00:00
2026-11-01 09:06:28 +00:00
2026-11-01 09:06:28 +00:00
2026-11-04 17:30:07 +01:00
2026-11-01 09:06:28 +00:00
2026-11-01 08:34:13 +00:00
2026-11-08 05:49:52 +00: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-11-04 20:54:04 +00: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-11-04 20:54:04 +00: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-11-04 20:54:50 +00:00
2026-11-04 20:56:06 +00:00
2026-10-27 05:40:30 +08:00
2026-10-27 01:44:53 +08:00
2026-11-04 21:03:32 +00:00
2026-11-02 03:30:57 +00:00
2026-11-01 19:01:39 +00:00
2026-11-02 03:30:57 +00:00
2026-11-02 03:30:57 +00:00
2026-10-27 15:53:50 +08:00
2026-10-27 15:53:50 +08:00
2026-11-04 18:02:21 +00:00
2026-11-04 18:01:44 +00:00
2026-11-04 18:02:21 +00:00
2026-11-04 18:01:44 +00:00
2026-11-04 21:03:54 +00:00
2026-10-29 05:41:35 +08:00
2026-11-04 20:54:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:32 +00:00
2026-11-04 17:11:23 +01:00
2026-10-26 23:17:25 +08:00
2026-11-04 20:54:04 +00:00
2026-11-04 21:03:32 +00: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-11-04 20:54:04 +00: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-11-07 20:51:23 +00:00
2026-11-04 20:54:50 +00:00
2026-11-07 19:43:03 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:33 +00:00
2026-11-04 20:53:46 +00:00
2026-11-04 21:03:33 +00:00
2026-10-27 16:37:28 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-10-30 06:33:25 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 21:03:33 +00:00
2026-10-27 04:30:43 +08:00
2026-11-06 05:24:20 +00:00
2026-10-27 04:40:11 +08:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00: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-11-04 20:54:04 +00:00
2026-10-29 06:32:38 +08:00
2026-11-06 22:00:52 +00: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-11-04 18:02:20 +00:00
2026-10-30 14:46:11 +08:00
2026-11-04 21:03:32 +00:00
2026-11-05 02:22:47 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:23:25 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:33 +00:00
2026-11-04 21:03:32 +00:00
2026-11-04 21:03:32 +00:00
2026-11-04 21:03:32 +00:00
2026-11-04 21:03:54 +00:00
2026-11-04 20:54:04 +00:00
2026-10-30 01:16:49 +08:00
2026-11-01 14:15:54 +00:00
2026-11-04 21:03:54 +00:00
2026-10-30 01:16:49 +08:00
2026-11-04 20:53:46 +00:00
2026-10-26 06:46:20 +08:00
2026-10-27 14:12:28 +08:00
2026-11-04 21:03:54 +00:00
2026-10-28 11:25:17 +08:00
2026-11-04 21:03:32 +00:00
2026-10-30 14:46:11 +08:00
2026-10-30 01:38:01 +08:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00