fix:小组件- PUSH
This commit is contained in:
@@ -28,6 +28,27 @@
|
||||
- **阶段产物**:
|
||||
- `spec_kit/Client User Identity/spec.md`
|
||||
|
||||
## App Push
|
||||
|
||||
- **目标**:实现“每日提醒”推送闭环:首次进入 Onboarding 可选择每日推送次数(0~5,可跳过),个人主页每日提醒弹窗可改次数/关闭;客户端使用首次生成 UUID(`client_user_id`)与后端关联;后端按用户配置定时推送
|
||||
- **关键选型**:客户端继续使用 `expo-notifications`;后端使用 Expo Push Service + 定时任务(Celery/等价方案)按用户偏好发送
|
||||
- **阶段产物**:
|
||||
- `spec_kit/App Push/spec.md`
|
||||
- `spec_kit/App Push/plan.md`
|
||||
- `spec_kit/App Push/tasks.md`
|
||||
- **已完成编码(阶段性)**:
|
||||
- 客户端:新增 `client_user_id`(UUID v4)生成与持久化;每日提醒次数范围修正为 **0~5**(0 表示关闭)
|
||||
- 客户端:Onboarding 结束页(每日提醒)在用户选择次数 > 0 时**直接触发系统权限申请**;授权后获取 Expo Push Token 并调用后端 `register/preferences`(移除单独的 push 引导页)
|
||||
- 客户端:个人主页“每日提醒”弹窗移除测试模式强制无权限逻辑,改为真实读取系统权限;并在开关/点击 OK 时同步后端偏好
|
||||
- 客户端:新增推送接口封装 `client/src/services/pushApi.ts`(token 获取、register/preferences/get、自动上报时区与 locale,并携带用户画像供后端 Push 模板使用)
|
||||
- 后端:新增 Push 数据模型 + Alembic 迁移(`push_tokens` / `push_preferences` / `push_send_log`)
|
||||
- 后端:新增 Push API(`/v1/push/register`、`/v1/push/preferences`、`/v1/push/test`(dev)),并新增基础限流
|
||||
- 后端:实现 Celery 定时任务
|
||||
- 每日生成计划(按用户时区在 9:00~24:00 均匀分段随机抖动生成 0~5 个时间点)
|
||||
- ETA 发送任务(幂等:同一用户同一天同一 slot 只发一次;用户中途关闭/降次数会跳过)
|
||||
- 发送文案复用推荐模块 `scene="push"`(降风险)
|
||||
- 后端:`pytest` 全量通过(27 passed)
|
||||
|
||||
## Project Bootstrap
|
||||
|
||||
- **目标**:完成项目仓库初始化与工程约定落地,明确 client/server 结构、dev/pro 环境隔离、MySQL/Redis 资源命名与访问边界
|
||||
@@ -46,8 +67,8 @@
|
||||
|
||||
## Onboarding App Shell
|
||||
|
||||
- **目标**:落地首次进入体验(Onboarding 3–5 页可跳过 + Push 设置可跳过)与主应用壳(点赞/讨厌、收藏夹入口、通用设置入口)
|
||||
- **核心范围**:Onboarding 多页流程、Push 引导页、主界面反应操作(Like/Dislike)、收藏夹、设置页(版本、iOS 小组件入口/说明)
|
||||
- **目标**:落地首次进入体验(Onboarding 3–5 页可跳过 + 每日提醒可跳过/可关闭)与主应用壳(点赞/讨厌、收藏夹入口、通用设置入口)
|
||||
- **核心范围**:Onboarding 多页流程、主界面反应操作(Like/Dislike)、收藏夹、设置页(版本、iOS 小组件入口/说明)
|
||||
- **阶段产物**:
|
||||
- `spec_kit/Onboarding App Shell/spec.md`
|
||||
- `spec_kit/Onboarding App Shell/plan.md`
|
||||
@@ -66,6 +87,7 @@
|
||||
- 修复 iOS 签名 Team 配置不一致:为主 App(Debug)与 Widget Extension(Debug/Release)显式补齐 `DEVELOPMENT_TEAM=WS92GPX9H2`,避免打包/上传过程中回退到默认 Team 导致显示 “Other Team”
|
||||
- iOS 构建号已提升到 `2`,并将 `client/ios/client/Info.plist` 改为自动跟随 `MARKETING_VERSION` / `CURRENT_PROJECT_VERSION`
|
||||
- 推送 entitlements 的 `aps-environment` 已切到 `production`(用于 TestFlight/线上包)
|
||||
- 清理未接入编译的 WidgetKit 骨架残留:移除磁盘上的 `client/ios/MindfulnessWidget/` 文件,并从 `client/ios/client.xcodeproj/project.pbxproj` 删除对应工程引用(避免 Xcode 显示幽灵文件)
|
||||
|
||||
## Splash Consent
|
||||
|
||||
@@ -76,6 +98,38 @@
|
||||
- `spec_kit/Splash Consent/plan.md`
|
||||
- `spec_kit/Splash Consent/tasks.md`
|
||||
|
||||
## Policy Links
|
||||
|
||||
- **目标**:在客户端首次进入同意页底部补充「隐私协议/用户使用协议」入口,并将协议链接改为**由后端托管与按设备语言下发**(默认回退 EN)
|
||||
- **核心范围**:后端提供协议链接下发接口(可配置、可多语言);客户端按设备语言请求并展示链接,失败不阻塞“同意并继续”
|
||||
- **阶段产物**:
|
||||
- `spec_kit/Policy Links/spec.md`
|
||||
- `spec_kit/Policy Links/plan.md`
|
||||
- `spec_kit/Policy Links/tasks.md`
|
||||
- **已完成编码(任务清单已执行完毕)**:
|
||||
- 后端新增 `GET /v1/legal/links`(按 `Accept-Language` 分发,默认回退 EN,返回 `resolvedLang`)
|
||||
- 后端配置:`LEGAL_*` 环境变量(`server/env.example` 已补齐示例;不配置时走内置协议页兜底)
|
||||
- 后端新增内置协议内容页:
|
||||
- `GET /v1/legal/privacy`
|
||||
- `GET /v1/legal/terms`
|
||||
- 客户端新增协议接口封装 `client/src/services/legalApi.ts`
|
||||
- 客户端工程化:新增统一 HTTP 封装 `client/src/utils/http.ts`(baseURL/超时/JSON/统一错误),并将 `legalApi.ts` / `recoApi.ts` 接入
|
||||
- 客户端接入两处入口:`app/(splash)/splash.tsx`、`components/home/ProfileModal.tsx`
|
||||
- **变更文件清单**:
|
||||
- `server/app/api/v1/legal.py`
|
||||
- `server/app/core/config.py`
|
||||
- `server/app/legal_docs.py`
|
||||
- `server/app/main.py`
|
||||
- `server/env.example`
|
||||
- `server/tests/test_legal_links_unittest.py`
|
||||
- `client/src/services/legalApi.ts`
|
||||
- `client/src/services/__tests__/legalApi.test.ts`
|
||||
- `client/app/(splash)/splash.tsx`
|
||||
- `client/components/home/ProfileModal.tsx`
|
||||
- `spec_kit/Policy Links/spec.md`
|
||||
- `spec_kit/Policy Links/plan.md`
|
||||
- `spec_kit/Policy Links/tasks.md`
|
||||
|
||||
## Card UI
|
||||
|
||||
- **目标**:优化卡片页 UI 与交互,支持右上角主题切换与个人主页弹窗,并将喜欢/讨厌改为 icon + 动效
|
||||
|
||||
Reference in New Issue
Block a user