qzl
9cdfee1596
Merge pull request 'fix: update CREEM product IDs for production' ( #9 ) from dev into main
Build production Docker image / build-backend-image (push) Successful in 1m11s
Build production Docker image / deploy-production (push) Failing after 8s
2026-05-11 19:40:01 +08:00
zl-q
14f99d6dc4
fix: update CREEM product IDs for production environment
2026-05-11 19:39:38 +08:00
qzl
13b8e047c2
Merge pull request 'Merge dev into main: CREEM payment, performance optimization, deploy updates' ( #8 ) from dev into main
Build production Docker image / build-backend-image (push) Successful in 2m10s
Build production Docker image / deploy-production (push) Successful in 40s
2026-05-11 19:16:17 +08:00
zl-q
91c089a894
fix: resolve legal/about pages in production, update deploy docs
...
- Fix markdown file path resolution for SSR production builds
- Try multiple paths (public/legal, client/legal) for dev and prod
- Update deploy/README.md with frontend deployment instructions
- Document PM2, Nginx configuration, and port mapping
2026-05-11 19:09:35 +08:00
zl-q
dda8014428
fix: redirect root to /en/ instead of /zh/
2026-05-11 19:04:09 +08:00
zl-q
ec810a8c45
config: set default locale to English and update CREEM production URLs
...
- Change default locale from zh to en for international audience
- Update .env.example with production CREEM API URL
- Set SUCCESS_URL to meeyao.com/en/store
2026-05-11 18:51:18 +08:00
zl-q
f07e307e82
feat: integrate CREEM web payment for credits purchase
...
Replace abandoned iOS App Store route with CREEM Merchant of Record
payment integration for web-based credits purchase.
Backend changes:
- Add CreemClient for CREEM API communication
- Add CreemService for checkout creation and webhook handling
- Add creem_transactions table for payment tracking
- Fix webhook payload parsing (id, order.id, customer.id structure)
- Integrate with existing points ledger system
Frontend changes:
- Display dynamic prices from CREEM API
- Support decimal price formatting (e.g., $1.00)
- Add checkout flow with redirect to CREEM hosted page
2026-05-11 18:38:21 +08:00
ZL-Q
3ff33640f4
fix: infinite session creation loop, add sign image animation, align hexagram UI with Flutter
...
- Fix DivinationProcessingOverlay infinite re-render loop by using refs
for params/yaoStates/onError instead of direct effect dependencies
- Remove column headers from hexagram detail card (matching Flutter)
- Keep domain-specific terms (六神, 六亲, etc.) in Chinese for all locales
- Translate ganZhiInfo/wuXingWangShuai/ganZhiKongWang section titles to English
- Add sign image overlay animation on fresh divination result (scale + translate)
2026-05-10 21:37:29 +08:00
ZL-Q
982d10d37e
fix: about/legal pages read from markdown, remove unused about translations
...
- AboutPage now reads from public/legal/{locale}/about_us.md
- LegalPage no longer depends on about translations, uses local maps
- Fixed email in LegalPage from ann@xunmee.com to feedback@xunmee.com
- Removed ICP number and wrong email from utils.ts about section
- Removed unused about section from Translations interface and all locales
2026-05-10 20:51:47 +08:00
ZL-Q
20abe0be0c
perf: finish web performance pass
2026-05-10 20:29:42 +08:00
ZL-Q
1e4871e337
perf: optimize web data resources
2026-05-10 20:01:14 +08:00
ZL-Q
a9739cddce
chore(task): archive 05-10-fix-mobile-divination-tutorial-overlay
2026-05-10 15:22:14 +08:00
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
f2c3c795e7
Merge dev into main
...
Build production Docker image / build-backend-image (push) Successful in 52s
Build production Docker image / deploy-production (push) Successful in 41s
Security hardening: disable Swagger in prod, remove dead debug field
2026-04-30 11:48:04 +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
46394ffcdf
Merge dev into main
...
Build production Docker image / build-backend-image (push) Successful in 48s
Build production Docker image / deploy-production (push) Successful in 44s
Fix .env quoting for safe shell sourcing
2026-04-30 11:29:22 +08:00
qzl
388775e05f
fix: quote env values with spaces for safe shell sourcing
2026-04-30 11:29:10 +08:00
qzl
786acfe010
Merge dev into main: fix deployment secret handling
...
Build production Docker image / build-backend-image (push) Successful in 53s
Build production Docker image / deploy-production (push) Failing after 6s
Avoid logging multiline deploy secrets and document ECR cleanup permissions.
2026-04-30 11:20:21 +08:00
qzl
f5f27d0496
fix(deploy): avoid logging multiline secrets
2026-04-30 11:20:13 +08:00
qzl
2657a7a339
Merge dev into main: fix workflow checkout
...
Build production Docker image / build-backend-image (push) Failing after 51s
Build production Docker image / deploy-production (push) Has been skipped
Use self-hosted Gitea clone instead of external checkout action.
2026-04-30 11:17:15 +08:00
qzl
c2ba1442a3
fix(deploy): avoid external checkout action
2026-04-30 11:17:00 +08:00
qzl
7a84bb5d16
Merge dev into main: production deployment automation
...
Build production Docker image / build-backend-image (push) Waiting to run
Build production Docker image / deploy-production (push) Has been cancelled
Enable production rollout through Gitea Actions and include latest app configuration updates.
2026-04-30 11:08:37 +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
5da1cba851
Merge dev into main: include uv lock
...
Build production Docker image / build-backend-image (push) Failing after 35s
Track uv.lock so the production Docker workflow can build from a clean checkout.
2026-04-29 18:22:53 +08:00
qzl
b17862bff7
fix(deploy): include uv lock for Docker builds
2026-04-29 18:21:57 +08:00