10 Commits
Author SHA1 Message Date
jif2.zhang d1f7b9ca7f style: 登录页顶部下移一个行高, 功能内页顶部上移半个行高; android 构建仅 src-tauri 变更触发
Docker Build and Push / build-image (push) Successful in 1m51s
2026-09-16 16:23:35 +08:00
jif2.zhang 9a02886553 feat(ota): 新增 OTA-only 热更通道; 修底部导航椭圆 FAB/点击高亮, 顶部内缩减半
Docker Build and Push / build-image (push) Successful in 1m54s
Android Build & Publish / build-android (push) Successful in 22m18s
2026-09-16 11:17:21 +08:00
jif2.zhang 5d9870fbb3 fix(android): APK 构建设置 VITE_API_BASE 为后端绝对地址
Android Build & Publish / build-android (push) Successful in 21m52s
Docker Build and Push / build-image (push) Successful in 1m50s
Tauri Android 页面源是 http://tauri.localhost, 相对 /api 会打到内嵌
资源服务而非后端。明文 HTTP 已由 android-signing.sh 放行 (usesCleartextTraffic=true)
2026-09-15 13:49:19 +08:00
jif2.zhang c1b630a7ef refactor: 数据层迁往服务端 (Express+DuckDB), APP 变瘦客户端只留缓存
Android Build & Publish / build-android (push) Failing after 6m55s
Docker Build and Push / build-image (push) Successful in 2m38s
- server: 新增 DuckDB 数据层 (db.js) 与鉴权 (auth.js: 验证码+token), 挂载 /api 业务路由
  (衣物/搭配/日历/统计/MCP), 错误统一中间件
- 前端 src/api/index.ts 全部业务调用改为 HTTP (Bearer token), 客户端不再持有数据库
- 删除 Rust 数据层 (db.rs/auth.rs/mcp.rs/models.rs), Cargo.toml 裁剪 duckdb/chrono 等依赖
- Dockerfile: 基镜像 alpine→slim (@duckdb/node-api glibc 预编译), DB 落 /app/data 卷
- docker-build.yml: 移除 prune --volumes, 挂具名卷 wardrobe-data 持久化
- Landing/Profile 文案改为云端同步口径; 退出登录调服务端会话销毁
2026-09-15 10:53:58 +08:00
jif2.zhang c0439d08f0 fix(ci): 设置 CXXFLAGS=-stdlib=libc++ 修复 duckdb android 编译失败
Android Build & Publish / build-android (push) Failing after 18m56s
Docker Build and Push / build-image (push) Has been cancelled
libduckdb-sys 0.10.2 build.rs 同时添加 -stdlib=libc++ 和 -stdlib=libstdc++
(flag_if_supported), 两者在 clang 上均被支持, 后者覆盖前者成为生效 stdlib.
NDK 不含 libstdc++ 头文件, 导致 fatal error: 'string' file not found.

cc 1.4.5 在 compile_object 最后追加 CXXFLAGS 环境变量值 (lib.rs:2191),
故设置 CXXFLAGS=-stdlib=libc++ 能确保 libc++ 为最终生效 stdlib.
2026-09-14 14:25:21 +08:00
jif2.zhang 2167a7a10b fix(ci): 替换需鉴权的 mise action 为 setup-node+rustup, 修复 android CI 秒失败
Android Build & Publish / build-android (push) Failing after 15m21s
Docker Build and Push / build-image (push) Successful in 2m25s
- gitea.com/actions/mise 不存在/需要鉴权, 克隆即 Unauthorized, 导致 job 02:05 秒失败
- 改为 gitea.com/actions/setup-node@v4 + 手动 rustup 安装
- Ensure SDK/NDK 步骤加固: 预装 SDK 复用 + 权限兜底 + 按需安装
- Rust 缓存路径改为 ~/.cargo + ~/.rustup
- APK 固定上传到 data/android/wardrobe.apk
2026-09-14 10:44:36 +08:00
jif2.zhang fc279c20ff fix(web): 下载模块上移; 修复按钮遮挡版本文字与 APK 为空
Android Build & Publish / build-android (push) Failing after 6s
Docker Build and Push / build-image (push) Successful in 2m9s
- Landing: 下载模块移到 hero 之后 (特色/统计之前)
- 按钮 display:inline-block + width:auto + margin-bottom, 不再全宽压住版本文字
- android-build.yml: 配置中心 key 改用后缀匹配 (r2/CF_API_TOKEN),
  此前按精确名 CF_API_TOKEN 匹配导致 fetch 步骤报缺密钥 → android 构建从未跑,
  桶里没有任何 widget/ 对象, APK 下载 404/为空
2026-09-14 10:05:11 +08:00
jif2.zhang 47db85d01d fix(ci): OTA 私钥改为写文件签名, 修正配置中心存储的坏密钥
Android Build & Publish / build-android (push) Failing after 5s
Docker Build and Push / build-image (push) Successful in 3m59s
- 配置中心原 MINISIGN_PRIVATE_KEY 缺首行 untrusted comment (只含 base64),
  minisign 报 'Error while loading the secret key file'
- 已删除坏条目 (cfg-mtwmbmkd-bbiihv), 保留正确完整值 (cfg-mtwr5c2m-99r5fh)
- docker-build.yml / ota-build.yml 不再用 GITHUB_ENV 多行 heredoc,
  改为把私钥写入 ota-package/hotswap.key, build-ota.mjs --key 显式指定
- 本地全链路验证: 配置中心拉取 → 写文件 → 签名 → 用 tauri.conf.json 公钥验签通过
2026-09-11 17:29:31 +08:00
jif2.zhang 84fb01b8a3 feat: 自动部署 + android 每次提交触发
Android Build & Publish / build-android (push) Failing after 5s
Docker Build and Push / build-image (push) Failing after 4m32s
- docker-build.yml: main 分支推送 → 构建 OTA 包 → Docker 镜像 → :3002 自动部署
- Dockerfile: node:22-alpine, dist + server + ota-package, healthcheck
- android-build.yml: 触发改为 on push (所有分支), 每次提交都构建
- ota-package/README.md 占位, 本地 docker build 不报错
- .gitignore / .dockerignore 调整
2026-09-11 17:12:58 +08:00
jif2.zhang 38b5e3190a init: Wardrobe 衣物管理系统 - 项目首页、OTA 升级、Android CI/CD
- 响应式项目首页 (Landing, 含 R2 APK 下载) + 路由 /home 调整
- OTA 升级: tauri-plugin-hotswap (lib.rs/main.rs 拆分, 客户端热替换)
- OTA 服务端 (check/bundle/manifest-web) + build-ota/genkey/upload 脚本
- 密钥/凭据统一存配置中心 (signing + ota + cloudflare 分组)
- Android CI (android-* 分支) + OTA CI (手动触发), 产物上传 R2
- 修复 tsc/构建阻塞问题
2026-09-11 15:46:42 +08:00