bdefb708d3
fix: 修改runner标签
Deploy to Server / deploy (push) Failing after 0s
2026-01-27 18:04:10 +08:00
600342d8cf
test: 测试自动部署
Deploy to Server / deploy (push) Has been cancelled
2026-01-27 17:56:49 +08:00
821dfbe0f1
chore: 添加 gitea deploy workflow
Deploy to Server / deploy (push) Has been cancelled
2026-01-27 17:55:24 +08:00
842998893a
feat: 添加目标体重设置功能
...
- UserConfig 模型添加 target_weight 字段
- 新增 POST /api/config 端点用于更新用户配置
- 设置页面添加目标体重输入框及目标 BMI 自动计算
- BMI 分析使用用户设置的目标体重计算达成预估
- 修复测试 fixture 的 save_config 参数问题
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 17:39:24 +08:00
50c33451ef
docs: 更新 CODEMAPS 添加健康分析模块
...
- 添加 3 个新 API 端点
- 更新 app.py 行数统计 (5500+ → 9700+)
- 添加健康模块智能分析功能说明
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 16:49:30 +08:00
a279e7b343
docs: 更新 README 添加健康分析模块说明
...
- 添加 3 个新 API 端点文档
- 更新已完成功能列表
- 添加 2026-01-27 更新日志
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 16:47:06 +08:00
f120bc16f5
feat(ui): 睡眠页面添加健康评估与影响卡片
...
添加睡眠健康评估卡片和睡眠影响卡片,显示近7天睡眠状况分析和健康提示。
同时修改睡眠时长趋势图,根据睡眠时长自动着色数据点。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 16:32:44 +08:00
02d7abfa63
feat(ui): 饮食页面添加营养状况卡片与建议功能
...
添加今日营养状况卡片,显示热量、蛋白质、碳水、脂肪的摄入进度;
修改近7天摄入趋势图表,添加建议摄入参考线(虚线);
页面加载时调用营养建议API并展示晚餐建议。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 16:29:35 +08:00
36bbd909bf
feat(ui): 运动页面添加 BMI 健康分析卡片
...
在运动页面统计卡片区域下方添加 BMI 分析功能:
- 显示当前体重、BMI 值和健康状态
- 可视化 BMI 范围指示条 (偏瘦/正常/偏重/肥胖)
- 目标达成预估 (目标体重、目标BMI、距离目标、预计天数)
- 计算依据展示 (TDEE、摄入、运动卡路里)
- 数据不足时引导用户完善设置
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 16:27:05 +08:00
211c2c2c4e
feat(api): 添加睡眠评估端点 /api/sleep/assessment
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 16:22:55 +08:00
e1cef3ab4b
feat(api): 添加营养建议端点 /api/nutrition/recommendations
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 16:19:56 +08:00
a8c9c87540
feat(api): 添加 BMI 分析端点 /api/bmi/analysis
...
- 新增 /api/bmi/analysis API 端点,提供 BMI 分析数据
- 返回当前体重、BMI、BMI状态、目标体重、预估达成天数等
- 基于近30天饮食和运动数据计算每日净消耗
- 更新测试框架支持 MySQL 和认证
- 修复其他 API 端点的用户隔离问题
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 16:16:32 +08:00
295bc6e736
docs: 添加健康模块增强实现计划
...
包含 6 个任务的详细实现步骤:
- Task 1-3: 新增 BMI/营养/睡眠分析 API
- Task 4-6: 运动/饮食/睡眠页面 UI 增强
采用 TDD 方式,每个步骤包含完整代码和测试命令
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 16:05:04 +08:00
8031df1a71
docs: 添加健康模块增强设计方案
...
包含三个模块的功能增强设计:
- 运动模块:BMI 分析与目标达成预估
- 饮食模块:营养建议区间与配餐推荐
- 睡眠模块:睡眠预警与健康提示
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 16:00:38 +08:00
02426e0a59
feat: 首页仪表盘改造为深色科技风格 + Apple Health 步数同步
...
UI 改造:
- 首页采用深色科技风格 (Dark Tech)
- Tailwind CSS + Glass Morphism 毛玻璃效果
- 左侧边栏导航 (PC端) / 底部导航 (移动端)
- Material Symbols 图标 + Space Grotesk 字体
- Chart.js 深色主题适配
新功能:
- Apple Health 步数同步 API (/api/steps)
- 设置页面添加 iOS 快捷指令配置说明
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-26 16:57:13 +08:00
3b1f7fb416
feat: 添加饮食文字AI识别功能与代码文档
...
- 饮食页面新增"文字AI识别"按钮,支持输入文字描述后自动识别卡路里
- 修复 database.py 中 time 模块导入冲突问题
- 新增 CODEMAPS.md 代码结构文档
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-26 15:38:08 +08:00
ac8c95d1a9
chore(docker): 生产环境 MySQL 配置注释,便于后续外连时启用端口
2026-01-26 14:28:16 +08:00
0f11e8ad56
feat: 用户配置隔离与食物智能识别
...
1. Config 表用户隔离
- 添加 user_id 字段,复合主键 (user_id, key)
- 现有数据归属 ID=1 用户
- 所有 get_config/save_config 调用传入 user_id
2. 食物文字智能识别
- 本地数据库优先匹配(快速)
- 识别失败时自动调用通义千问 AI(准确)
- 有配置 API Key 才调用,否则返回本地结果
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-24 11:32:56 +08:00
afc6d2fb5e
fix: 添加 hash_password 导入修复注册接口
...
- 注册时使用 hash_password 但未导入该函数
- 导致 NameError: name 'hash_password' is not defined
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 23:11:54 +08:00
4614946c7a
fix: 修复邀请码注册时 _parse_datetime 类型处理问题
...
- MySQL 返回的 datetime 可能是 date 类型
- _parse_datetime 现在能正确处理 date 类型
- 修复注册接口 500 错误
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 23:07:46 +08:00
ac478e1600
修复认证问题:支持从 Cookie 读取 token
...
- 修复 require_user 和 require_admin 函数只从 Header 读取 token 的问题
- 新增 get_token_from_request 函数,优先从 Cookie 读取 token,其次从 Header 读取
- 更新所有认证相关函数以支持 Cookie 和 Header 两种认证方式
- 解决 /api/admin/api-keys 等接口返回未登录错误的问题
2026-01-23 22:49:53 +08:00
eb88d2638f
feat: API Keys 支持数据库存储和 Web 界面管理
...
- database.py: 新增 get_api_key/set_api_key/delete_api_key/get_all_api_keys 函数
- qwen.py/deepseek.py/analyzer.py: 改用 db.get_api_key() 读取配置
- app.py: 新增管理员 API 接口 (/api/admin/api-keys)
- settings 页面: 管理员可见的 API 密钥配置区域
API Key 优先级: 数据库 > 环境变量
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 22:33:50 +08:00
dba052bb5e
docs: API Keys 数据库存储设计文档
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 22:33:50 +08:00
cd27ecf7d0
fix: MySQL 连���池添加重试逻辑
...
- 最多重试 30 次,每次间隔 2 秒
- 解决 MySQL 容器启动慢导致的连接失败问题
- 添加 import time 模块
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 21:41:02 +08:00
4c22a137cf
refactor: 管理员账号存储在数据库,生产环境使用宿主机目录存储数据
...
- 管理员账号在数据库初始化时创建,不再从环境变量读取
- 默认账号: admin / admin123
- 首次启动时自动创建,请在登录后修改密码
- 移除 ADMIN_USERNAME 和 ADMIN_PASSWORD 环境变量
- 生产环境 MySQL 数据直接存储在宿主机 /opt/vitals/mysql_data
- 便于备份和恢复
- 更直观的数据管理
- 更新部署指南,添加 MySQL 数据目录创建和备份说明
- 更新 .env.example 和 README.md 反映新的配置方式
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 21:16:32 +08:00
18e0668941
docs: 更新 README 反映 MySQL 迁移和 H5 适配功能
...
- 更新快速启动说明,添加 MySQL 环境变量配置
- 更新环境变量表格,添加 MySQL 相关配置项
- 更新技术栈说明(SQLite → MySQL 8.0)
- 更新项目结构,添加迁移脚本说明
- 添加功能清单:MySQL 数据库支持、移动端 H5 适配
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 18:41:50 +08:00
733d737413
fix: MySQL 类型兼容性修复
...
- 添加 _parse_datetime, _parse_date, _parse_time 辅助函数
- 处理 MySQL 返回原生 datetime/date/time 类型而非字符串的情况
- 修改默认绑定地址为 0.0.0.0 以支持局域网访问
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 18:37:35 +08:00
5860dccd60
style: 报告页面移动端适配
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 18:37:35 +08:00
f9e586582f
style: 管理页面 H5 移动端适配
...
- 添加移动端 CSS: 隐藏桌面导航,响应式布局
- 表格改为卡片列表: 使用 data-label 属性显示字段名
- 按钮触摸目标: 最小 44px 高度
- 表单输入框: 48px 高度,font-size 16px
- 底部 Tab 导航: 包含更多菜单和管理入口
- Safe area 支持: 适配刘海屏设备
- 操作按钮组: 移动端水平排列
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 18:37:35 +08:00
00d93f132a
style: 设置页面移动端适配
2026-01-23 18:37:35 +08:00
3831ed6580
style: 阅读页面 H5 移动端适配增强
...
- 表单输入框: 增大到 48px 高度,font-size 16px 防止 iOS 缩放
- 按钮触摸目标: 最小 48px 高度
- 时长预设按钮: 44px 触摸目标
- 心情选择器: 48px 触摸目标
- 底部导航: 添加 safe-area-inset-bottom 支持
- 更多菜单: 触摸目标优化
- 模态框: 移动端边距和滚动优化
- 图表容器: 移动端布局优化
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 18:37:35 +08:00
35b481a1ca
style: 睡眠/体重/阅读页面移动端适配
...
- 睡眠页面: 响应式布局、表格转卡片
- 体重页面: 统计卡片优化、图表适配
- 阅读页面: 书籍网格双列/单列切换
- 三页均添加底部 Tab 导航
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 18:37:35 +08:00
b547564bef
style: 运动/饮食页面移动端适配
...
- 运动页面: 响应式网格、表格转卡片、FAB 位置调整
- 饮食页面: 日历紧凑布局、照片网格优化
- 两页均添加底部 Tab 导航
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 18:37:35 +08:00
18e70b5f03
config: 添加 MySQL Docker 配置
2026-01-23 18:37:35 +08:00
772f871fb6
feat: 添加 SQLite 到 MySQL 数据迁移脚本
2026-01-23 18:36:38 +08:00
a37cf93c67
style: 首页 Dashboard 移动端适配
...
- 添加响应式网格布局
- 卡片和图表移动端优化
- 添加底部 Tab 导航
- 管理入口根据用户权限显示
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 18:36:38 +08:00
fe99649f72
refactor: 移除 SQLite 特有代码,完成 MySQL 迁移
2026-01-23 18:36:38 +08:00
ef43b1bc57
refactor: 所有 SQL 查询改为 MySQL 语法
2026-01-23 18:36:38 +08:00
49abeaeff6
style: 登录/注册页面移动端适配
...
- 768px 断点响应式布局
- 输入框高度48px, font-size 16px 防止 iOS 缩放
- 按钮符合触摸标准
- 小屏幕进一步优化间距
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 18:36:38 +08:00
094aab5ba2
feat: 用户权限增强 - 非管理员仅能看到自己
...
- GET /api/users: 非管理员仅返回自己的用户信息
- GET /api/users/{id}: 非管理员只能查询自己,否则返回403
- 管理页面: 非管理员隐藏导航栏管理链接
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 18:36:38 +08:00
b8f55f97a6
refactor: init_db 改为 MySQL 建表语句
2026-01-23 18:36:38 +08:00
1664f88963
feat: 添加移动端 H5 基础样式和底部导航组件
...
- 添加 get_common_mobile_styles() 通用移动端 CSS
- 添加 get_mobile_nav_html() 底部 Tab 导航组件
- 支持触摸优化和安全区域适配
- 底部导航包含首页/运动/饮食/睡眠/更多菜单
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 18:36:38 +08:00
c44de8f52e
refactor: database.py 添加 MySQL 连接池管理
2026-01-23 18:36:38 +08:00
185ac8e40f
deps: 添加 mysql-connector-python 依赖
2026-01-23 18:36:38 +08:00
b8ff1f0ee9
docs: 添加详细实施计划
...
包含 4 个阶段 20+ 个任务:
- 阶段1: MySQL 数据库迁移 (7 tasks)
- 阶段2: 用户权限增强 (3 tasks)
- 阶段3: H5 移动端适配 (12 tasks)
- 阶段4: 测试验证 (2 tasks)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 18:36:38 +08:00
7713e7809f
docs: 添加 H5/MySQL/权限增强设计方案
...
- H5 移动端适配:响应式 CSS + 底部 Tab 导航
- MySQL 迁移:mysql-connector-python 裸 SQL
- 用户权限:非管理员仅能看到自己
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-23 18:36:38 +08:00
b2a590cbdf
feat: 管理员密码支持从环境变量同步
...
修改环境变量 ADMIN_PASSWORD 后重启容器即可生效,无需删除数据库
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-22 16:41:40 +08:00
93255e09a4
feat: evn.local提交
2026-01-22 16:18:59 +08:00
9f1feeb216
feat: 支持本地与生产环境分离配置
...
- 新增 .gitignore 忽略敏感配置文件
- 新增 .env.local 本地开发环境配置
- 新增 .env.production 生产环境配置
- 新增 docker-compose.prod.yml 生产环境覆盖配置
- 更新 docker-compose.yml 使用 env_file 方式读取配置
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-22 16:15:59 +08:00
5de6cfc9de
feat: 设置页面添加管理后台入口
...
- 在账户区域添加"进入管理后台"按钮(仅管理员可见)
- 使用 localStorage 缓存用户信息确保显示正确
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-22 15:17:09 +08:00