fix: 维护模式重复进入失败与按钮灰死 + Broker 并发验证用例
调试会话生命周期修复:
- DebugSessionManager.CloseSession 不再删除 _sessionOwnerTokens 缓存
令牌 TokenId 每次 new 都是新 GUID,删除后再次进入维护会创建新令牌,
导致 LayeredResourceManager.FindGrant 落空、旧租约永不释放、
arb.db 卡 Phase=Active 使第二次进入维护永久失败
- DeviceDebugTab.CloseSessionSilently 关闭后重新 OpenSession(ReadOnly)
并刷新按钮状态,修复退出维护后"进入维护控制"按钮变灰不可点击
运行环境修复:
- IntegrationTest.TryStartDeviceBroker 增加进程存在性检查
多实例各自拉起 DeviceBroker 会争抢同一命名管道与 arb.db,
使 Broker 物理驱动连接失败,报"设备 CAN-003 未连接,请先 CONNECT"
测试:
- BrokerE2ETests 新增 5 个并发与生命周期用例:
双客户端并发发送经 SessionGate 串行化、双 Production 租约竞争返回
ConflictHeld、租约 Acquire→Send→Release→再 Acquire 完整生命周期、
单客户端 5 次快速发送与 20 任务并发压力
- 全量单测 56/56 通过