-
74d8c857be
feat(server): 私有服务域名分流(PANGOLIN_PRIVATE_SPLIT_DOMAINS)
main
wangjia
2026-07-16 07:22:16 +08:00
-
4a98bccedc
docs: iOS 绕过 App Store 分发 VPN 渠道调研(官方七渠道+国内灰产梯度+落地建议)+ 索引登记
feat/pay-v2-integration
wangjia
2026-07-13 20:31:35 +08:00
-
6d22127210
fix(client/pay): 修 Android 拉起收银台失败(couldn't open ali)——AndroidManifest 加 <queries>(https/alipays 包可见性)+ _openRedirectUrl 去 canLaunchUrl 误判改外部→app内浏览兜底
wangjia
2026-07-13 20:14:03 +08:00
-
68608d6471
feat(server/auth): 新用户注册欢迎通知——注册同事务插 reward 类到账(零孤儿)
wangjia
2026-07-13 19:03:18 +08:00
-
70b950a084
chore(windows): installer 版本 1.0.72→1.0.73 对齐 pubspec
wangjia
2026-07-13 18:24:40 +08:00
-
823cae8e6e
chore: bump 1.0.72+73 → 1.0.73+74(安全修复批测试包:设备override连接闸/promo TOCTOU/macOS自更新韧性/switchMethod)
wangjia
2026-07-13 18:14:03 +08:00
-
a62a2b1797
fix(server/pay): promo 限购 settle 侧幂等复查 + 000027 部分唯一索引(TOCTOU)
wangjia
2026-07-13 15:53:56 +08:00
-
ec4b3e0f22
fix(web): 注册卡片 async 回调加卸载守卫(I8);核实 I7 res.text() 已在 try 内(无需改)
wangjia
2026-07-13 15:53:40 +08:00
-
301e13f477
fix(client/payment): switchMethod 补 catch-all 兜网络/超时错(与 start/resume 对齐)防卡 awaitingPayment
wangjia
2026-07-13 15:53:30 +08:00
-
3acd3ca59d
fix(client/update): macOS 自更新失败韧性——回滚校验/提权自愈防换丢+codesign验签闸+超时不硬动+退出码检
wangjia
2026-07-13 15:52:35 +08:00
-
1e102a5a79
fix(server/nodes): 连接设备上限闸读 max_devices_override(登录闸已读,连接闸漏)
wangjia
2026-07-13 15:47:15 +08:00
-
ed99e2943e
fix(openapi): Notice.id string/uuid→integer/int64 + body_zh/en 移出 required(对齐实际实现,终审建议)
wangjia
2026-07-13 14:22:00 +08:00
-
5e9bb9e611
docs: 通知机制实现计划 HTML 阅读版 + 索引登记 + 设计互链
wangjia
2026-07-13 14:15:05 +08:00
-
2b4350cfc4
feat(server): 装配 notices(路由替换空壳+reward/pay 注入)+ 发版联动插 version 公告
wangjia
2026-07-13 14:09:54 +08:00
-
78fd600522
feat(client/notices): 通知页真实化+铃铛红点接 provider+进页清读+三类型标签六语
wangjia
2026-07-13 14:05:47 +08:00
-
84b162e834
feat(nodectl): notice add/list/revoke 子命令(校验+审计+可选邮件)
wangjia
2026-07-13 14:01:50 +08:00
-
75ec361542
feat(server/notices): Service — 发布校验/审计/important 邮件兜底(幂等)
wangjia
2026-07-13 13:51:28 +08:00
-
e1e198e169
feat(server): 到账通知四接缝(邀请注册/首充/TG/购买开通)——与发放同事务零孤儿
wangjia
2026-07-13 13:49:09 +08:00
-
6a782a07fd
feat(client): notices api + provider(未读计数/markAllRead/延迟首拉)
wangjia
2026-07-13 13:48:12 +08:00
-
0325603470
feat(server/notices): GET /v1/notices(合并+unread_count)+ POST /read + openapi 扩展
wangjia
2026-07-13 13:43:50 +08:00
-
ed1f805cbc
feat(server/notices): Store — 广播∪定向合并查询/已读水位/事务内插通知
wangjia
2026-07-13 13:36:32 +08:00
-
542954e4ea
design(prototype): 通知视图两端统一(pill式)+ reward/version/promo 示例与展开态
wangjia
2026-07-13 13:36:16 +08:00
-
21a30aa4c8
feat(server/migrate): 000026 notices 表 + users.notices_read_at 已读水位
wangjia
2026-07-13 13:32:23 +08:00
-
0657a830d0
docs(plan): 系统通知机制实现计划(11 任务 TDD)
wangjia
2026-07-13 13:30:28 +08:00
-
e195d037a4
docs: 系统通知机制设计文档(Spec ③)
wangjia
2026-07-13 13:21:26 +08:00
-
ab84a3542a
refactor(website): 邀请/注册页语言跟随站点路由(六语变体),移除卡内 zh/EN 切换
wangjia
2026-07-13 12:50:24 +08:00
-
b48097469e
fix(website): 落地页/注册页标题防孤字折行(text-wrap:balance + 字号收档)
wangjia
2026-07-13 12:39:01 +08:00
-
94266804bc
fix(server/reward): 邀请发放审计 target 带对方 id(invite:reg:invitee=N 等,替换静态占位串)——审计可回答「因谁而发」
wangjia
2026-07-13 12:24:27 +08:00
-
65ce2664ee
feat(website): 独立注册页 /register(邮箱/邀请码预填+验证码注册+平台匹配下载)+ 主页/落地页跳转接入 + 登录态隐藏注册入口
wangjia
2026-07-13 12:20:32 +08:00
-
254db4f40d
feat(website): 邀请落地页 /i/<code> —— 显码+复制+奖励说明+下载引导(CF Pages _redirects 重写)
wangjia
2026-07-13 12:04:45 +08:00
-
2c94b53a9e
fix(server/reward): TG bot 回复区分已领取/未加入两态 + 按 Telegram language_code 中英双语
wangjia
2026-07-13 11:46:55 +08:00
-
66422f92ce
fix(client): created 单详情补「取消订单」按钮(原型 pending 双按钮早有规格,代码漏)+ 自动连接 toast 3s→1.5s
wangjia
2026-07-13 11:43:48 +08:00
-
1c2ec2844d
feat(server/pay): 优惠套餐(Promo SKU)每账号限购一次——已付过再下单 409 PROMO_ALREADY_USED
wangjia
2026-07-13 11:36:24 +08:00
-
92943258ab
fix(client/orders): 继续支付改为 retry 恢复原单会话(原误进购买页致重复下单);409 已付自纠刷新
wangjia
2026-07-13 11:29:25 +08:00
-
07c339c18e
feat(server/devices): users.max_devices_override 单用户设备上限覆盖(NULL走套餐默认)+ 迁移000025
wangjia
2026-07-13 10:15:07 +08:00
-
3d24451835
fix(nodes): 桌面 Nodes 页统一 600 宽度(原型挂 view-body + Flutter PageBody)+ 双列网格改单列镜像原型
wangjia
2026-07-13 10:13:48 +08:00
-
a61641b53b
refactor(client): SubScaffold 六合一(视觉零变化)+ tablet 注释订正 + 平板通知铃入口(#20)
wangjia
2026-07-13 10:07:18 +08:00
-
3a8ff64921
fix(client): 审计修复——device_limit 相对时间走 relativeTime 单源+裸 Icons 换 PangolinIcons+Payment onDone 三处接通+内联双语文案收进 AppText
wangjia
2026-07-13 09:56:22 +08:00
-
e95995f20f
fix(prototype): 桌面补 redeem 兑换视图 + accRedeemRow 接线改指 redeem(原为误指购买页)
wangjia
2026-07-13 09:53:25 +08:00
-
fa9a5c2d5e
design+client: 抽 .view-body/PageBody 统一桌面内容页宽度(600/wide 840)——stats·contact 补约束,settings·contact 560→600,九页收口
wangjia
2026-07-13 09:46:57 +08:00
-
b88921a030
fix(prototype): ui-desktop 补 [hidden] display:none 守卫——登录静态屏 signup 表单不再与 signin 并排溢出
wangjia
2026-07-13 09:29:39 +08:00
-
a48e38cac0
design(prototype): 回填邀请屏——战绩三格+TG任务卡两态+具体天数(镜像 invite_page.dart,补原型先行欠账)
wangjia
2026-07-13 09:23:14 +08:00
-
559fd38a52
docs(reward): 设计文档 webhook 路径 /tg/webhook→/v1/tg/webhook + app_text 首充注释 15→7
wangjia
2026-07-13 08:18:40 +08:00
-
488688aeac
fix(reward): TG webhook 空 secret fail-fast + 首充奖励文案六语 15→7(终审必修)
wangjia
2026-07-13 08:17:11 +08:00
-
98ba578169
docs: 邀请奖励实现计划 HTML 阅读版 + 索引登记
wangjia
2026-07-13 08:10:55 +08:00
-
d04183b066
merge(invite): 客户端邀请奖励 UI 轨(Task 11-13)并入
wangjia
2026-07-13 08:05:18 +08:00
-
-
c29aaf9a2a
feat(server): 装配 reward 服务 — 注入 auth/webhook + 挂 /v1/invite、/tasks/telegram/start、/tg/webhook
wangjia
2026-07-13 08:01:01 +08:00
-
0b24e26fb6
feat(client/auth): 注册页加邀请码(选填)输入,提交时传 invite_code
wangjia
2026-07-13 08:00:25 +08:00
-
e26284d072
feat(server/reward): TG getChatMember 真校验 + ClaimTelegram + POST /tg/webhook
wangjia
2026-07-13 07:54:46 +08:00
-
e061237496
feat(client/invite): 邀请页真实化(邀请区+战绩+TG 任务卡)+ 六语 l10n
wangjia
2026-07-13 07:51:19 +08:00
-
e23cd5e1bd
feat(server/reward): TG 绑定 token 签发/消费 + GET /v1/tasks/telegram/start
wangjia
2026-07-13 07:49:31 +08:00
-
d23f7bca8f
feat(server/reward): GET /v1/invite — 邀请码/链接/战绩/TG 任务态
wangjia
2026-07-13 07:46:07 +08:00
-
de1117b0e6
feat(server/pay): 首充钩子 — settle 内接邀请首充段发奖(first_paid_at 幂等)
wangjia
2026-07-13 07:41:15 +08:00
-
cdf67a200c
feat(client): invite api + provider + auth_api.register 加 inviteCode
wangjia
2026-07-13 07:39:01 +08:00
-
-
54d106ca8b
feat(server/auth): Register 加 inviteCode + ReferralHook(注册后 best-effort 归因)
wangjia
2026-07-13 07:33:42 +08:00
-
2fb7391a17
feat(server/reward): OnRegister 绑定 + 注册段双方发奖 + 自邀请/设备/月封顶防刷
wangjia
2026-07-13 07:27:10 +08:00
-
2bd31bbd55
fix(server/reward): isDup 收窄到 unique/duplicate 防误判 FK/NOTNULL + 补 referrals 唯一路径测试
wangjia
2026-07-13 07:19:41 +08:00
-
75636c8ea3
feat(server/reward): Store — referrals/reward_claims/invite_code 数据访问 + 唯一守卫
wangjia
2026-07-13 07:15:28 +08:00
-
0695c7958b
feat(server/codes): GrantRewardTx 复用 applySubscription 发奖励会员天数
wangjia
2026-07-13 07:11:17 +08:00
-
52b5e90d92
fix(server/migrate): 000024 sqlite 重建 subscriptions 后补回 idx_subs_user_exp 索引 + 回归断言
wangjia
2026-07-13 07:08:26 +08:00
-
9b858c5224
feat(server/migrate): 000024 邀请奖励表 + subscriptions.source 扩 invite/task
wangjia
2026-07-13 06:59:52 +08:00
-
b70857cc0e
docs(plan): 邀请奖励 + 奖励任务实现计划(14 任务 TDD)
wangjia
2026-07-12 23:58:30 +08:00
-
b223cc5f81
docs: 邀请奖励 + 奖励任务(加入 TG 频道)设计文档(Spec ②)
wangjia
2026-07-12 23:10:20 +08:00
-
252779c607
fix(client/pay): CNY 渠道 method 对齐生产哪吒(nezha)+ 下单失败不再静默
wangjia
2026-07-12 22:09:31 +08:00
-
b702957788
feat(client/update): macOS 自更新改为自动装进 /Applications + 重启
wangjia
2026-07-12 21:55:58 +08:00
-
71fc982bb2
chore: bump 1.0.72+73(优惠套餐 + 发版测自动更新)
client-v1.0.72
wangjia
2026-07-12 20:01:13 +08:00
-
17d99acf62
feat(client/purchase): 全员优惠月付特殊卡片(¥6/$1,随渠道显价)
wangjia
2026-07-12 19:34:07 +08:00
-
7ac9fa40f0
feat(server/pay): catalog 加全员优惠月付 pro_month_promo(¥6/$1)+ Promo 标记
wangjia
2026-07-12 19:27:34 +08:00
-
2d599f836d
chore(scripts): local_test.sh API_URL 支持 env 覆盖(发版烘生产域名)
wangjia
2026-07-12 19:04:34 +08:00
-
e5f831796f
chore: bump 1.0.71+72(PlansScreen删除 + Redeem 文案 + 过期单重新购买)
wangjia
2026-07-12 18:58:09 +08:00
-
41f42dc250
fix(client/orders): 过期单动作改「重新购买」(orderRebuy),不再用歧义的「继续支付」
wangjia
2026-07-12 18:56:01 +08:00
-
04d5cbc11f
feat(l10n): 账户入口 redeemEntry 改「Redeem」(去掉「& buy」,购买已独立成购买套餐行)
wangjia
2026-07-12 18:54:58 +08:00
-
2416c943cb
refactor(client): 删除死代码 PlansScreen + NavView.plans + choosePlan l10n(Renew→Purchase 直达后无调用者)
wangjia
2026-07-12 18:53:10 +08:00
-
a06a9d5c89
fix(client/macos): 重签 entitlements 的 App Group 修回 macOS 原生格式
worktree-fix-sysext-appgroup
wangjia
2026-07-12 18:46:07 +08:00
-
-
-
d0bd24bc4b
chore: bump 1.0.70+71(账户 IA 重构 + 订单过期态)
wangjia
2026-07-12 18:44:02 +08:00
-
8fba080d20
docs(pay-v2): IA 重构 + 订单过期态 落地验收记录(step5)
wangjia
2026-07-12 18:32:24 +08:00
-
0421c86099
test(golden): 重录 IA 漂移的 7 个 desktop golden(侧栏 Account + 账户页重排导致 shell 变化)
wangjia
2026-07-12 18:31:56 +08:00
-
73012ee03c
feat(client/orders): 订单列表/详情显示 expired 过期态
wangjia
2026-07-12 18:28:28 +08:00
-
5cf42a64c8
feat(settings): 删购买/订单卡 + 归连接/外观/关于三组 + Web 链接下沉底部
wangjia
2026-07-12 18:10:37 +08:00
-
44f22dcf52
fix(client/notif): 通知占位示例文案改英文(默认语言一致,避免英文 app 显中文)
wangjia
2026-07-12 18:05:24 +08:00
-
f5669c1a67
feat(notif): 通知占位屏 + 移动顶栏铃铛(Spec ③接口占位)
wangjia
2026-07-12 18:01:07 +08:00
-
dd3323add9
chore: 取消跟踪 local-l13-start.sh(本地联调脚本,含 throwaway 值,不入 git)+ gitignore
wangjia
2026-07-12 17:57:52 +08:00
-
2d37ef1e7b
fix(client): NotificationBell.onTap 恢复 required 非空(对齐规范)
wangjia
2026-07-12 17:57:02 +08:00
-
df19629944
feat(shell): 桌面侧栏加 Account 一级项 + 顶栏通知铃铛 + invite/notifications 视图接线
wangjia
2026-07-12 17:51:48 +08:00
-
b839c77712
feat(account): IA 重排+邀请入口+删偏好卡+设置/联系 formFactor 门控
wangjia
2026-07-12 17:44:51 +08:00
-
c520449002
refactor(contact): 渠道抽单源常量 + RedeemScreen 删去哪买引流卡(仅留兑换码)
wangjia
2026-07-12 17:30:25 +08:00
-
3a270cbeb0
feat(l10n): 邀请/通知/设置分组文案 ×6 语言(Spec ②③占位)
wangjia
2026-07-12 17:25:30 +08:00
-
c48ff034e2
feat(nav): NavView 加 invite/notifications + kAccountSubViews 收录 invite
wangjia
2026-07-12 17:21:30 +08:00
-
b9e2f8c2da
feat(server/pay): 订单展示层过期态(created 超 TTL 显 expired,零迁移)
wangjia
2026-07-12 17:18:02 +08:00
-
a0367b37e5
docs(plan): IA 计划加 Task 0 订单过期态后端 + 前端 expired 处理 + 部署步骤
wangjia
2026-07-12 17:14:09 +08:00
-
6f74c80025
docs(plan): 账户 IA 重构 Flutter 实现计划(8 任务,TDD,含 Spec ②③占位接口)
wangjia
2026-07-12 17:07:08 +08:00
-
040e715479
fix(prototype): 桌面内容视图宽度统一 600 居中(账户/设置/设备/订单/通知/邀请一致)
wangjia
2026-07-12 17:07:08 +08:00
-
576e9ee5a5
design(prototype): 设备⋮弹出菜单(重命名/强制退出/清除登录信息) + 设备管理页宽度收窄600居中
wangjia
2026-07-12 17:01:28 +08:00
-
18858b33d4
design(prototype): 设备管理改下钻页 + 桌面登录页注册表单切换
wangjia
2026-07-12 16:47:10 +08:00
-
53426bd4c1
fix(ds): .plan-banner 窄宽度按钮换行 + 名字保底宽度(修 Renew/Upgrade 覆盖用户名)
wangjia
2026-07-12 16:44:52 +08:00
-
7700c43216
design(prototype): 设备超限整合为全窗口挡板 overlay + 演示语言控件改 6 语言下拉
wangjia
2026-07-12 16:37:21 +08:00
-
6ff048967e
chore(prototype): 移除 setting-row 冗余 inline width(原子已带,防重复源)
wangjia
2026-07-12 16:22:02 +08:00
-
6f4be57ab8
fix(ds): .setting-row 加 box-sizing:border-box(width:100%+padding 出界修复)
wangjia
2026-07-12 09:31:29 +08:00
-
5002a4f35d
fix(ds): .setting-row 原子按钮安全化(border/background/width/text-align 重置)
wangjia
2026-07-12 09:27:21 +08:00
-
6f5a805536
design(prototype): 渲染新 IA 视觉稿(桌面+移动)— 含 bell 图标单源 + 通知/邀请预留
wangjia
2026-07-12 09:08:25 +08:00