hailin
e76adcbe8d
.
2025-12-07 14:56:13 +00:00
hailin
39804aa981
fix(mobile-app): update share link domain to rwaapi.szaiai.com
...
Changed invite share URLs from rwa-durian.app to rwaapi.szaiai.com
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06 21:15:55 -08:00
hailin
6ff1868944
fix(mobile-app): improve app restart flow for incomplete wallet creation
...
When user closes app during wallet generation (before backup completion),
app now correctly navigates directly to backup mnemonic page on restart
instead of requiring extra button click on onboarding page.
Changes:
- AuthProvider: Add isAccountCreated, isWalletReady, userSerialNum, referralCode states
- AuthProvider: Enhanced checkAuthStatus() to detect partial account creation
- SplashPage: Add navigation priority for account-created-but-wallet-incomplete state
- SplashPage: Navigate directly to BackupMnemonicPage when account exists but wallet not ready
Navigation priority:
1. Wallet created + backed up → Main page (ranking)
2. Account created but wallet incomplete → Backup mnemonic page
3. First launch or unseen guide → Guide page
4. Otherwise → Onboarding page
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-06 20:41:36 -08:00
hailin
823fc5056e
feat(mobile-app): redesign wallet generation UI with overlay mask and countdown
...
- Replace full-page loading with overlay mask design
- Add 100-second countdown timer with circular progress indicator
- Show placeholder data (******) in mnemonic and address cards during loading
- Display "正在进行钱包的安全计算" message with security icon
- Implement error overlay with retry button
- Disable copy buttons and action buttons during loading state
- Maintain consistent UI layout between loading and ready states
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06 20:30:52 -08:00
hailin
37aab77e7a
feat(mobile-app): add detailed debug logging for account creation flow
...
Add comprehensive debugPrint logging with [Tag] prefixes:
- [AccountService]: API calls, storage operations, responses
- [OnboardingPage]: account status check, creation flow
- [BackupMnemonicPage]: wallet info loading, polling state
Logging includes:
- Request/response details with masked sensitive data
- Stack traces for error handling
- Polling count and timing for wallet generation
- User interaction tracking
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06 20:03:36 -08:00
hailin
20d82906f6
refactor(mobile-app): 重构账号创建流程,分离钱包获取逻辑
...
API 变更:
- POST /user/auto-create 快速返回 userSerialNum, username, avatarSvg
- GET /user/{userSerialNum}/wallet 异步获取钱包和助记词
AccountService:
- 移除 MPC share 本地加密逻辑
- 新增 getWalletInfo() 方法支持轮询获取钱包状态
- CreateAccountResponse 移除 userId,使用 userSerialNum
页面修改:
- onboarding_page: 适配新的创建账号响应
- backup_mnemonic_page: 进入时调用 API 获取钱包,支持 loading/error 状态
- verify_mnemonic_page: 字段从 serialNumber 改为 userSerialNum
- wallet_created_page: 同上
清理:
- 删除 mpc_share_service.dart
- 删除相关测试文件
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06 19:34:45 -08:00
hailin
17fd663fe3
refactor: improve auto-create API semantics and use real device ID
...
Frontend (account_service.dart):
- Use Android ID instead of random UUID for deviceId
- Add DeviceHardwareInfo class with full hardware details
- Remove provinceCode/cityCode from CreateAccountRequest
- Simplify to: deviceId (required), deviceName (optional JSON), inviterReferralCode (optional)
Backend (identity-service):
- Rename validateDeviceId() to checkDeviceNotRegistered() for clarity
- Rename generateNext() to generateNextUserSequence() for semantics
- Update error message: "该设备已创建过账户"
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06 18:05:11 -08:00
hailin
747e4ae8ef
refactor(mpc-system): migrate to party-driven architecture with PartyID-based routing
...
- Remove Address field from PartyEndpoint (parties connect to router themselves)
- Update K8s Discovery to only manage PartyID and Role labels
- Add Party registration and SessionEvent protobuf definitions
- Implement PartyRegistry and SessionEventBroadcaster domain logic
- Add RegisterParty and SubscribeSessionEvents gRPC handlers
- Prepare infrastructure for party-driven MPC coordination
This is the first phase of migrating from coordinator-driven to party-driven
architecture following international MPC system design patterns.
2025-12-05 08:11:28 -08:00
Developer
db8350b2f5
fix(identity-service): 更换 npm 镜像为华为云解决超时问题
...
- npmmirror CDN 超时 (EIDLETIMEOUT)
- 改用 mirrors.huaweicloud.com/repository/npm/
- 添加 disturl 配置加速 node 二进制下载
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 18:45:18 -08:00
Developer
f3d9b13dac
fix(mobile-app): 修正 API 地址为正确的生产环境地址
...
将 API 基础地址从 api.rwadurian.com 改为 rwaapi.szaiai.com,
以确保应用更新检测功能正常工作
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 08:46:11 -08:00
Developer
ad739a83f8
fix(mobile-app): 修复 API 请求路径缺少 /api/v1 前缀问题
...
问题原因:
- 原 ApiClient baseUrl 为 'https://rwaapi.szaiai.com '
- 请求路径为 '/user/auto-create'
- 实际请求: https://rwaapi.szaiai.com/user/auto-create (错误)
- 正确路径: https://rwaapi.szaiai.com/api/v1/user/auto-create
解决方案:
- 新增 AppConfig 配置管理类
- 支持多环境配置 (dev/staging/prod)
- apiBaseUrl 已包含 /api/v1 前缀
- 支持 --dart-define=ENV=dev 切换环境
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 08:41:37 -08:00
Developer
12ec5e6fc3
fix(mobile-upgrade): 添加解析失败时的友好提示
...
当 APK/IPA 解析失败时,显示黄色警告提示用户手动填写版本信息
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 08:17:02 -08:00
Developer
64332838de
fix(mobile-upgrade): 修复 platform 参数大小写问题
...
后端期望大写的 ANDROID/IOS,前端现在在 parsePackage 和 upload 时转换为大写
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 07:43:03 -08:00
Developer
f8607ce0b2
feat: 增强移动端版本管理功能
...
## admin-service
- 添加 APK/IPA 预解析 API (/api/v1/versions/parse)
- 添加断点续传下载控制器 (/api/v1/downloads/:filename)
- 配置 uploads volume 持久化存储
- 下载 URL 从 /uploads 改为 /downloads (支持 Range 请求)
## mobile-upgrade (前端)
- 上传文件后自动解析并填充版本信息
- 添加 ParsedPackageInfo 类型和 parsePackage API
## mobile-app (Flutter)
- DownloadManager 支持断点续传 (HTTP Range)
- 添加临时文件管理和清理功能
- 添加构建脚本自动增加版本号 (scripts/build.sh)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 06:57:26 -08:00
Developer
197fc02694
feat(mobile-upgrade): 添加自定义 favicon
...
- 新增蓝色背景白色 M 字母的 SVG favicon
- 更新 layout.tsx 引用新 favicon
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 02:42:11 -08:00
Developer
4e0033474f
fix(mobile-upgrade): 修正 API URL 为正确域名
...
将 API URL 从 api.rwadurian.com 改为 rwaapi.szaiai.com
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 00:22:29 -08:00
Developer
8cd21c2fd7
fix(mobile-upgrade): 修复 API URL 路径重复问题
...
移除 NEXT_PUBLIC_API_URL 末尾的 /api,避免请求路径变成 /api/api/v1/...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 00:19:03 -08:00
Developer
1d602b819a
feat(mobile-upgrade): 添加 Docker 和 Nginx 自动化部署配置
...
- 添加 Dockerfile 多阶段构建配置
- 添加 docker-compose.yml 容器编排
- 添加 nginx 配置(域名: update.szaiai.com)
- 添加 scripts 运维脚本(deploy/build/start/stop/restart/logs/status/clean/health)
- 添加健康检查 API 端点 /api/health
- 添加 .env.production 生产环境配置
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 23:33:11 -08:00
Developer
08485d361f
docs(mobile-upgrade): 添加完整技术文档
...
新增以下文档:
- ARCHITECTURE.md: Clean Architecture 分层架构详解
- API.md: API 端点和数据类型定义
- DEVELOPMENT.md: 开发环境配置和规范指南
- TESTING.md: 单元测试、集成测试、E2E测试方案
- DEPLOYMENT.md: Docker、PM2、Nginx 部署配置
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 22:46:42 -08:00
Developer
6db948099c
feat(mobile-upgrade): 添加移动应用升级管理Web前端
...
使用Clean Architecture架构实现移动应用版本管理Web前端:
- Domain层: 版本实体、Repository接口定义
- Infrastructure层: API客户端、Repository实现
- Application层: Zustand状态管理、React Hooks
- Presentation层: 版本列表、上传、编辑组件
技术栈: Next.js 14 + React + TypeScript + Zustand + Tailwind CSS
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 22:28:56 -08:00
Developer
17ff0d951e
fix: 修复 docker-compose.yml 中所有服务的健康检查
...
问题:
- docker-compose.yml 的 healthcheck 覆盖了 Dockerfile 的 HEALTHCHECK
- 使用 wget 而不是 curl
- 健康检查 URL 不正确,导致所有服务显示 unhealthy
修复:
1. 统一使用 curl -f 代替 wget
2. 修正所有服务的健康检查 URL:
- identity-service: /health → /api/v1/health
- wallet-service: /health → /api/v1/health
- backup-service: /health ✓ (保持不变)
- planting-service: /health → /api/v1/health
- referral-service: /health ✓ (保持不变)
- reward-service: /health ✓ (保持不变)
- mpc-service: /api/v1/health ✓ (已正确,改用 curl)
- leaderboard-service: /health → /api/health
- reporting-service: /health → /api/v1/health
- authorization-service: /health ✓ (保持不变,改用 curl)
3. 统一 timeout 为 3s (原来是 10s)
4. admin-web: 优化 timeout 为 3s
Docker HEALTHCHECK 机制:
- 在容器内部执行 curl localhost:PORT/path
- 不经过 Nginx 或外部网络
- 需要与服务实际端点匹配
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 09:36:38 -08:00
Developer
51d49a5fa9
fix(admin-web): 改用 curl 进行健康检查
...
- 将 wget 改为 curl (更通用)
- 简化健康检查命令: curl -f
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 09:07:22 -08:00
Developer
82aaa80906
fix(admin-web): 修复 Docker 健康检查失败问题
...
- 在 Dockerfile runner 阶段安装 wget
- Alpine 镜像默认不包含 wget,导致健康检查失败
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 09:06:30 -08:00
Developer
5a6d4f98c1
docs(admin-web): 添加项目 README 文档
...
- 完整的本地开发指南
- Docker 部署使用说明
- Git 工作流部署流程
- Nginx 配置引导
- 项目结构说明
- 常见问题解答
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 09:01:03 -08:00
Developer
e2047cc2c3
docs(admin-web): 添加 Nginx 完整安装脚本和文档
...
- install.sh: 从零开始的一键安装脚本 (系统更新、Nginx、Certbot、SSL)
- README.md: 详细的手动安装步骤和常用命令
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 08:33:03 -08:00
Developer
7fcedf7e08
feat(admin-web): 添加 Docker 管理脚本
...
- build.sh: 构建 Docker 镜像
- start.sh: 启动服务
- stop.sh: 停止服务
- restart.sh: 重启服务
- logs.sh: 查看实时日志
- status.sh: 查看服务状态
- health.sh: 健康检查
- clean.sh: 清理容器和镜像
- deploy.sh: 一键部署 (构建+启动)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 08:24:20 -08:00
Developer
40e0caaad5
feat(admin-web): 添加 Docker 一键部署方案
...
- 添加多阶段构建 Dockerfile,优化镜像大小
- 添加 docker-compose.yml 编排文件
- 添加 .dockerignore 优化构建上下文
- 添加 deploy.sh 一键部署脚本
- 添加健康检查 API (/api/health)
- 添加 Nginx 反向代理配置 (rwaadmin.szaiai.com)
- 添加 Let's Encrypt SSL 证书配置脚本
- 更新 next.config.ts 启用 standalone 输出模式
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 08:21:41 -08:00
Developer
3f612448ff
.
2025-12-01 20:48:31 -08:00
Developer
2d50ad32a9
docs: 添加系统部署指南和更新 API 配置
...
添加 DEPLOYMENT_GUIDE.md:
- 完整的 Nginx 反向代理配置 (rwaapi.szaiai.com)
- Docker Compose 生产环境部署配置
- 后端服务端口规划和 API 路由映射
- 前端 API 调用对照表
- SSL/HTTPS 配置说明
- 部署步骤和常见问题
更新前端 API 配置:
- api_endpoints.dart: 更新 baseUrl 为 https://rwaapi.szaiai.com
- api_endpoints.dart: 添加 /api/v1 前缀到所有端点
- api_endpoints.dart: 添加 telemetry 遥测端点
- api_client.dart: 更新默认 baseUrl 为生产环境地址
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 20:39:11 -08:00
Developer
769a33b9b0
.
2025-12-01 19:37:08 -08:00
Developer
00c47f22e0
.
2025-12-01 19:33:05 -08:00
Developer
9944f86174
.
2025-12-01 19:24:46 -08:00
Developer
6f2ff2d9b3
.
2025-12-01 19:19:00 -08:00
Developer
097396bb93
build: 配置 Android Release 签名和构建优化
...
- 添加 Release 签名配置 (build.gradle.kts)
- 配置 ProGuard 混淆规则 (proguard-rules.pro)
- 优化 Gradle 内存配置 (gradle.properties)
- 更新 .gitignore 排除签名密钥文件
签名密钥存放于 publish/ 目录 (已排除版本控制)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 18:37:27 -08:00
Developer
a966d71fa0
.
2025-11-30 06:44:57 -08:00
Developer
083db83c96
.
2025-11-29 19:22:42 -08:00
hailin
178a316957
>
2025-11-27 02:45:35 -08:00
hailin
be4ef7d1aa
feat: 添加APK在线升级和遥测统计模块
...
APK升级模块 (lib/core/updater/):
- 支持自建服务器和Google Play双渠道更新
- 版本检测、APK下载、SHA-256校验、安装
- 应用市场来源检测
- 强制更新和普通更新对话框
遥测模块 (lib/core/telemetry/):
- 设备信息采集 (品牌、型号、系统版本、屏幕等)
- 会话管理 (DAU日活统计)
- 心跳服务 (实时在线人数统计)
- 事件队列和批量上传
- 远程配置热更新
Android原生配置:
- MainActivity.kt Platform Channel实现
- FileProvider配置 (APK安装)
- 权限配置 (INTERNET, REQUEST_INSTALL_PACKAGES)
文档:
- docs/backend_api_guide.md 后端API开发指南
- docs/testing_guide.md 测试指南
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 02:44:01 -08:00
hailin
429173464c
feat: 添加5页向导页和首次打开检测功能
...
- 新增向导页组件(guide_page.dart),支持左右滑动浏览
- 实现首次打开检测逻辑,控制向导页显示
- 更新app图标为自定义logo
- 更新app名称为"榴莲皇后"
- 添加响应式尺寸扩展(.w/.h/.sp/.r)
- 优化底部导航栏响应式适配
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 00:39:29 -08:00
hailin
1296bd607c
fix: 修复登录表单验证错误显示重叠问题
...
- 重构登录表单结构,使用 fieldWrapper 包裹输入框和错误信息
- 修复验证错误消息与输入框重叠的布局问题
- 更新依赖版本
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 02:19:58 -08:00
hailin
ef5e9aec3f
.
2025-11-26 02:09:53 -08:00
hailin
f6ede89b18
PC Web App draft 0.1 Okay.
2025-11-26 01:58:34 -08:00
hailin
2915c4ccc5
Flutter v0.1 draft ok
2025-11-25 20:09:50 -08:00
hailin
79f8f4f4ee
.
2025-11-24 21:59:41 -08:00
hailin
ee55dc0def
.
2025-11-25 10:29:24 +08:00
hailin
0ec0159029
.
2025-11-25 10:17:37 +08:00