Commit Graph

  • 680f1af205 feat(macos): KillSwitch L0→L3 — NE includeAllNetworks+enforceRoutes+on-demand wangjia 2026-06-30 23:54:32 +08:00
  • e2440e44cc docs: 补 CLAUDE.md 移动端/跨端统计章节 + 新增 urltest 排障文档 wangjia 2026-06-30 22:56:10 +08:00
  • 53fb6492b1 chore: 整理——gitignore android/.gradle 构建缓存 + 同步 todo 看板 wangjia 2026-06-30 22:52:32 +08:00
  • 00bec95255 chore(client): 清理 tablet golden 旧命名孤儿文件(#11) wangjia 2026-06-30 22:47:39 +08:00
  • d0d39c93f6 fix(client): 设备列表离线时间改用 last_seen「最后在线」(原 last_login 不准) wangjia 2026-06-30 22:30:43 +08:00
  • 1666b1d462 fix(client/android): libbox 包名 io.nekohasekai.libbox(原 import libbox.* 编不过) wangjia 2026-06-30 22:20:52 +08:00
  • e994c44116 feat(client/android): urltest 延迟与 iOS/macOS 对齐 + 开明文(联调 http API) wangjia 2026-06-30 22:06:11 +08:00
  • 328d34a320 fix(client): 「我的」页加「设置」入口(我的设备下面)——iPad 竖屏/手机可达设置 wangjia 2026-06-30 21:48:54 +08:00
  • 849e30dd05 fix(client): iPad(tablet)对齐桌面——侧栏补设置/联系我们 + 顶部避让状态栏 wangjia 2026-06-30 21:36:33 +08:00
  • ae5d497f0b feat(client/ios): 实时统计+urltest 延迟与 macOS 对齐 + 修 pbxproj UUID 冲突 wangjia 2026-06-30 19:12:28 +08:00
  • 7add0259b4 chore(client/macos): 清理延迟排查的诊断打点 + debug 注入(最终干净版) wangjia 2026-06-30 18:03:30 +08:00
  • e00163e2d9 fix(client): statsStream/statusStream 缓存为共享广播流,修延迟不回写 wangjia 2026-06-30 17:57:37 +08:00
  • e6e7d5db10 diag(client): _onStats 顶部无条件打点 + 订阅打点,确认是否被调用 wangjia 2026-06-30 17:47:16 +08:00
  • d14f7a0ec5 diag(client): _onStats/setLivePing 打点,定位延迟为何不回写 node.ping wangjia 2026-06-30 17:26:56 +08:00
  • dbe657f997 fix(client): 自动连接到已运行隧道时延迟显示 — —— _onStats 回退 effectiveNode wangjia 2026-06-30 17:17:57 +08:00
  • e3fb5239a6 diag(client/macos): 抓 sing-box urltest 内核日志,定位探测为何失败 wangjia 2026-06-30 14:58:07 +08:00
  • 211fda37e3 fix(client/macos): urltest 完全照搬 Windows 策略——读 /proxies history + active 刷新 wangjia 2026-06-30 14:45:14 +08:00
  • e8e6a0dc24 fix(client/macos): urltest 回到 active /group/delay 取值(v48 验证可行),跳过 GLOBAL wangjia 2026-06-30 14:22:52 +08:00
  • a228a1d221 fix(client/macos): urltest 主源改读 /proxies history(稳定),修连接页延迟 wangjia 2026-06-30 14:13:58 +08:00
  • 70e8f67702 diag(client/macos): 把 /group/delay 原始响应塞进 diag,定位 urltest 为空 wangjia 2026-06-30 13:28:55 +08:00
  • 03dbbf8db9 fix(client/macos): urltest 延迟改走注入的 clash API(对齐 Windows),内核侧打点 wangjia 2026-06-30 12:54:40 +08:00
  • 783687d7c2 fix(client/macos): StatsCollector 用独立 client 订阅 Group,修 urltest 延迟为空 wangjia 2026-06-30 12:33:00 +08:00
  • a43f8a93de diag(client/macos): StatsClient 每5帧打印收到的 urltest 延迟,排查连接页延迟为 — wangjia 2026-06-30 12:25:33 +08:00
  • 6809e0a377 fix(client): 连接态延迟只认内核 urltest,跳过直连实测(对齐 Windows 方法) wangjia 2026-06-30 12:18:32 +08:00
  • 6c19b1bd92 fix(client/macos): 实时统计改走 sendProviderMessage,根治容器路径死局 wangjia 2026-06-30 12:05:43 +08:00
  • 71132df669 fix(client/macos): sysext 把 command.sock 建在登录用户容器并 chown,修实时统计断流 wangjia 2026-06-30 11:43:41 +08:00
  • 4f727beb60 fix(client/macos): 启动即激活 sysext + command.sock 打点 wangjia 2026-06-30 10:50:23 +08:00
  • 77f31c90ec fix(client/macos): 递增 PacketTunnel CFBundleVersion 23→43,让 sysextd 重装新 sysext wangjia 2026-06-30 10:34:15 +08:00
  • cf19ca2d34 feat(client/macos): 开机自启用 SMAppService + LoginItem helper(学 Tailscale) wangjia 2026-06-30 10:25:27 +08:00
  • 9e26dd6d97 chore: bump 1.0.41+42 wangjia 2026-06-30 09:00:00 +08:00
  • 8680131b3d fix(client): 登出(主动/被强退/会话过期)一律断开隧道 wangjia 2026-06-30 09:00:00 +08:00
  • f0af3bcc94 fix(server): 强退设备立即离线 — online 须含活跃会话 + 撤销会话不刷 last_seen wangjia 2026-06-30 08:51:10 +08:00
  • 2fbaba7608 chore: bump 1.0.40+41 wangjia 2026-06-30 08:05:32 +08:00
  • d192d96d95 fix(client): 设备页每 15s 静默刷新列表,其他设备状态变化 ~15s 内可见 wangjia 2026-06-30 08:05:32 +08:00
  • 3167ca8a74 fix(server): 设备「在线」准确反映 app 运行中 — 会话轮询刷 last_seen + 窗口缩到 90s wangjia 2026-06-30 07:55:17 +08:00
  • ca34d0cadb chore: bump 1.0.39+40 wangjia 2026-06-30 07:33:43 +08:00
  • 6bab18a1bf feat(client): 被强制下线时弹对话框告知原因再登出 wangjia 2026-06-30 07:33:43 +08:00
  • af24612e04 chore: bump 1.0.38+39 wangjia 2026-06-30 07:26:31 +08:00
  • 0b33f12400 feat: 近实时远程下线 — 客户端轮询会话有效性(~15s),服务端 GET /v1/me/session wangjia 2026-06-30 07:25:16 +08:00
  • 7f070a0693 fix(client): 看门狗 path A 仅在「连上(on)后掉线」触发,排除 connecting 握手瞬态 wangjia 2026-06-30 07:01:13 +08:00
  • 48bc5c6b39 chore: bump 1.0.37+38 wangjia 2026-06-30 01:32:15 +08:00
  • b99d6d71ae fix(client): 修 _disposed 潜伏 bug + build 只 watch isLoggedIn,根治延迟冻成 — wangjia 2026-06-30 01:32:15 +08:00
  • 15133b8a72 feat(client/macos): 开机自启隐藏到托盘(--autostart),与 Windows 对齐 wangjia 2026-06-30 01:27:30 +08:00
  • ba65b03fd5 chore: bump 1.0.36+37 wangjia 2026-06-30 01:23:13 +08:00
  • a03de6c06a fix(client): 节点拉取 401 自愈+失败不清空列表;看门狗 path A 跨端(urltest 陈旧判活) wangjia 2026-06-30 01:23:13 +08:00
  • 93a31a9415 chore: bump 1.0.35+36 wangjia 2026-06-30 00:50:58 +08:00
  • 795082066e fix(client): 刷新节点列表时保留已有 ping,修延迟被 refresh 清成 — 的根因 wangjia 2026-06-30 00:50:58 +08:00
  • 53eb982254 chore: bump 1.0.34+35 wangjia 2026-06-29 23:50:48 +08:00
  • a06bfda45c diag(client): _onStats 加 urltest 诊断日志,定位延迟显示 — 根因 wangjia 2026-06-29 23:50:48 +08:00
  • e292775c7e chore: bump 1.0.33+34 wangjia 2026-06-29 23:35:40 +08:00
  • 16af1c9f02 fix(client): 连接态把内核 urltest 回写连接节点 ping,修延迟显示 — + 保持同源一致 wangjia 2026-06-29 23:35:40 +08:00
  • 0736014552 fix(client): 延迟统一用 node.ping(client→数据面 RTT),连接页与节点列表同源一致 wangjia 2026-06-29 23:28:39 +08:00
  • 7c7e8e4f6c chore: bump 1.0.32+33 wangjia 2026-06-29 23:26:19 +08:00
  • d08b908e1f fix(client): 节点列表延迟探测失败时保留旧值,修连接后整列延迟消失 wangjia 2026-06-29 23:26:19 +08:00
  • e9dbe9aa7d chore: bump 1.0.31+32 wangjia 2026-06-29 23:21:18 +08:00
  • d9378b6729 fix(client): 看门狗返工 — 意外掉线捕获+服务端down轮询,撤销TUN下假阳性的TCP探测 wangjia 2026-06-29 23:21:09 +08:00
  • cd143af248 chore: bump 1.0.30+31 wangjia 2026-06-29 21:28:08 +08:00
  • 554708a092 fix(client): 看门狗+延迟统一到数据面 IP TCP 探测 + 消费服务端 down 信号 wangjia 2026-06-29 21:27:49 +08:00
  • 23bf3077c8 docs(kb): 流量记账口径知识库 — 连接页实时(含直连) vs 统计页累计(仅代理) wangjia 2026-06-29 21:04:50 +08:00
  • 2b20a611d7 docs(test): 记录本轮交互组件人工验证(确认框/搜索框/toast);toast 超长文本待测 wangjia 2026-06-29 20:33:48 +08:00
  • 701d9eb095 fix(client): 开机自启隐藏窗口在原生 runner 层跳过首帧 Show()(1.0.29) wangjia 2026-06-29 20:20:55 +08:00
  • 49bef2fb27 feat(client): 开机自启拉起直接最小化到托盘(--autostart 标志)(1.0.28) wangjia 2026-06-29 20:11:36 +08:00
  • ada99e6c3a fix(client): 自动连接死锁兜底(轮询)+ 逐次门控日志(1.0.27) wangjia 2026-06-29 19:58:53 +08:00
  • 277d1c6e97 feat(client): toast 限定主显示区/自适应宽/上限80%/超长多行居中(1.0.26) wangjia 2026-06-29 19:50:33 +08:00
  • 143104b861 docs(design): toast 规格入真相源 + 铁律14「UI 组件必须取自真相源」 wangjia 2026-06-29 19:43:54 +08:00
  • 828bb4ca94 style(client): toast 跟随明暗主题(1.0.25) wangjia 2026-06-29 19:39:00 +08:00
  • e89f3de748 feat(client): 记住上次选择的节点 + 自动连接 toast(1.0.24) wangjia 2026-06-29 19:31:01 +08:00
  • f2891ff2f9 fix(client): 自动连接门控改判生效节点就绪 + _connect 诊断日志(1.0.23) wangjia 2026-06-29 19:15:39 +08:00
  • 28f8e5ebcd fix(client): 自动连接竞态真因 — 等设置加载完再判(1.0.22) wangjia 2026-06-29 19:08:49 +08:00
  • ff2f2f3c07 fix(client): 自动连接回调改用强类型 ref.read + 日志落文件(1.0.21) wangjia 2026-06-29 19:01:48 +08:00
  • 7fdadace4e fix(client): 自动连接回调 NoSuchMethod(valueOrNull on dynamic)— 真正根因 wangjia 2026-06-29 18:46:57 +08:00
  • f734126eb6 chore(client): 1.0.19 — 自动连接诊断日志 wangjia 2026-06-29 18:26:47 +08:00
  • 6beed211b9 fix(client): 自动连接竞态 + 版本 1.0.18+19 wangjia 2026-06-29 18:20:13 +08:00
  • 31b171d26c fix(installer): 装完启动以管理员运行(runascurrentuser) wangjia 2026-06-29 18:15:44 +08:00
  • 9d18579c11 chore(client): 版本号 1.0.17+18(智能选择确认/搜索框配色/PangolinFieldBox/连通看门狗/自动连接+Win自启) wangjia 2026-06-29 17:54:33 +08:00
  • 8584f0459e feat(client): 自动连接开关 + Windows 开机自启改任务计划程序 wangjia 2026-06-29 17:46:06 +08:00
  • 2080062d8c feat: 数据面故障韧性 — 节点健康上报(控制面) + 客户端连通看门狗 wangjia 2026-06-29 13:19:22 +08:00
  • 6249d5b2ea refactor(client): 抽公用 PangolinFieldBox 统一输入框 + 根治填充两色接缝 wangjia 2026-06-29 12:29:53 +08:00
  • ccb7a9bfe7 fix(client): 节点搜索框两色接缝 —— TextField filled:false 让外层 bgSubtle 统一铺底 wangjia 2026-06-29 12:10:32 +08:00
  • ddf8b1d4d8 feat(client): 智能选择卡也走切换确认(防误触) wangjia 2026-06-29 11:52:11 +08:00
  • 0820397a14 chore(client): 版本号 1.0.16+17(single-flight 刷新 + 托盘退出崩溃修复) wangjia 2026-06-29 11:46:16 +08:00
  • 4cc8f772e5 fix(client): 托盘「退出」崩溃(0xC000041D)——绕开 windowManager.destroy() wangjia 2026-06-29 11:30:59 +08:00
  • 29a6aa9112 fix(client): refresh token single-flight — 修跨平台「放久了/更新后被踢下线」 wangjia 2026-06-29 11:05:16 +08:00
  • eafc7167e2 chore(client): 版本号 1.0.15+16(自适应菜单 + 节点切换防误触) wangjia 2026-06-29 10:11:48 +08:00
  • 73da0bc9a2 feat(client): 节点列表防误触 — 已连接时切换节点先弹确认 wangjia 2026-06-29 10:11:20 +08:00
  • 6788501e4a feat(client): 通用自适应弹出菜单(按屏幕位置上/下弹,不挡触发器) wangjia 2026-06-29 10:11:20 +08:00
  • 880fa32793 fix(devices): 本机也显示 ⋯ 菜单(只「重命名」)—— 修单设备无法改名(1.0.14) wangjia 2026-06-29 09:49:09 +08:00
  • 315c343ed5 feat(devices): 设备默认名「平台简写·主机名」+ 支持重命名(1.0.13) wangjia 2026-06-29 09:12:36 +08:00
  • 878cef9e52 build(client): 1.0.12 — 设备下拉接已登录设备 + 版本对齐(pubspec=iss=1.0.12) wangjia 2026-06-29 08:41:37 +08:00
  • 8a1db07d19 fix(devices+stats): /v1/me/devices 401 修复 + 设备下拉接已登录设备 + 版本号 wangjia 2026-06-29 08:37:11 +08:00
  • ea548ad7cf fix(deploy): agent 不再随 server 停 —— 解耦 systemd 依赖(#8 静默掉线根因) wangjia 2026-06-29 08:22:20 +08:00
  • 3a8e27b5b0 build(client/windows): 版本 bump 1.0.10 → 1.0.11(设备会话管理+统计时区+设备过滤) wangjia 2026-06-29 08:08:47 +08:00
  • e333f59cb3 feat(stats): #10 第②层 —— 统计页按设备过滤(per-device 本地日曲线) wangjia 2026-06-29 08:04:33 +08:00
  • 5dcebb77fd feat(stats): 统计页设备下拉接真实设备(#10 第①层) wangjia 2026-06-29 07:04:20 +08:00
  • f2499a64e1 fix(usage): 统计按客户端本地日聚合 —— 修「29号却显示28号数据」时区 bug wangjia 2026-06-29 07:02:04 +08:00
  • 606e5e9e54 docs(plan): P4 收口 —— 每设备归因链路已交付,展示层过滤归 #10 wangjia 2026-06-29 06:14:19 +08:00
  • 58526b09e6 feat(client): P6 DevicesScreen 重做 + DevicePlatform 枚举 wangjia 2026-06-29 06:10:37 +08:00
  • bcc114088c feat(devices): P3 强制退出 + 清除增强(per-device 凭证吊销) wangjia 2026-06-29 06:01:41 +08:00
  • 2f298f0a0a feat(devices): P2 sessions 表 + 在线/最后登录/客户端版本 wangjia 2026-06-29 00:50:24 +08:00
  • 8370ee1eb7 chore: 删除误入库的一次性临时文件(tmphash / zz_tmpverify_test) wangjia 2026-06-29 00:28:54 +08:00