Commit Graph

127 Commits

Author SHA1 Message Date
ZL-Q 627454971c fix: improve web auth refresh and mobile tutorials 2026-05-10 15:22:08 +08:00
ZL-Q 3f0942329d chore: 归档剩余任务到 archive/2026-05 2026-05-10 14:55:44 +08:00
ZL-Q 323a04206b chore: 归档任务 05-10-auto-divination-page-rewrite
- 更新 AGENTS.md
- 添加 pnpm workspace 配置
- 归档任务文件
2026-05-10 14:54:46 +08:00
ZL-Q 1fe17b03df feat(web): 重写自动起卦页面并修复数据解析
主要更改:
- 重写 AutoDivinationPage 与 ManualDivinationPage 设计一致
  - 每爻单独摇卦(3秒/爻)
  - 完整教程系统(首次进入自动触发)
  - 确认弹窗显示积分信息
  - 统一时间选择组件样式
  - 移除返回按钮

- ManualDivinationPage 添加确认弹窗
  - 点击开始解卦显示积分确认
  - 添加中英文翻译

- 修复干支信息和空亡信息解析
  - 完善 HistoryAgentOutput 类型定义
  - 重写 historyMessageToResultData 正确解析嵌套 ganzhi 对象
  - 修复 DivinationProcessingOverlay SSE 数据解析

- 统一历史列表图标
  - 添加 hexagram 图标(六爻卦象抽象)
  - Dashboard 和 HistoryListPage 使用相同图标

- 修复 DivinationResultPage 追问导航 threadId
2026-05-10 14:53:43 +08:00
ZL-Q dab3c766f2 chore(task): archive 05-10-web-history-list-page 2026-05-10 13:59:36 +08:00
ZL-Q efe48f2068 feat(web): 历史解卦列表、结果页与追问功能
- 合并 DivinationResultPage 和 HistoryResultPage 为统一结果页
- 重写 HistoryFollowUpPage:API 加载历史消息、SSE 流式追问、配额管理
- 追问免费且限一次,输入框 UI 对齐设计稿(圆角容器+配额徽章+圆形发送按钮)
- 结果页追问状态根据线程消息数动态判断
- 历史列表筛选改为 9 类独立类型
- 提取 historyMessageToResultData 为共享函数,新增 enqueueFollowUpRun API
- 新增 auto_awesome/search/arrow_upward 图标
- 新增三语言 [id].astro、[id]/followup.astro、divination/result.astro 页面
2026-05-10 13:59:04 +08:00
ZL-Q 654e5ce188 chore(task): archive 05-09-fix-divination-cost-hardcode-and-coin-animation 2026-05-09 23:36:59 +08:00
ZL-Q f695dd86e9 fix(web): 修复手动起卦教程、硬币动画与积分显示
- 修复硬币翻转动画:从 @keyframes 改为 CSS transition 实现双向动画
- 修复教程自动显示:将 setTutorialChecked 移入 setTimeout 回调,
  避免 useEffect cleanup 提前清除 timer 导致 setGuideStep 不执行
- 添加 AppShell UserSettingsContext 共享 userProfile
- 实现教程结束后调用 updateUserSettings 标记 manual_divination_shown
- 添加点击已确认爻进行编辑的功能 (editingIndex 状态)
- 确认爻后不再重置硬币状态
- 积分显示从硬编码改为读取 API 返回值
- 手机端教程使用 absolute 定位替代 fixed 避免滚动偏移
- 添加 isMobile 响应式状态追踪窗口大小变化
2026-05-09 23:35:53 +08:00
ZL-Q 0e0daf4f5a chore(task): archive 05-09-manual-divination-page-design-alignment 2026-05-09 21:49:09 +08:00
ZL-Q e31d88e788 fix(web): 对齐手动起卦页面六爻显示与设计稿
- 老阳显示 ○ 符号,老阴显示 × 符号
- 未确认的爻显示灰色线,确认后显示紫色线
- 移除"待录入"/"老阴/少阳"等文字,改用符号显示
- 移除硬币选择区域的结果显示
2026-05-09 21:47:51 +08:00
ZL-Q d84599adca chore(task): archive 05-09-settings-page-interaction-optimization 2026-05-09 21:41:48 +08:00
ZL-Q a1b4418d55 feat(web): 优化设置页面交互与语言同步
- 二级页面返回按钮导航到设置页而非路由栈上一页
- 通用设置开关等待后端响应后再更新 UI,失败时显示 toast
- 删除用户名/邮箱的硬编码默认值,使用 auth token 邮箱作为 fallback
- AppShell 侧边栏显示真实头像和用户名
- 页面加载时检查 URL 语言与用户偏好是否一致,不一致则重定向
2026-05-09 21:32:51 +08:00
zl-q 1d5efb46e7 chore: clean up stale task files and update ManualDivinationPage 2026-05-09 18:24:35 +08:00
zl-q 1fbb07f692 feat(web): add settings sub-pages and connect to backend APIs
- Add GeneralSettingsPage for language, privacy, and notification settings
- Add FeedbackPage for user feedback submission with image upload
- Connect settings to backend PATCH /users/me/settings API
- Implement language preference sync between frontend and backend
- Update login flow to pass language preference and redirect based on user settings
- Add Astro entry pages for /settings/general and /settings/feedback routes
- Update sidebar navigation: language button links to general settings
- Fix account data card to link to profile page
- Remove "deletion" text from account data description
2026-05-09 18:23:21 +08:00
zl-q 5aa46d3311 feat(web): add authenticated app shell 2026-05-09 16:00:29 +08:00
zl-q c12320cb79 feat(web): rebuild web with Astro 6 + React 19 + Tailwind 4
Replace static HTML website with Astro SSG framework:
- Astro 6 + React 19 (client islands) + Tailwind CSS 4 + shadcn/ui
- i18n: zh/zh_Hant/en with URL prefix routing
- Pages: Landing, Features, Pricing, About, Privacy, Terms (3 locales)
- Responsive full-width layout with scroll reveal animations
- Cyber gradient theme with particle effects inspired by Kimi
- Features page: alternating layout with hexagram illustrations
- Legal pages: markdown rendering with side info card
- Language switcher preserves current page path
- Assets shared via symlinks to web/design/assets/ (no duplication)

Tech decisions documented in .trellis/spec/web/index.md
Task: .trellis/tasks/05-08-web-astro-react-tailwind-shadcn-ui
2026-05-09 12:11:10 +08:00
zl-q 04b493ed09 chore: migrate from opencode to trellis 0.5.0-rc.6
- Remove legacy .opencode/ directory and configuration
- Update .trellis/ to v0.5.0-rc.6 structure
- Refactor scripts: modularize common/, remove multi_agent/
- Add new common modules: git.py, io.py, log.py, types.py, etc.
- Update workflow.md and AGENTS.md
- Archive completed migration tasks
2026-05-06 14:29:25 +08:00
qzl 4e234be647 chore(ios): 添加出口合规声明并包含 Xcode 共享配置 2026-04-30 15:45:20 +08:00
qzl 99f053a5ff chore(trellis): archive 04-30-product-website task 2026-04-30 14:49:14 +08:00
qzl 1519c782c7 feat(web): add product website with i18n and privacy policy
Static HTML product site for MeeYao with violet brand theme.
Supports EN/简中/繁體 via client-side i18n with localStorage persistence.
Includes index.html (landing page) and privacy.html (App Store compliance).
Hosted on meeyao.com, deployed to ~/deploy/web on EC2.
2026-04-30 14:49:14 +08:00
ZL-Q 1893fcdd4f chore: exclude Xcode workspace and user data from git 2026-04-30 13:32:55 +08:00
ZL-Q e17815ecea feat(ios): track project.pbxproj for build settings and file references
Update .gitignore to only exclude xcuserdata instead of entire
Runner.xcodeproj directory, ensuring pbxproj is version-controlled.
2026-04-30 13:29:27 +08:00
ZL-Q 52f2123610 feat(ios): prepare App Store release v1.0.0
- Add PrivacyInfo.xcprivacy for Apple privacy manifest requirement
- Remove debug permissions (NSLocalNetworkUsageDescription, NSBonjourServices)
- Replace launch image with custom branding
- Update StoreKit config with real Apple ID and team ID
- Remove placeholder disclaimer from login screen, fix checkbox alignment
- Add ExportOptions.plist for IPA export
2026-04-30 13:28:35 +08:00
qzl 6432c24e20 fix(security): disable Swagger in prod, remove dead debug field, harden env config 2026-04-30 11:47:48 +08:00
qzl 388775e05f fix: quote env values with spaces for safe shell sourcing 2026-04-30 11:29:10 +08:00
qzl f5f27d0496 fix(deploy): avoid logging multiline secrets 2026-04-30 11:20:13 +08:00
qzl c2ba1442a3 fix(deploy): avoid external checkout action 2026-04-30 11:17:00 +08:00
qzl 98f4a8d07a fix: update production app configuration 2026-04-30 11:07:57 +08:00
qzl 79d5d0638a chore(deploy): automate production rollout 2026-04-30 11:02:37 +08:00
ZL-Q 688c091770 docs: 统一应用名称为觅爻 2026-04-29 21:31:27 +08:00
ZL-Q 203cdd9330 fix(deploy): reduce backend worker footprint 2026-04-29 21:28:21 +08:00
qzl b17862bff7 fix(deploy): include uv lock for Docker builds 2026-04-29 18:21:57 +08:00
qzl fb163cfeab chore(deploy): add backend ECR deployment flow 2026-04-29 18:04:25 +08:00
qzl 59760416e6 chore: record journal 2026-04-29 14:28:16 +08:00
qzl 58cbb8d84f chore(task): archive 04-28-fix-ai-english-output 2026-04-29 14:27:54 +08:00
qzl 16cb47e75a feat: 新增追问模式和iOS本地化,重构后端输出模型 2026-04-29 14:26:15 +08:00
ZL-Q f497afbff2 feat: 实现AI拒答机制和语言控制优化
- 添加 RunStatus.REFUSED 状态,AI可明确表达拒答意图
- 优化 System Prompt 使用视觉强调提高AI对拒答规则的遵守
- User Prompt 添加 SCOPE CHECK 和语言约束
- Worker Rules 添加多语言版本角色扮演规则
- Runner 传递 language 参数到 worker stage
- json_finalize 添加语言约束参数
- 更新单元测试匹配新的 prompt 结构
2026-04-29 01:38:59 +08:00
ZL-Q adb2b3bcc3 chore: 整合 migration 文件并优化配置
- 整合 18 个分散的 migration 文件为 5 个模块化文件
- settings.py 支持 .env.local 覆盖 .env
- 移除 user schema 中未使用的 country 字段正则
- 更新 profile protocol 文档移除 country 字段
- pyproject.toml 添加 ruff 到 dev 依赖
- 简化 integration test conftest 邮箱 fixture
2026-04-29 00:37:45 +08:00
qzl dab47f0cb3 chore: 优化本地开发环境配置
- 添加 .env.local 支持,app.sh 和 dev-migrate.sh 自动覆盖
- Docker Compose 使用 profiles 区分 dev/prod 环境
- 改进认证 dev session 判断逻辑,使用 test account 配置
- 修复 CoinPackageCard 重复代码问题
- 清理 opencode 配置,移除敏感信息
- 新增 infra/docker/README.md 文档
- 修复 ruff/pyright/flutter lint 错误
- 更新测试用例移除已删除的 country 字段
2026-04-28 18:49:38 +08:00
ZL-Q 86062d5e78 fix: 修复 packages 接口访问不存在字段导致的运行时错误
- 移除 router 中对 result.region、result.currency、pkg.price 的访问
- 修正 pkg.type.value 为 pkg.type (type 是 Literal 不是 Enum)
- 更新协议文档以反映实际实现
- 新增 Apple IAP 协议文档
- 标记未使用的错误码为 RESERVED
2026-04-28 17:31:24 +08:00
ZL-Q 41ade24bcf chore: record journal 2026-04-28 17:23:46 +08:00
ZL-Q dd48d1d59d chore: 更新主题、反馈页面和测试用例
- 更新 App 主题配置
- 优化反馈页面
- 更新认证和通知测试用例
2026-04-28 17:23:03 +08:00
ZL-Q 85023a668b refactor(divination): 优化占卜界面和组件
- 更新占卜处理和结果页面
- 优化占卜共享组件
2026-04-28 17:22:47 +08:00
ZL-Q 295dbc09ab feat(payment): 优化套餐配置和支付服务
- 简化套餐配置结构,删除冗余的 default.yaml 和 us.yaml
- 优化 Apple IAP 服务和验证逻辑
- 更新套餐数据模型和协议文档
- 添加支付相关测试用例
2026-04-28 17:21:14 +08:00
ZL-Q a940f2ea47 feat(notification): 通知标题和正文支持多语言
- 通知静态配置支持 title/body i18n
- 前端通知列表和详情页展示本地化内容
- 新增数据库迁移脚本
- 更新通知协议文档
2026-04-28 17:20:17 +08:00
ZL-Q b9617ae152 refactor(settings): 统一语言设置,合并 interface_language 和 ai_language
- 后端 Schema 将 interface_language 和 ai_language 合并为 language
- 前端设置界面只保留一个语言选项
- AI 回复语言统一使用 language 设置
- 更新协议文档
- 新增数据库迁移脚本
2026-04-28 17:19:47 +08:00
ZL-Q 940c67e642 feat(points): 实现积分流水列表功能
- 后端新增 GET /api/v1/points/ledger 接口
- 前端新增积分流水列表页面
- 积分中心添加「查看流水」入口
- 重命名 AccountDeleteScreen 为 AccountDataScreen
- 流水列表支持分页加载和空状态展示
2026-04-28 17:19:08 +08:00
ZL-Q a83001de0d feat(locale): 实现 App 启动时语言和时区自动设置
- 新增系统语言/时区读取工具函数
- SessionStore 扩展支持时区存储
- 启动流程自动检测并保存系统语言/时区
- 注册时传递语言/时区到后端
- 登录后从服务器同步语言/时区
2026-04-28 17:18:16 +08:00
ZL-Q 14752cdcfa chore(task): archive 04-27-feat-ios-apple-pay 2026-04-28 17:17:40 +08:00
ZL-Q c7a75a6445 chore(task): archive 04-28-refactor-unify-language 2026-04-28 17:17:39 +08:00