-
e911a7c1f0
feat(garmin): 绑定表单也能强制重试了,之前只有同步页有
main
ericwyuan
2026-09-13 07:31:43 +08:00
-
db7f182030
fix(garmin): 退出账号会把邮箱和令牌一起永久删掉,SSO 账号无处补救
ericwyuan
2026-09-13 07:20:52 +08:00
-
4331a07462
docs: docs/ 目录同步甲骨文部署事实(上一提交漏加)
ericwyuan
2026-09-12 23:53:26 +08:00
-
9d6ebbe422
ops: 生产从 NAS 整体迁移到甲骨文云主机
ericwyuan
2026-09-12 23:53:15 +08:00
-
74f2721401
fix(deploy): S99garmin.sh 丢了可执行位,重启两天没人发现服务已经死了
ericwyuan
2026-09-08 07:27:22 +08:00
-
12f8928d88
docs(CLAUDE): 沉淀 Garmin 限流的真相——出在登录端点,且窗口内每试一次延长一次
ericwyuan
2026-09-04 06:21:41 +08:00
-
1c80b16325
fix(garmin): 重新绑定走的是同一个被封的登录接口,也得拦住
ericwyuan
2026-09-04 06:20:05 +08:00
-
fd5e3363fd
fix(garmin): 登录端点的 429 在封锁期内再试会延长封锁,唯独这一处要停手
ericwyuan
2026-09-04 06:13:52 +08:00
-
682936b0b6
fix(garmin): 刷新出来的令牌从来没写回库,于是每次连接都重换一次
ericwyuan
2026-09-03 23:24:48 +08:00
-
57c236ba16
fix: 连接阶段真实 429 以 rate_limited 状态呈现,而非泛化 error
ericwyuan
2026-09-03 07:18:14 +08:00
-
e0e7b3cf53
fix: 本地限流估算不再拦截同步——一律真实请求 Garmin,仅真实 429 记录冷却并退避
ericwyuan
2026-09-03 07:06:12 +08:00
-
7e8e376a6c
docs: sync_history 文档一致性——CLAUDE.md 沉淀 MariaDB trigger 保留字坑,ARCHITECTURE.md 表清单 20→21 张并补数据流
ericwyuan
2026-09-02 20:45:34 +08:00
-
5e6fc01f76
feat(sync-history): 新增同步结果查询(每次自动/手动/立即同步的记录)
ericwyuan
2026-09-02 20:38:48 +08:00
-
26ff853f0b
docs(CLAUDE): refill_backlog 1064 已修(
617c832),移除已知问题并沉淀 MariaDB CAST TEXT 坑
ericwyuan
2026-09-02 20:20:08 +08:00
-
617c8325a6
fix(analysis): refill_backlog 活动查询去掉 CAST(... AS TEXT)
ericwyuan
2026-09-02 20:18:40 +08:00
-
224144915c
fix(sync): 限流拦截不再把'上次同步'刷成现在 + 设置页新增立即同步按钮
ericwyuan
2026-09-02 20:14:11 +08:00
-
2d9a2be185
docs: 文档/配置/测试同步 NAS :8124 生产现状,清除 Node.js 与甲骨文残留
ericwyuan
2026-09-02 19:34:32 +08:00
-
68363957ec
fix(ui): Copilot 浮窗按钮被 F7 全局 width:100% 撑满,显式覆盖为 width:auto
ericwyuan
2026-09-02 19:34:24 +08:00
-
bc91f328c9
docs: 记录 deploy.sh 修复前端构建复制
ericwyuan
2026-09-01 19:00:58 +08:00
-
317cb4996d
fix(deploy): 构建前端后复制到 backend/static/,避免部署旧版
ericwyuan
2026-09-01 19:00:42 +08:00
-
dd4105eb36
docs: 更新进度,记录每日/运动详情持续后台排队功能
ericwyuan
2026-09-01 18:15:59 +08:00
-
7fd4106b0a
feat(ai): 每日和运动详情在后台持续排队生成,不限量
ericwyuan
2026-09-01 18:15:26 +08:00
-
05f55e695b
feat(ai): 设置里加「AI 生成队列」,看得见后台在算什么
ericwyuan
2026-09-01 16:02:05 +08:00
-
a2d6a5c57f
fix(ai): 队列会把共用的网关打到 502,加并发上限和间隔
ericwyuan
2026-09-01 15:46:42 +08:00
-
2488956f36
fix(ai): 折叠态只显示一句话,那句话得说清是哪个指标
ericwyuan
2026-09-01 15:41:28 +08:00
-
6dd070ec9b
fix(ai): subject 里塞了行数,每轮询一次就新建一个任务
ericwyuan
2026-09-01 15:33:49 +08:00
-
241ae0d6a3
feat(ai): 每个数据页面都有 AI 解读,靠一条带优先级的生产者/消费者队列
ericwyuan
2026-09-01 15:17:17 +08:00
-
984a06a098
fix(deploy): deploy/ 自己没跟着上机,改它等于没改
ericwyuan
2026-09-01 14:34:59 +08:00
-
14b6bbecb4
fix(deploy): 群晖没有 pgrep,那三处「守卫」一直是空转
ericwyuan
2026-09-01 14:34:27 +08:00
-
570d1590eb
fix(router): 深链接全被塞进「今日」,点底部标签页显示的是别人的内容
ericwyuan
2026-09-01 14:31:34 +08:00
-
f6687d2b5d
fix(deploy): push.sh 报「部署成功」,但跑的还是旧代码
ericwyuan
2026-09-01 14:11:17 +08:00
-
c57c930949
feat(ai): AI 教练 —— 晨间简报、运动处方、趋势归因与 Copilot
ericwyuan
2026-09-01 13:57:35 +08:00
-
a746327560
fix(ui): 奖励卡片被 Framework7 的 .badge 压成灰色小药丸
ericwyuan
2026-09-01 09:34:53 +08:00
-
92ea33b800
feat(sync): 全部历史真的是全部,不再截断在两年
ericwyuan
2026-09-01 09:30:03 +08:00
-
526ece7d14
refactor(sync): 手动同步与自动同步彻底分开
ericwyuan
2026-09-01 09:20:52 +08:00
-
4d55fb4776
chore(deploy): 别把 macOS 的 xattr 塞进 tar,群晖读不懂只会刷警告
ericwyuan
2026-09-01 09:09:21 +08:00
-
1c48435b9d
chore(deploy): NAS 的 ssh 端口是 2222
ericwyuan
2026-09-01 09:05:35 +08:00
-
41b7ae82e4
fix(sync): 「全部历史」真的拉全部历史,自动同步不再每次静默失败
ericwyuan
2026-09-01 08:11:24 +08:00
-
15fba8c25c
feat: NAS 部署 + auth-hub 认证 + 同步逻辑修复
ericwyuan
2026-09-01 07:39:09 +08:00
-
9503fca370
feat(auth): 接入 auth-hub 统一登录,网页登录与 Garmin 同步彻底分离
ericwyuan
2026-08-31 23:12:17 +08:00
-
7e51223eb9
fix(rate-limit): _is_rate_limited 识别 RetryError 的 429 形态,登录 429 真正触发自动退避
ericwyuan
2026-08-29 10:00:30 +08:00
-
30ae431ed9
fix(rate-limit): 退避 24h 且守卫以 DB 为准,终结限流死循环
ericwyuan
2026-08-29 09:45:49 +08:00
-
ae126f90d4
fix(rate-limit): 退避延长至 6h 且登录路径同样遵守,打破 Garmin 限流死循环
ericwyuan
2026-08-28 17:18:37 +08:00
-
bec45414a7
feat(garmin): 增加「退出 Garmin 账号」功能,删除已保存令牌以便重新登录
ericwyuan
2026-08-28 15:13:32 +08:00
-
11869c6a8d
fix(sync): 限流退避持久化到 DB,调度器与手动同步均尊重退避期
ericwyuan
2026-08-28 14:54:10 +08:00
-
a4bedc263f
fix(sync): 限流检测漏掉了它真实的样子
ericwyuan
2026-08-28 14:27:15 +08:00
-
042c4d52be
fix(sync): 被 Garmin 限流时说人话,并停止把限流越撞越深
ericwyuan
2026-08-28 14:20:43 +08:00
-
ac99c1342d
docs: 迁移收尾——部署信息同步到 Oracle 新机 129.146.26.249
ericwyuan
2026-08-25 23:59:47 +08:00
-
e7c336b9df
fix(db): 数据库晚一步启动就会让服务永久挂掉
ericwyuan
2026-08-25 14:23:07 +08:00
-
d2d6143ed6
fix(ui): 切换日期后数字不更新,卡片显示的是前一天的数据
ericwyuan
2026-08-24 09:33:22 +08:00
-
564aaef6c1
fix(auth): 登录页不停刷新、无法输入
ericwyuan
2026-08-24 09:08:02 +08:00
-
6ad87115ab
fix: 返回键失效的根因 + 同步页重做 + 连接池会永久阻塞线程
ericwyuan
2026-08-24 08:41:48 +08:00
-
67a7c4b87e
fix(ui): 自动同步开关不可点、返回键热区过小、路由卡死
ericwyuan
2026-08-24 07:32:35 +08:00
-
32588085a1
perf: 今日页首屏 394KB/2.0s → 51.5KB/0.82s
ericwyuan
2026-08-24 04:34:32 +08:00
-
283d530f82
fix(deploy): 启动脚本等端口真正释放,并确认服务可用后才报成功
ericwyuan
2026-08-24 04:23:05 +08:00
-
f1319a6171
feat: 补齐 Garmin 未同步的数据,并各自配上界面
ericwyuan
2026-08-24 04:16:33 +08:00
-
34940cc387
feat(sync): 运动详情改为同步入库,详情页只读本地
ericwyuan
2026-08-24 04:03:49 +08:00
-
fa865ca8a6
fix: 实机验证发现的七个缺陷
ericwyuan
2026-08-24 01:16:44 +08:00
-
8430ff335e
feat(ui): 今日页日期切换 + 卡片可点 + 路由切换进度条
ericwyuan
2026-08-24 00:49:38 +08:00
-
0c7fecc124
feat(ui): 设置页重做 + 同步页简化 + 评分依据页
ericwyuan
2026-08-24 00:44:07 +08:00
-
b0e0799a97
feat(ui): 卡片可点进详情 + 身体年龄 + 运动详情 + 指标选择弹窗
ericwyuan
2026-08-24 00:39:33 +08:00
-
6b4c5375dc
docs: 建立需求文档,记录全部需求与进度
ericwyuan
2026-08-24 00:28:48 +08:00
-
c70e7ced80
feat(api): 个人资料/单位/同步偏好 + 运动详情 + 身体年龄
ericwyuan
2026-08-24 00:26:26 +08:00
-
12ef5ca06b
feat(sync): 每小时后台自动同步 + 手动拉取最新接口
ericwyuan
2026-08-24 00:17:04 +08:00
-
85c00759f8
fix(ui): 三处实机问题 + hero 改为三圆环
ericwyuan
2026-08-24 00:01:27 +08:00
-
fd9b610810
[阶段10.1] Tab 改为 今日/健康/趋势/运动/设置
ericwyuan
2026-08-23 23:52:18 +08:00
-
7ab150537d
[阶段10] 前端以 Framework7 重建,采用 iOS 原生形态
ericwyuan
2026-08-23 23:38:21 +08:00
-
757afdc941
[阶段9] 界面打磨:hero 圆环、sparkline、骨架屏、动效
ericwyuan
2026-08-23 22:48:09 +08:00
-
bfda1cd017
[阶段8] 新增每日数据模块;趋势改为全指标并列 + 周期聚合
ericwyuan
2026-08-23 22:33:59 +08:00
-
9e5e77755e
[阶段7.2] 隐藏 AI 模块;剩余页面迁移到设计令牌
ericwyuan
2026-08-23 22:05:28 +08:00
-
a17d6dde9b
睡眠页默认窗口改为 14 天
ericwyuan
2026-08-23 21:36:28 +08:00
-
6a5cfa7806
[阶段7.1] 同步改为后台任务 + 进度上报,支持回补历史
ericwyuan
2026-08-23 21:31:50 +08:00
-
ad88ec7e41
[阶段7] 前端重做:31 项指标全部露出,配色经色盲校验
ericwyuan
2026-08-23 21:17:08 +08:00
-
cbbff61082
[阶段6] 同步 Garmin 全量数据:31 项日指标 + 奖励 + 个人纪录
ericwyuan
2026-08-23 20:48:49 +08:00
-
bb774c332b
[阶段5.2] 两步验证改到网页端完成,手机上即可绑定 Garmin
ericwyuan
2026-08-23 20:11:45 +08:00
-
af0604bce4
fix(garmin): 两步验证账号同步报 EOFError,改用令牌登录
ericwyuan
2026-08-23 19:57:40 +08:00
-
6de7562cd8
[阶段5.1] 开机自启 + 接入真实 garminconnect,修复同步的三处 API 误用
ericwyuan
2026-08-23 19:05:19 +08:00
-
5f07dad019
[阶段5] 部署到 NAS + frp 公网映射,并加注册锁
ericwyuan
2026-08-23 18:49:05 +08:00
-
acc6a2474b
[阶段4.4] AI 建议结果缓存 - 页面不再阻塞等待 160 秒
ericwyuan
2026-08-23 17:55:12 +08:00
-
8882bf44a4
[阶段4.3] 接入自建 AI 网关,修复多模型层的四个真实缺陷
ericwyuan
2026-08-23 17:44:51 +08:00
-
8616a13525
[阶段4.2] 前端对接 Flask API + 建议/分析/设置页面,移除废弃的 Node 后端
ericwyuan
2026-08-23 12:43:52 +08:00
-
c83340742c
[阶段4.1] AI 健康建议 - 多模型可切换 + 大上下文 + 失败兜底
ericwyuan
2026-08-23 12:38:19 +08:00
-
8e37e5a551
[阶段3.1] pytest 测试基建 + auth/health/analysis 单元测试 - 102 用例全绿
ericwyuan
2026-08-23 12:34:18 +08:00
-
a71c5438ce
fix(auth): hashlib.scrypt 在 LibreSSL 构建下缺失导致注册返回 500
ericwyuan
2026-08-23 12:34:18 +08:00
-
0177758e1f
[阶段2.3-2.4] 实现前端数据同步和仪表板页面
ericwyuan
2026-08-23 12:27:43 +08:00
-
637347082a
[阶段2.1-2.2] 实现 Garmin 数据同步和健康数据查询路由
ericwyuan
2026-08-23 12:26:27 +08:00
-
3b2d0697f0
[阶段1.1-1.7] 实现完整的认证系统
ericwyuan
2026-08-23 12:25:33 +08:00
-
6b05d04773
数据层可插拔(SQLite/MariaDB) + 后端 services 骨架
ericwyuan
2026-08-23 11:58:07 +08:00
-
d73405decb
Initial commit: Set up Garmin Health Lab project structure
ericwyuan
2026-08-23 11:11:29 +08:00