wangjia
|
4c76c2a701
|
feat(routing): 存档案后连接态自动重连使新规则生效
Task 9: RoutingProfileNotifier._persist() 保存成功后,若 connectionProvider.phase
== on,触发 ConnectionController.reapplyRoutingProfile()(disconnect→connect,
不改选中节点)重连,让服务端按新档案渲染的规则生效;off 态不触发。
新增 l10n 键 routingRulesReconnecting(单源 design/i18n/strings.json → codegen),
「规则已更新,正在重连…」区别于既有 nodeReconnecting(弱网抖动语义)。
reapplyRoutingProfile 内先置 _userDisconnect=true 再 disconnect,避免其触发的
kernel off 事件被 _onKernelStatus 误判「意外掉线」、再抢跑一次 watchdog 自动重连。
|
2026-07-28 09:17:32 +08:00 |
|
wangjia
|
057c11eee2
|
feat(routing): 客户端 model + AccountApi + AsyncNotifier provider
- RoutingProfile/RoutingRule/Builtin 手写 fromJson/toJson/copyWith,对齐服务端
GET/POST /v1/me/routing 契约;enabled 缺省容错默认 true,toJson 恒输出该字段
- AccountApi.routingProfile()/saveRoutingProfile() 封装两端点
- RoutingProfileNotifier(AsyncNotifier):addRule/removeRule/updateRule/reorder/
setMode/setBuiltin 均本地乐观更新后落盘;save() 失败整体回退到变更前 state
并 rethrow(不静默吞,交调用方处理)——Riverpod asyncTransition 的 seamless
copyWithPrevious 会用当前已存 state 覆盖手动挂的错误值,故不用 AsyncError
路径,改走显式回退
|
2026-07-28 08:27:43 +08:00 |
|