-
4baf24f6f8
feat(server): 自动更新 /version 清单端点(镜像 jiu)
wangjia
2026-07-07 00:12:46 +08:00
-
ec0942e1e7
feat(usercenter): SSO /sso 落地页(拿票兑会话→自动登录)
server-v1.0.3
wangjia
2026-07-07 00:02:48 +08:00
-
1e13f35219
feat(server): SSO 换票端点(App→Web 免登握手)
wangjia
2026-07-06 23:54:15 +08:00
-
e4de308ba4
fix(usercenter): 首屏直接渲染登录页(修"空白")+ html suppressHydrationWarning
wangjia
2026-07-06 23:40:24 +08:00
-
97caae95b8
feat(web): 官网 Windows 下载按钮上线(client CI 已产出 exe)
wangjia
2026-07-06 23:12:57 +08:00
-
4561ee4cc3
fix(ci): fetch-desktop-bin curl 加固(windows 外网 GFW 抖动)
client-v1.0.54
client-v1.0.53
wangjia
2026-07-06 22:56:20 +08:00
-
a53bbe743e
fix(ci): release-deploy 合并为单次 download-artifact + flatten
client-v1.0.52
wangjia
2026-07-06 22:44:17 +08:00
-
7b1f49c182
fix(ci): compile-windows 传 ISCC 用 Windows 路径(cygpath)
client-v1.0.51
wangjia
2026-07-06 22:31:40 +08:00
-
8c8486f9af
fix(ci): deploy-client 用 env 传 REF_NAME(防 Actions 注入)+ job.status 同法
client-v1.0.50
wangjia
2026-07-06 22:22:00 +08:00
-
7d0f4c8065
ci: 恢复 build-windows job(windows-runner 已提级 user 级)
client-v1.0.49
wangjia
2026-07-06 22:15:06 +08:00
-
3d521973ab
feat(server): CORS 中间件(Web 用户中心跨域调 /v1/*)
server-v1.0.2
wangjia
2026-07-06 21:52:33 +08:00
-
cb8e4bddd8
feat(web): 官网恢复登录入口 → usercenter(app.yanmeiai.com)
wangjia
2026-07-06 21:48:59 +08:00
-
4cfe4d0ccb
chore(ci): deploy-client 本轮 Android-only(暂无 windows runner, 移除 build-windows)
client-v1.0.48
wangjia
2026-07-06 20:51:18 +08:00
-
366695ffd6
chore(web): Windows 下载按钮暂改「即将推出」(其 CI 未产出 exe;本轮仅 Android 真下载)
wangjia
2026-07-06 19:58:18 +08:00
-
2e631ed3b5
feat(server+web): 客户端下载闭环——pangolin-server /downloads + 官网下载链接
server-v1.0.1
wangjia
2026-07-06 19:48:57 +08:00
-
2698116696
feat(ci): 客户端 CI 脚手架(Android+Windows, 照 jiu)——起草+Android 本地验证
wangjia
2026-07-06 19:40:34 +08:00
-
973c2c021b
fix(ci): 网络操作加超时(runner 长任务 ~14min 无日志崩溃 → 快失败可诊断)
server-v1.0.0
wangjia
2026-07-06 18:43:59 +08:00
-
f1950ffb6f
fix(ci): release-server 首次实跑修复 + go 工具链 sha256 pin
wangjia
2026-07-06 18:04:51 +08:00
-
8850c94e96
fix(ci): deploy-server 先装 go(runner 无 go → compile exit 127)
wangjia
2026-07-06 17:55:33 +08:00
-
4d67a90659
fix(ci): deploy-server 隧道 healthcheck 改非致命(本地 healthz 才是权威闸)
wangjia
2026-07-06 16:59:52 +08:00
-
cccbb7b56b
docs: 控制面 CF Tunnel/端口布局说明 + 方案 HTML 登记 index
wangjia
2026-07-06 16:53:36 +08:00
-
06ba76e22b
feat(deploy): 8080 收 loopback + 关 8080 防火墙 + 健康检查改本地/隧道(退役明文控制口)
wangjia
2026-07-06 16:47:32 +08:00
-
e2ffce90d3
feat(deploy): PANGOLIN_PUBLIC_URL 改 https://api.yanmeiai.com(客户端规则集走隧道)
wangjia
2026-07-06 16:45:00 +08:00
-
1b091f3be0
ci: 守护 Android manifest 禁全局明文(#25 控制面已 https)
wangjia
2026-07-06 16:41:59 +08:00
-
a5aea9438a
feat(client): 控制面基址默认 https://api.yanmeiai.com + 移除 Android 明文开关
wangjia
2026-07-06 16:37:42 +08:00
-
9b56e2667b
feat(deploy): cloudflared 出站隧道前置控制面 API(api.yanmeiai.com→127.0.0.1:8080)
wangjia
2026-07-06 16:32:32 +08:00
-
bac79017ae
docs(plan): #25 控制面 CF Tunnel 实现方案
wangjia
2026-07-06 16:30:11 +08:00
-
5c647235aa
chore(todo): #25 方案 propose/approve + #32 fallback 登记
wangjia
2026-07-06 16:28:45 +08:00
-
f8e870fd6a
fix(ci): backup 大小 sanity 阈值 50k→1k(小库压缩后 <50k 被误删)
wangjia
2026-07-06 15:34:18 +08:00
-
84b042394d
ci(backup): 备份步骤输出 tee 到 NAS _last-run.log(便于排障)
wangjia
2026-07-06 15:32:10 +08:00
-
e557a94ed0
fix(ci): lib-ssh 加 IdentitiesOnly+BatchMode(修 Too many auth failures)
wangjia
2026-07-06 15:05:44 +08:00
-
e1a17acbe4
feat(ci): SQLite 每日备份到 NAS(异地容灾,#26/F2)
wangjia
2026-07-06 14:55:11 +08:00
-
3efd67297e
ci(server): 编译/测试直接在 runner 跑,去嵌套 docker(修 DinD;go 工具链自动下载)
wangjia
2026-07-06 14:40:09 +08:00
-
f6e565ffdc
ci(site): 官网构建/部署直接在 runner 跑,去掉嵌套 docker(修 DinD 挂载)
site-v0.0.3
wangjia
2026-07-06 14:34:12 +08:00
-
ba5f71b716
ci: runs-on nas → ubuntu-latest(匹配 nas runner 实际 label)
site-v0.0.2
wangjia
2026-07-06 13:33:27 +08:00
-
7c26050cdb
docs(spec): 官网部署改 Cloudflare Pages(架构变更说明)
site-v0.0.1
wangjia
2026-07-06 10:08:20 +08:00
-
673914783d
refactor(ci): 官网部署改用 Cloudflare Pages(替代 rsync 到 pangolin1)
wangjia
2026-07-06 09:59:58 +08:00
-
443d4e3a11
feat(ci): test.sh(go test / flutter test)
wangjia
2026-07-06 00:37:48 +08:00
-
0825170044
fix(ci): 服务端流水线注入加固(tag 校验/JSON 转义/workflow env)+ gitignore server/out
wangjia
2026-07-06 00:33:47 +08:00
-
4fb3fe3fee
feat(ci): 服务端 server-v* 编译+release+部署(备份/迁移/回滚,复用 lib-ssh/lib-forgejo)
wangjia
2026-07-06 00:24:18 +08:00
-
91d1355721
fix(ci): 部署脚本 —— 私钥清理 trap 前移 + rsync 空目录守卫 + 主机密钥 accept-new(评审 Critical/Important)
wangjia
2026-07-06 00:17:37 +08:00
-
9bac5c8dcb
feat(ci): 官网 site-v* 构建+部署脚本(compile-site/deploy-site/lib-ssh/workflow)
wangjia
2026-07-06 00:10:53 +08:00
-
f0a8c6dd98
ci(checks): 触发路径纳入 scripts/ci(否则 CI 脚本改动不触发 lint)
wangjia
2026-07-06 00:05:26 +08:00
-
0b9f291ff1
ci(checks): shellcheck 覆盖 scripts/ci
wangjia
2026-07-06 00:03:05 +08:00
-
ff8fc36726
fix(ci): lib-forgejo TLS 校验默认开启,-k 改显式 opt-in(安全)
wangjia
2026-07-05 23:55:56 +08:00
-
b8343a8788
feat(ci): scripts/ci 基座(_env/lib-forgejo/notify)
wangjia
2026-07-05 23:49:59 +08:00
-
6be777dff5
docs(plan): CI/CD 实现计划(#30) —— .md 真相源 + HTML 阅读版 + 索引
wangjia
2026-07-05 23:40:59 +08:00
-
0ab31b4c58
docs(spec): CI/CD 密钥命名对齐 jiu(MACOS_*/APPSTORE_*/ANDROID_*)
wangjia
2026-07-05 23:19:29 +08:00
-
fe9a3a6cdb
docs: CI/CD 方案 HTML 阅读版 + 登记 docs/index.html(#30)
wangjia
2026-07-05 22:06:25 +08:00
-
f30097172a
docs(spec): CI/CD 全流程设计方案(#30)
wangjia
2026-07-05 22:02:40 +08:00
-
70d3293251
refactor(website): 域名/邮箱/渠道收口到 src/config/site.ts 单一真相源
wangjia
2026-07-05 19:23:19 +08:00
-
a454c63c4e
fix(website): 落定真实域名/邮箱/Telegram
wangjia
2026-07-05 19:19:58 +08:00
-
c1c6b7ccf5
fix(website): Docs 卡片暂改不可点(去掉「阅读」死链)
wangjia
2026-07-05 18:09:07 +08:00
-
75ed293151
fix(website): 移除无效的「登录」按钮(死 span,无链接)
wangjia
2026-07-05 17:56:49 +08:00
-
95abb74db2
fix(website): 价格按语言分币种 —— 英文版显示美元(P0)
wangjia
2026-07-05 17:43:44 +08:00
-
1c8f6cb56b
fix(website): 去除夸大宣传 + 隐藏占位 Blog 区(官宣页上线前 P0)
wangjia
2026-07-05 17:35:49 +08:00
-
08fb915b5e
test(devices): #27 同机换账号登录注册 E2E(SQLite,服务层)
wangjia
2026-07-05 13:11:25 +08:00
-
eb7c3c1062
feat(agent): WARP 域名分流 —— 命中域名走 Cloudflare 干净出口(#29)
wangjia
2026-07-02 13:40:00 +08:00
-
f035552ff5
fix: disconnect 吊销每设备凭证 + 客户端断开时真正调用(F4,#28)
wangjia
2026-07-02 13:29:01 +08:00
-
63d1baeb01
fix(server): devices 唯一键改 (user_id,uuid) —— 同机换账号不再 403 死结(F3,#27)
wangjia
2026-07-02 13:16:40 +08:00
-
bbe149fd41
docs: 全栈设计审查 2026-07(前端/后端/数据库,13 项发现分级)
wangjia
2026-07-02 12:52:08 +08:00
-
14bcdc2e79
docs(contact): 落定渠道二级页设计 —— 统一单表 + LINE 灰置
wangjia
2026-07-02 12:30:24 +08:00
-
91a890428f
docs: 联系我们渠道二级页交互设计(Telegram/LINE 多频道群组,DB 配置)
wangjia
2026-07-02 12:23:02 +08:00
-
2c804d4ebf
fix(scripts): local_test.sh 对齐当前 macOS 架构(sysext 标识符名 + 静态 libbox)
wangjia
2026-07-02 11:11:05 +08:00
-
8937044f55
fix(client/macos): 最小化托盘后点 Dock 图标唤回窗口(1.0.48+49)
wangjia
2026-07-02 10:50:40 +08:00
-
76126f7a0c
chore: bump 1.0.47+48 (弱网自动重连#18 + 用量去计)
wangjia
2026-07-02 09:58:27 +08:00
-
be27529054
feat(client): 弱网抖动先自动重连当前节点,不再动不动报「节点异常」(#18)
wangjia
2026-07-02 09:57:19 +08:00
-
daaed39bac
fix(server): 用量分钟数按墙上时钟去重 —— 多设备并发不再 N× 超计(bug)
wangjia
2026-07-02 09:57:19 +08:00
-
837bf55f6a
fix(client): 「今日剩余」不再冻结 —— 倒计时兜底启动 + 会话后静默刷新 /me(1.0.46+47)
wangjia
2026-07-02 01:54:53 +08:00
-
038e5b6ab5
fix(server): 被移除的设备会话轮询判活 —— dev 行不存在应判「失效」而非「有效」(bug)
wangjia
2026-07-02 01:54:53 +08:00
-
a274cc40c8
fix(client): 额度卡「今日剩余」标签不再被省略 + 短「免费版」标签(1.0.45+46)
wangjia
2026-07-02 01:40:50 +08:00
-
fc8c03f2c3
chore: bump 1.0.44+45 (免费版倒计时+看广告加时 #21)
wangjia
2026-07-02 01:01:42 +08:00
-
b461a476a2
feat(client): 免费版连接倒计时 + 到点切断 + 灰按钮 + 看广告加时(#21 前端)
wangjia
2026-07-02 00:33:21 +08:00
-
e023fb6579
feat(server): 免费版账户级分钟卡控 + 累加式看广告加时(#21 后端)
wangjia
2026-07-01 23:44:10 +08:00
-
-
0bedd1c4d1
fix(server): 连接删掉账户级 dp_uuid 回退,未注册设备直接拒(#16)
wangjia
2026-07-01 22:51:12 +08:00
-
6ea2ec4a32
chore: bump 1.0.43+44 (含连接设备上限 backstop 客户端 UX)
wangjia
2026-07-01 22:25:38 +08:00
-
0a70a24cdb
feat: 连接设备上限 backstop — 兜住"已登录的超限设备"(#16)
wangjia
2026-07-01 22:11:13 +08:00
-
8afe1f050c
chore(windows): installer 版本 1.0.41→1.0.42 对齐 pubspec
wangjia
2026-07-01 21:30:46 +08:00
-
fdca3d84a7
chore: bump 1.0.42+43
wangjia
2026-07-01 21:24:39 +08:00
-
e6f622d605
docs: 设备数量限制 + 超限 UX 设计文档(#16) + 登记 index
wangjia
2026-07-01 19:26:51 +08:00
-
34d980d875
feat(client): 设备数超限挡板 DeviceLimitScreen(#16 前端)
wangjia
2026-07-01 19:25:14 +08:00
-
6bac7fd2f0
feat(server): 设备上限登录闸(超限非硬拒登,返回 device_limit 信号)#16
wangjia
2026-07-01 19:16:10 +08:00
-
27dc59ed63
feat(server): pro 套餐设备上限 5 → 3
wangjia
2026-07-01 18:07:03 +08:00
-
58211d2fb8
fix(client): 连接时长按墙上时钟算,切后台/锁屏不漏计
wangjia
2026-07-01 09:53:49 +08:00
-
002eea7562
build(scripts): build-libbox apple 按平台分发产物,避免覆盖另一端 Frameworks
wangjia
2026-07-01 09:37:09 +08:00
-
37c1724b67
fix(client): 切后台停看门狗 — 后台 urltest 被限流不再误判节点死断连
wangjia
2026-07-01 08:54:16 +08:00
-
b23377acde
build(scripts): 各端 libbox 构建脚本修正 + 自动部署产物
wangjia
2026-07-01 07:53:35 +08:00
-
07861ea04b
fix(client): 看门狗后台唤醒不再误判节点死→假重连 (#18)
wangjia
2026-07-01 07:10:34 +08:00
-
6bcdbbe752
revert(macos): killswitch 回退 L0(低优先级暂缓)
wangjia
2026-07-01 06:38:47 +08:00
-
a32d87c9c0
fix(macos): killswitch 撤掉 includeAllNetworks(堵死整机网络) — 改 enforceRoutes+on-demand
wangjia
2026-07-01 06:09:04 +08:00
-
97c0fdbbad
test(macos): local_test.sh 加 killswitch fail-closed 漏测子命令
wangjia
2026-07-01 00:01:51 +08:00
-
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