lili
9115d4f95f
fix(ai): 修 02D 槽位绑定首次创建死锁,precheck/bind 改 upsert + 补 active 唯一约束
根因:precheck(line102)/bind(line182)都 requireSlotBinding(binding!=null)缺行抛 AI_RESOURCE_FORBIDDEN;但"替换"是设计中唯一创建入口(替换=首次写入,无独立创建端点是设计有意,见后端-04 line748/产品-02D line507),要求被替换行先存在→死锁,首次绑定永不可达。work4 seed binding 是 E2E 绕此 bug 手插非设计常态。修:precheck 缺行放行;bind 抽 persistBinding upsert(有行 updateById 沿用乐观锁 revision+1,无行 insert revision=1 避免首次 expectedSlotRevision null 拆箱 NPE);V29 补 active partial unique index(tenant+work+slot WHERE status=active,并发首次写兜底);前端 mock protected 槽位对齐后端 startsWith(protected:)口径。验证:MuseAgentSlotServiceTest 26/26 + AppMuseAgentSlotControllerAnnotationTest 4/4 + 前端 useAgents/AIPanel.contract 4/4;handoff/幂等/乐观锁不破坏。范围:不建 Override Slot Contract 主数据(B)/不碰默认 agent 来源/不动 runtime 授权。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 10:09:53 -07:00
..
2026-05-24 23:15:08 +08:00
2026-05-24 23:15:08 +08:00
2026-05-24 23:15:08 +08:00
2026-05-24 23:15:08 +08:00
2026-05-24 23:15:08 +08:00
2026-05-24 23:15:08 +08:00
2026-05-25 12:11:27 +08:00
2026-05-25 12:11:27 +08:00
2026-05-27 02:24:48 +08:00
2026-05-28 12:30:46 +08:00
2026-05-29 13:17:19 +08:00
2026-06-01 00:37:29 +08:00
2026-06-01 00:37:29 +08:00
2026-06-02 19:36:02 +08:00
2026-06-05 10:51:58 +08:00
2026-06-05 22:20:48 +08:00
2026-06-06 20:24:01 +08:00
2026-06-07 10:00:04 +08:00
2026-06-07 22:28:39 +08:00
2026-06-08 02:49:02 +08:00
2026-06-08 23:17:41 +08:00
2026-06-15 02:10:12 -07:00
2026-06-15 03:30:11 -07:00
2026-06-19 09:31:56 -07:00
2026-06-21 01:48:15 -07:00
2026-06-21 19:09:59 -07:00
2026-06-22 12:30:50 -07:00
2026-06-22 22:51:59 -07:00
2026-06-24 10:09:53 -07:00