wangjia
|
6ea2ec4a32
|
chore: bump 1.0.43+44 (含连接设备上限 backstop 客户端 UX)
ci-pangolin / Lint — shellcheck (push) Has been cancelled
ci-pangolin / OpenAPI Sync Check (push) Has been cancelled
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Has been cancelled
ci-pangolin / Flutter — analyze + test (push) Has been cancelled
ci-pangolin / Portable SQL — 可移植性 (mysql/sqlite) (push) Has been cancelled
ci-pangolin / Codegen Drift — token 生成物未漂移 (push) Has been cancelled
ci-pangolin / Go — build + test (push) Has been cancelled
ci-pangolin / E2E Smoke — L4 进程级端到端 (push) Has been cancelled
ci-pangolin / Go — integration (mysql/redis testcontainers) (push) Has been cancelled
ci-pangolin / Golden — 视觉回归 (components + auth) (push) Has been cancelled
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-01 22:25:38 +08:00 |
|
wangjia
|
8afe1f050c
|
chore(windows): installer 版本 1.0.41→1.0.42 对齐 pubspec
ci-pangolin / Lint — shellcheck (push) Has been cancelled
ci-pangolin / OpenAPI Sync Check (push) Has been cancelled
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Has been cancelled
ci-pangolin / Flutter — analyze + test (push) Has been cancelled
ci-pangolin / Portable SQL — 可移植性 (mysql/sqlite) (push) Has been cancelled
ci-pangolin / Codegen Drift — token 生成物未漂移 (push) Has been cancelled
ci-pangolin / Go — build + test (push) Has been cancelled
ci-pangolin / E2E Smoke — L4 进程级端到端 (push) Has been cancelled
ci-pangolin / Go — integration (mysql/redis testcontainers) (push) Has been cancelled
ci-pangolin / Golden — 视觉回归 (components + auth) (push) Has been cancelled
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-01 21:30:46 +08:00 |
|
wangjia
|
9e26dd6d97
|
chore: bump 1.0.41+42
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-30 09:00:00 +08:00 |
|
wangjia
|
2fbaba7608
|
chore: bump 1.0.40+41
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-30 08:05:32 +08:00 |
|
wangjia
|
ca34d0cadb
|
chore: bump 1.0.39+40
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-30 07:33:43 +08:00 |
|
wangjia
|
af24612e04
|
chore: bump 1.0.38+39
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-30 07:26:31 +08:00 |
|
wangjia
|
48bc5c6b39
|
chore: bump 1.0.37+38
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-30 01:32:15 +08:00 |
|
wangjia
|
ba65b03fd5
|
chore: bump 1.0.36+37
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-30 01:23:13 +08:00 |
|
wangjia
|
93a31a9415
|
chore: bump 1.0.35+36
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-30 00:50:58 +08:00 |
|
wangjia
|
53eb982254
|
chore: bump 1.0.34+35
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 23:50:48 +08:00 |
|
wangjia
|
e292775c7e
|
chore: bump 1.0.33+34
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 23:35:40 +08:00 |
|
wangjia
|
7c7e8e4f6c
|
chore: bump 1.0.32+33
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 23:26:19 +08:00 |
|
wangjia
|
e9dbe9aa7d
|
chore: bump 1.0.31+32
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 23:21:18 +08:00 |
|
wangjia
|
cd143af248
|
chore: bump 1.0.30+31
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 21:28:08 +08:00 |
|
wangjia
|
701d9eb095
|
fix(client): 开机自启隐藏窗口在原生 runner 层跳过首帧 Show()(1.0.29)
1.0.28 的 Dart hide() 早于 Flutter Windows runner 首帧回调的 Show(),被覆盖,
窗口仍弹出。改在 flutter_window.cpp 检测命令行 --autostart 时不注册首帧 Show()
回调,窗口(WS_OVERLAPPEDWINDOW 无 WS_VISIBLE)保持隐藏;Dart hide() 保留以同步
window_manager 状态。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 20:20:55 +08:00 |
|
wangjia
|
49bef2fb27
|
feat(client): 开机自启拉起直接最小化到托盘(--autostart 标志)(1.0.28)
计划任务 /tr 命令带 --autostart;main() 检测到该参数在首帧前 windowManager.hide()
隐藏主窗口到托盘,自动连接逻辑照常跑。手动打开(无参数)仍正常显示窗口。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 20:11:36 +08:00 |
|
wangjia
|
ada99e6c3a
|
fix(client): 自动连接死锁兜底(轮询)+ 逐次门控日志(1.0.27)
复现:armed→设置已加载后无 ready。死锁:selLoaded 靠 selectedNode controller 的 loaded 标志,
而该标志完成时若选中值未变(==默认)不会发通知,若 nodeSub 已先于它触发则此后无人再调 tryGo。
修:_maybeAutoConnect 加 Timer.periodic(400ms,≤12s)兜底复查,decided 后停;并恢复每次 tryGo
打 check 日志(settingsLoaded/selLoaded/node uuid)以确认卡点。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 19:58:53 +08:00 |
|
wangjia
|
277d1c6e97
|
feat(client): toast 限定主显示区/自适应宽/上限80%/超长多行居中(1.0.26)
按真相源新规:toast 改为自定义 Overlay 实现(widgets/pangolin_toast.dart),完全控制布局——
不覆盖左侧栏(left=侧栏宽 desktop204/tablet232/mobile0)、宽度自适应内容上限主区80%、超长文本
多行、主区内水平居中贴底、淡入轻起;仍走语义 token 明暗适配。自动连接改用 showPangolinToast。
同步 design/CONTRACT.md §2 toast 规格(canonical=showPangolinToast)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 19:50:33 +08:00 |
|
wangjia
|
828bb4ca94
|
style(client): toast 跟随明暗主题(1.0.25)
真相源/主题里原无 toast 定义,SnackBar 用 Material 默认黑底,明亮主题下突兀。
PangolinTheme 加 snackBarTheme:surface 底 + fg1 字 + 描边圆角(与卡片同风格)、floating,
浅色得浅 toast、深色得深 toast。自动连接的 toast 随之适配。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 19:39:00 +08:00 |
|
wangjia
|
e89f3de748
|
feat(client): 记住上次选择的节点 + 自动连接 toast(1.0.24)
- selectedNodeCodeProvider 改为持久化 StateNotifier(select() 落盘、启动恢复,默认智能 AUTO);
自动连接复用上次选择:智能就智能、具体就具体。
- 自动连接门控加等「选中节点已恢复」(controller.loaded),避免用到未恢复的默认值。
- 自动连接触发时弹 toast「正在自动连接到 X」(全局 ScaffoldMessenger key)。
- 测试:选中节点 select 落盘 + 重启恢复(具体/智能)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 19:31:01 +08:00 |
|
wangjia
|
f2891ff2f9
|
fix(client): 自动连接门控改判生效节点就绪 + _connect 诊断日志(1.0.23)
自动连接已正确触发,但 _connect 撞 node.uuid.isEmpty 报「节点尚未就绪」:门控用的是
nodes.any(uuid),而 _connect 用 effectiveNode。改门控直接判 effectiveNode.uuid 非空(与
_connect 同一判据)。_connect 加一行日志记录 node/uuid/selected/nodes 便于确认。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 19:15:39 +08:00 |
|
wangjia
|
28f8e5ebcd
|
fix(client): 自动连接竞态真因 — 等设置加载完再判(1.0.22)
日志实证:节点就绪(~450ms)与设置加载几乎同时完成,节点回调早 1ms 读到还没加载完的
autoConnect=false → 不连。AppSettings 加 loaded 标志(_load 完成置 true,失败也置);
_maybeAutoConnect 同时监听 nodes + settings,二者都就绪(settings.loaded && 节点 uuid 非空)
才决策一次。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 19:08:49 +08:00 |
|
wangjia
|
ff2f2f3c07
|
fix(client): 自动连接回调改用强类型 ref.read + 日志落文件(1.0.21)
- 自动连接回调不再用 listenManual 的 next(裸订阅会退化成 dynamic → valueOrNull 扩展崩),
改 ref.read(nodesProvider) 拿强类型 AsyncValue,彻底躲开 dynamic 扩展坑。
- logLine 除 stdout 外落桌面端固定文件(%LOCALAPPDATA%\Pangolin\pangolin.log,每次启动截断),
GUI/管理员启动也能拿日志,免 Tee。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 19:01:48 +08:00 |
|
wangjia
|
7fdadace4e
|
fix(client): 自动连接回调 NoSuchMethod(valueOrNull on dynamic)— 真正根因
日志显示每次节点加载,_maybeAutoConnect 回调抛 NoSuchMethodError:AsyncData 没有 valueOrNull
(在判 autoConnect 之前就崩)→ 自动连接从未生效。根因:sub 声明成裸 ProviderSubscription
(=<dynamic>),逼 listenManual 推断成 dynamic,next 变 dynamic;valueOrNull 是扩展 getter,
dynamic 上不解析 → 运行期 NoSuchMethod。修:sub 标全泛型 ProviderSubscription<AsyncValue<List<Node>>>。
(1.0.18 的竞态修复是误判,真凶是这个崩溃。)诊断日志暂留,确认后清。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 18:46:57 +08:00 |
|
wangjia
|
f734126eb6
|
chore(client): 1.0.19 — 自动连接诊断日志
排查「自动连接没生效」:在 _RootFlow 自动连接路径(HomeShell 显示 / 节点就绪 / autoConnect/phase 判定 / 触发)
与 Settings(_load 读到的 autoConnect、setAutoConnect 落盘)加 logLine 日志,定位卡在哪一步。诊断完移除。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 18:26:47 +08:00 |
|
wangjia
|
6beed211b9
|
fix(client): 自动连接竞态 + 版本 1.0.18+19
_maybeAutoConnect 启动瞬间同步读 settingsProvider.autoConnect,但其 _load 异步(SharedPreferences)
还没完成 → 读到默认 false 而永久跳过自动连接。改到「节点就绪」回调里再判 autoConnect(节点走网络
拉取,远慢于本地设置读取,届时设置必已加载到位)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 18:20:13 +08:00 |
|
wangjia
|
31b171d26c
|
fix(installer): 装完启动以管理员运行(runascurrentuser)
安装包 PrivilegesRequired=admin 提权运行,但默认 postinstall「启动程序」会降回普通
用户身份拉起 app(Inno RunAsOriginalUser)→ requireAdministrator 的 app 没管理员权、
TUN 建不了。[Run] 加 runascurrentuser,用安装包的管理员令牌拉起,装完即管理员运行。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 18:15:44 +08:00 |
|
wangjia
|
9d18579c11
|
chore(client): 版本号 1.0.17+18(智能选择确认/搜索框配色/PangolinFieldBox/连通看门狗/自动连接+Win自启)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 17:54:33 +08:00 |
|
wangjia
|
0820397a14
|
chore(client): 版本号 1.0.16+17(single-flight 刷新 + 托盘退出崩溃修复)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 11:46:16 +08:00 |
|
wangjia
|
eafc7167e2
|
chore(client): 版本号 1.0.15+16(自适应菜单 + 节点切换防误触)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 10:11:48 +08:00 |
|
wangjia
|
880fa32793
|
fix(devices): 本机也显示 ⋯ 菜单(只「重命名」)—— 修单设备无法改名(1.0.14)
ci-pangolin / Lint — shellcheck (push) Successful in 8s
ci-pangolin / OpenAPI Sync Check (push) Successful in 16s
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Successful in 6s
ci-pangolin / Flutter — analyze + test (push) Failing after 14s
ci-pangolin / Portable SQL — 可移植性 (mysql/sqlite) (push) Successful in 4s
ci-pangolin / Codegen Drift — token 生成物未漂移 (push) Successful in 5s
ci-pangolin / Go — build + test (push) Successful in 9s
ci-pangolin / E2E Smoke — L4 进程级端到端 (push) Successful in 15s
ci-pangolin / Go — integration (mysql/redis testcontainers) (push) Failing after 4m10s
ci-pangolin / Golden — 视觉回归 (components + auth) (push) Successful in 14s
之前 ⋯ 菜单对本机隐藏,而用户唯一设备就是本机 → 根本点不到、改不了名。
改:本机显示 ⋯ 菜单但只含「重命名」(自我强制退出/清除无意义,仍只对他设备)。
测试:本机菜单只有重命名断言;全量 flutter 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 09:49:09 +08:00 |
|
wangjia
|
315c343ed5
|
feat(devices): 设备默认名「平台简写·主机名」+ 支持重命名(1.0.13)
ci-pangolin / Lint — shellcheck (push) Successful in 7s
ci-pangolin / OpenAPI Sync Check (push) Successful in 17s
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Successful in 6s
ci-pangolin / Flutter — analyze + test (push) Failing after 14s
ci-pangolin / Portable SQL — 可移植性 (mysql/sqlite) (push) Successful in 5s
ci-pangolin / Codegen Drift — token 生成物未漂移 (push) Successful in 6s
ci-pangolin / Go — build + test (push) Successful in 11s
ci-pangolin / E2E Smoke — L4 进程级端到端 (push) Successful in 14s
ci-pangolin / Go — integration (mysql/redis testcontainers) (push) Failing after 4m3s
ci-pangolin / Golden — 视觉回归 (components + auth) (push) Successful in 14s
① 默认名:DeviceIdentity 改「平台简写(Win/Mac/Linux/iOS/Andr)·主机名」,主机名截
到 8、总长≈12(替代裸主机名,更短)。
② 重命名:新端点 POST /v1/me/devices/{uuid}/rename(Service.RenameDevice 校验归属+
截 64);store.UpdateName;客户端 account_api.renameDevice + provider.rename +
「我的设备」⋯ 菜单加「重命名」+ 输入弹窗;l10n(zh/en)。
③ 版本 1.0.13。
测试:server RenameDevice(归属/空名/404)+ 客户端 rename widget;全量 go/flutter 绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 09:12:36 +08:00 |
|
wangjia
|
878cef9e52
|
build(client): 1.0.12 — 设备下拉接已登录设备 + 版本对齐(pubspec=iss=1.0.12)
ci-pangolin / Lint — shellcheck (push) Successful in 5s
ci-pangolin / OpenAPI Sync Check (push) Successful in 17s
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Successful in 6s
ci-pangolin / Flutter — analyze + test (push) Failing after 14s
ci-pangolin / Portable SQL — 可移植性 (mysql/sqlite) (push) Successful in 5s
ci-pangolin / Codegen Drift — token 生成物未漂移 (push) Successful in 6s
ci-pangolin / Go — build + test (push) Successful in 9s
ci-pangolin / E2E Smoke — L4 进程级端到端 (push) Successful in 14s
ci-pangolin / Go — integration (mysql/redis testcontainers) (push) Failing after 4m6s
ci-pangolin / Golden — 视觉回归 (components + auth) (push) Successful in 15s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 08:41:37 +08:00 |
|
wangjia
|
3a8e27b5b0
|
build(client/windows): 版本 bump 1.0.10 → 1.0.11(设备会话管理+统计时区+设备过滤)
ci-pangolin / Lint — shellcheck (push) Successful in 5s
ci-pangolin / OpenAPI Sync Check (push) Successful in 16s
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Successful in 6s
ci-pangolin / Flutter — analyze + test (push) Failing after 14s
ci-pangolin / Portable SQL — 可移植性 (mysql/sqlite) (push) Successful in 5s
ci-pangolin / Codegen Drift — token 生成物未漂移 (push) Successful in 5s
ci-pangolin / Go — build + test (push) Successful in 9s
ci-pangolin / E2E Smoke — L4 进程级端到端 (push) Successful in 16s
ci-pangolin / Go — integration (mysql/redis testcontainers) (push) Failing after 4m8s
ci-pangolin / Golden — 视觉回归 (components + auth) (push) Successful in 14s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-29 08:08:47 +08:00 |
|
wangjia
|
7dcbe04934
|
build(client/windows): 版本 bump 1.0.9 → 1.0.10(输入框聚焦橙边修复)
ci-pangolin / Lint — shellcheck (push) Successful in 10s
ci-pangolin / OpenAPI Sync Check (push) Successful in 19s
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Successful in 7s
ci-pangolin / Flutter — analyze + test (push) Successful in 24s
ci-pangolin / Portable SQL — 可移植性 (mysql/sqlite) (push) Successful in 6s
ci-pangolin / Codegen Drift — token 生成物未漂移 (push) Successful in 5s
ci-pangolin / Go — build + test (push) Successful in 9s
ci-pangolin / E2E Smoke — L4 进程级端到端 (push) Successful in 17s
ci-pangolin / Go — integration (mysql/redis testcontainers) (push) Successful in 4m14s
ci-pangolin / Golden — 视觉回归 (components + auth) (push) Successful in 15s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-28 22:33:52 +08:00 |
|
wangjia
|
1adf088c68
|
build(client/windows): 版本 bump 1.0.8 → 1.0.9(节点页刷新)
ci-pangolin / OpenAPI Sync Check (push) Successful in 20s
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Successful in 6s
ci-pangolin / Flutter — analyze + test (push) Successful in 24s
ci-pangolin / Portable SQL — 可移植性 (mysql/sqlite) (push) Successful in 6s
ci-pangolin / Codegen Drift — token 生成物未漂移 (push) Successful in 5s
ci-pangolin / Go — build + test (push) Successful in 9s
ci-pangolin / E2E Smoke — L4 进程级端到端 (push) Successful in 16s
ci-pangolin / Go — integration (mysql/redis testcontainers) (push) Successful in 4m13s
ci-pangolin / Golden — 视觉回归 (components + auth) (push) Successful in 15s
ci-pangolin / Lint — shellcheck (push) Failing after 11m42s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-28 22:00:26 +08:00 |
|
wangjia
|
51c171d815
|
build(client/windows): 版本 bump 1.0.7 → 1.0.8(节点 status 渲染等)
ci-pangolin / Lint — shellcheck (push) Successful in 7s
ci-pangolin / OpenAPI Sync Check (push) Successful in 23s
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Successful in 5s
ci-pangolin / Flutter — analyze + test (push) Successful in 24s
ci-pangolin / Portable SQL — 可移植性 (mysql/sqlite) (push) Successful in 6s
ci-pangolin / Codegen Drift — token 生成物未漂移 (push) Successful in 5s
ci-pangolin / Go — build + test (push) Successful in 9s
ci-pangolin / E2E Smoke — L4 进程级端到端 (push) Successful in 18s
ci-pangolin / Go — integration (mysql/redis testcontainers) (push) Successful in 4m17s
ci-pangolin / Golden — 视觉回归 (components + auth) (push) Successful in 15s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-28 21:47:54 +08:00 |
|
wangjia
|
e27bbbd384
|
build(client/windows): 版本 bump 1.0.6 → 1.0.7(我的入口纠正)
ci-pangolin / Lint — shellcheck (push) Successful in 5s
ci-pangolin / OpenAPI Sync Check (push) Successful in 21s
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Successful in 5s
ci-pangolin / Flutter — analyze + test (push) Successful in 23s
ci-pangolin / Portable SQL — 可移植性 (mysql/sqlite) (push) Successful in 5s
ci-pangolin / Codegen Drift — token 生成物未漂移 (push) Successful in 5s
ci-pangolin / Go — build + test (push) Successful in 8s
ci-pangolin / E2E Smoke — L4 进程级端到端 (push) Successful in 16s
ci-pangolin / Go — integration (mysql/redis testcontainers) (push) Failing after 4m27s
ci-pangolin / Golden — 视觉回归 (components + auth) (push) Successful in 13s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-28 20:33:30 +08:00 |
|
wangjia
|
09eab3b3b6
|
build(client/windows): installer 版本 bump 1.0.5 → 1.0.6(折线图/加载转圈/侧栏改版)
ci-pangolin / Lint — shellcheck (push) Successful in 5s
ci-pangolin / OpenAPI Sync Check (push) Successful in 21s
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Successful in 7s
ci-pangolin / Flutter — analyze + test (push) Successful in 24s
ci-pangolin / Portable SQL — 可移植性 (mysql/sqlite) (push) Successful in 5s
ci-pangolin / Codegen Drift — token 生成物未漂移 (push) Successful in 4s
ci-pangolin / Go — build + test (push) Successful in 9s
ci-pangolin / E2E Smoke — L4 进程级端到端 (push) Successful in 20s
ci-pangolin / Go — integration (mysql/redis testcontainers) (push) Successful in 4m18s
ci-pangolin / Golden — 视觉回归 (components + auth) (push) Successful in 15s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-28 20:26:56 +08:00 |
|
wangjia
|
6f480acad5
|
build(client/windows): installer 版本 bump 1.0.4 → 1.0.5(含统计页重设计)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-28 17:47:46 +08:00 |
|
wangjia
|
47147a1041
|
build(client/windows): installer 版本 bump 1.0.3 → 1.0.4(含节点国旗)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-28 16:32:57 +08:00 |
|
wangjia
|
b12519be0a
|
fix(client/windows): runner 加 /utf-8 编译选项,根治 C4819 中文注释编译失败
win32_window.cpp 含中文注释(UTF-8 无 BOM),在 zh-CN 机器(代码页 936)+ 新版
MSVC 上报 C4819「字符无法用当前代码页表示」,叠加 runner 的 /WX 直接 error
C2220 编译失败。APPLY_STANDARD_SETTINGS 加 /utf-8,让 MSVC 按 UTF-8 解析
所有 runner 源码,永久根治。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-27 20:49:36 +08:00 |
|
wangjia
|
8d3c5da7ee
|
fix(client/windows): installer 覆盖修复 — 装新版前静默卸载遗留 AppId 的 1.0.0
1.0.0 的 AppId 是非法 GUID(...PANGOLIN0001),1.0.1 起改成合法 GUID。
AppId 不同 → Inno 视为两个独立产品 → 控制面板里 1.00/1.01 并排不覆盖。
当前 AppId 已稳定会原地升级;再在 ssInstall 前把遗留 AppId 的残留装
静默卸掉(/VERYSILENT),清掉已并存的 1.0.0 幽灵。版本 bump 1.0.2→1.0.3。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-27 20:42:54 +08:00 |
|
wangjia
|
5ea4e1ae03
|
fix(client/windows): 任务栏图标 + 关闭窗口不再断连接
- 关闭窗口断连接:onExitRequested 原先无条件 _teardownVpn 再退出;Windows 点 X
会触发该回调拆隧道,而 window_manager 的 preventClose 又把窗口仅隐藏到托盘
→ 出现「一关就断网、进程还在」。改为 Windows 下点 X/Alt+F4 取消退出+隐藏,
保持隧道;真正退出只走托盘「退出」(onBeforeQuit 标记 _isQuitting 再拆隧道)。
macOS Cmd+Q 仍正常拆隧道退出。
- 任务栏图标没换:仅靠 WNDCLASS.hIcon(LoadIcon 单尺寸)任务栏可能拿不到正确
尺寸。窗口创建后用 LoadImage 按系统 SM_CXICON/SM_CXSMICON 各取一份,
WM_SETICON 显式设 ICON_BIG(任务栏/Alt-Tab)+ ICON_SMALL(标题栏)。
- 版本 1.0.1 → 1.0.2。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-22 17:53:34 +08:00 |
|
wangjia
|
94993b21b4
|
fix(client/windows): 修桌面/标题栏图标 + 标题文案 + 系统托盘空白
- app_icon.ico 重新由 assets/app-icon.svg 生成(穿山甲品牌图标,多尺寸),
替换残留的默认 Flutter logo —— 同时修好桌面图标与标题栏小图标。
- 窗口标题去掉 "VPN" 字眼:main.cpp 原生标题 pangolin_vpn → Pangolin;
main.dart 用 windowManager.setTitle('穿山甲') 显示中文品牌名;
Runner.rc 的 FileDescription/InternalName/ProductName → Pangolin。
- 系统托盘空白:Windows 走 Win32 Shell_NotifyIcon 只认 .ico(传 PNG 显示空白),
新增 BMP 编码的 assets/tray_icon.ico,system_tray.dart 按平台选 ico/png。
- 安装包版本 1.0.0 → 1.0.1(pubspec 1.0.1+2)便于区分测试构建。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-22 17:06:05 +08:00 |
|
wangjia
|
eea851737f
|
docs(client/windows): 合并后校正 README API 默认值说明(已随 main 改为测试节点)
ci-pangolin / Lint — shellcheck (push) Has been cancelled
ci-pangolin / OpenAPI Sync Check (push) Has been cancelled
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Has been cancelled
ci-pangolin / Flutter — analyze + test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-22 14:17:48 +08:00 |
|
wangjia
|
322d806876
|
fix+build(client/windows): 复查修缮——一键构建脚本 + 修 README dart-define 漏项 + 清 lint
- 新增 client/windows/build.ps1:拉内核→带 --dart-define 构建→出安装包一键串联,
规避 Release 漏 --dart-define 导致默认连 localhost、登录「网络请求失败」的坑。
- README:Release 命令补回 --dart-define 并加显式警告,指向一键脚本。
- 清 4 个 lint warning:desktop_vpn_bridge 多余 cast→pattern match、去多余非空断言;
nav_sidebar 删未用 import;vpn_bridge_mock 加 killSwitchEnabled getter。
- 同步 window_manager/tray_manager/screen_retriever 插件注册生成文件(win+macos)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-22 14:17:13 +08:00 |
|
wangjia
|
4025ce341c
|
build(client/windows): installer AppId 改为合法 GUID
原 AppId 段含非 hex 占位(PANGOLIN0001);Inno 虽接受任意串,改为规范 GUID 更清晰。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-22 09:17:31 +08:00 |
|
wangjia
|
ec0e3d1498
|
docs(client/windows): 更新 README — 真机构建验证 + 字体打包 + 安装包 + 踩坑
记录:已真机 build 通过;ATL 前置;LNK1327/mt.exe(MANIFESTUAC)与 fetch SHA pin 排错;
flutter build + ISCC 出安装包步骤;待人工验证清单(运行期连通/托盘/卸载)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-22 09:08:19 +08:00 |
|
wangjia
|
18a8c9024c
|
build(client/windows): Inno Setup 安装包脚本 + 简中语言包
- pangolin.iss:打包 Release 全量(exe + flutter 运行时 + sing-box.exe + wintun.dll
+ data/字体),装到 Program Files\Pangolin,开始菜单/桌面快捷方式,卸载清理
%LOCALAPPDATA%\Pangolin。
- 随仓库附带 ChineseSimplified.isl(本机 Inno Setup 未含官方简中包),.iss 相对引用,
安装包自带中文向导。
- 已在 Windows 真机 ISCC 编译通过 → Output\pangolin-setup-1.0.0.exe(24MB)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-22 09:06:44 +08:00 |
|