Commit Graph

  • 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