-
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
-
77a37fce12
docs(design): 账户/设置/联系 信息架构重构 Spec ①(去重+归位,含邀请/通知预留位)
wangjia
2026-07-12 08:40:55 +08:00
-
e51d9dce6a
fix(windows): 恢复 pangolin.iss(上个提交被坏 one-liner 清空)+ bump 1.0.69
wangjia
2026-07-12 07:27:14 +08:00
-
48afe86475
fix(client): 设置页购买入口改为显示套餐(PurchaseScreen)而非兑换/去哪买链接
wangjia
2026-07-12 07:24:18 +08:00
-
a164490001
fix(client): 设置页兑换入口空 onTap 修复 + 新增我的订单入口(桌面侧栏 Settings 路径)
wangjia
2026-07-12 07:15:37 +08:00
-
8b4575181d
chore: bump 1.0.67+68(含订单/联系/收据布局修复,超越本地 1.0.66 干净升级)
wangjia
2026-07-12 06:54:34 +08:00
-
bcd3a0bbb1
design: 订单详情收据式布局重构(三屏一致)— 单卡+粘土条+撕裂线+去冗余
wangjia
2026-07-12 06:54:18 +08:00
-
c3d32a476e
fix(client): 联系/购买渠道卡点击外部打开(修空 onTap)+ 桌面账户子导航复现测试
wangjia
2026-07-12 06:54:18 +08:00
-
b30f472d90
fix(server/pay): 订单展示金额兜底 — 老单 amount_minor=0 回退档位展示价(按方式结算币种)
wangjia
2026-07-12 06:54:18 +08:00
-
ff91be928a
docs(pay-v2): 开发决策日志 step3-4(客户端落地 + 集成测试)
wangjia
2026-07-12 00:07:51 +08:00
-
272eca04ce
feat(client): pay v2 支付渠道 switch + 订单列表/详情端到端
wangjia
2026-07-12 00:07:15 +08:00
-
f6ce5267d5
feat(design): 支付渠道 switch 原型 + segswitch 原子 + 图标/语言同源闸
wangjia
2026-07-11 23:45:55 +08:00
-
a5adbf347b
feat(server/pay): 订单列表端点 + 分币种展示价 + 富字段详情
wangjia
2026-07-11 23:45:21 +08:00
-
-
43c76fb978
Merge remote-tracking branch 'origin/main' into feat/pay-v2-integration
wangjia
2026-07-11 16:44:05 +08:00
-
-
05922710b2
feat(server): CORS 中间件(白名单跨域,支持用户中心/官网前端)
wangjia
2026-07-11 15:33:07 +08:00
-
1a7b93ed2f
feat(server): /buy 自包含购买页(同源,USDT+哪吒,登录→下单→轮询开通)
wangjia
2026-07-11 14:52:21 +08:00
-
1198ecc556
fix(migrations): 恢复线性迁移编号,与生产已应用的对齐
wangjia
2026-07-11 14:25:09 +08:00
-
e6897ecda4
build(server): codes 依赖改伪版本 pin(经 gitea),去本地路径 replace
wangjia
2026-07-11 09:21:53 +08:00
-
db25bccaba
feat(website): /buy 加付款类型选择器(测 redirect/qr/crypto_address 三态渲染)
wangjia
2026-07-11 07:35:09 +08:00
-
43fead8823
feat(website): 本地联调 /buy 测试购买页(登录→下单→mock 付款→轮询开通)+ dev vite proxy
wangjia
2026-07-11 01:32:11 +08:00
-
bc9aa38392
fix(server): pay webhook 兜底补行不再漏停用用户(修静默丢钱)+ 未知事件日志 + PAY_BIZ_SECRET 启动守卫
wangjia
2026-07-11 00:48:57 +08:00
-
390b8b8f84
chore(server): pay v2 接入终验 + OpenAPI 登记 + 交付说明
wangjia
2026-07-11 00:34:10 +08:00
-
262773a9de
fix(client): dispose 不再静默取消支付订单,redirect launchUrl 加失败兜底
wangjia
2026-07-11 00:06:03 +08:00
-
a5fff28134
feat(client): 购买页三档 + 支付页 render_type 多态(crypto/redirect/qr 预留)+ 导航接线
wangjia
2026-07-10 23:50:35 +08:00
-
e66f79fdf6
feat(client): pay 支付领域模型 + PaymentApi + 支付流控制器(轮询 activated)
wangjia
2026-07-10 23:19:57 +08:00
-
16b8823f1f
feat(server): pay webhook 接收器(验签/时间窗/nonce + out_trade_no 幂等开通,回 SUCCESS)
wangjia
2026-07-10 22:38:01 +08:00
-
932953bafe
feat(server): /v1/pay 下单代理端点 + 购买台账(JWT 鉴权,user→biz_ref 映射)
wangjia
2026-07-10 22:32:43 +08:00