cuiluzheng
|
32b05acd6f
|
docs: 补记睡眠时段图与功能开关联动修复(spec §6.2 / §6.3)
- §6.2 睡眠时段图:动因(用户原话「只有最高时间最低时间,我不知道一天内具体什么时候睡的觉」)、
SleepSession 为何不复用 MetricPoint、横轴锚在 20:00 的理由(含 % 86400000 是 UTC 余数这个坑)、
轴范围由数据算、只用一个颜色不假装知道分期位置、刻度文字为何画在 Canvas 里、
以及睡眠页撤掉柱状图的理由
- §6.3 功能开关联动:现象与根因(两个互不引用的字段 + 「开关 id 与枚举长得像」这个巧合)、
修法(MetricType.switchId、仓库订阅开关流、todaySummary 刻意不给默认值)、
顺带纠正的两处(未开启不画图、血压卡恢复可点击),以及三项已知未修的结构性重复
- §5.1 接口补 functionSettings / observeSleepSessions / SleepSession / MetricType.switchId
- §6.1 睡眠页的「趋势图」改为「睡眠时段图」;§6 的 M1 差异注记标注同日已关闭
- §7.3 组件清单补 SleepWindowChart 及其与 MetricBarChart 的边界
|
2026-09-10 16:49:28 +08:00 |
|
cuiluzheng
|
afc08b2d92
|
docs: 归档 M0+M1 执行期裁定记录,修正计划头部的工具链版本
|
2026-09-10 13:38:53 +08:00 |
|
cuiluzheng
|
c3eb0b5b76
|
docs: 更正 M2 交接面清单,回填 spec 与交付的实际偏差(ledger R35)
|
2026-09-10 13:10:28 +08:00 |
|
cuiluzheng
|
a18523f032
|
docs: Task 12 用例三补鉴别力、previewPoints 补 step 参数(ledger R34)
|
2026-09-10 12:41:17 +08:00 |
|
cuiluzheng
|
cd6d53a3b6
|
docs: 修正 Task 14 的 docs 仓库路径、暂存方式与验收记录中的不实陈述
|
2026-09-10 12:33:32 +08:00 |
|
cuiluzheng
|
06cd3916e3
|
docs: Task 12 睡眠区块去掉恒真判空(ledger R33)
|
2026-09-10 12:32:29 +08:00 |
|
cuiluzheng
|
1c491254ff
|
docs: Task 13 澄清 git add -A 的豁免前提(ledger R32)
|
2026-09-10 12:23:16 +08:00 |
|
cuiluzheng
|
0aa36e3056
|
docs: Task 14 补 setFunctionEnabled 的 KDoc 步骤(ledger R31)
|
2026-09-10 12:16:51 +08:00 |
|
cuiluzheng
|
63700f933d
|
docs: Task 12 测试用例改名以匹配其实际断言
|
2026-09-10 11:33:37 +08:00 |
|
cuiluzheng
|
955004f83b
|
docs: 全局约束补提交暂存规则(只 add 本任务文件)
|
2026-09-10 11:33:31 +08:00 |
|
cuiluzheng
|
c9b1070869
|
docs: Task 12 预览样例数据按指标取值、Task 14 补推送核对与 BOM 版本
|
2026-09-10 11:33:23 +08:00 |
|
cuiluzheng
|
706b2797ff
|
docs: Task 14 验收记录改写为本机实际可验内容,并显式声明覆盖缺口
|
2026-09-10 11:32:49 +08:00 |
|
cuiluzheng
|
f55158e99c
|
docs: Task 13 补推送失败时的处理(不做 --force)
|
2026-09-10 11:32:38 +08:00 |
|
cuiluzheng
|
85abf5daf2
|
docs: 补 Task 12 的 ViewModel 测试与 Preview、修正 Task 14 测试数与孤儿字符串清扫
|
2026-09-10 11:30:58 +08:00 |
|
cuiluzheng
|
430e669702
|
docs: 修正 Task 11 计划(补 Preview、按 R21 改写验证步骤、标注版本号手抄副本)
|
2026-09-10 11:25:11 +08:00 |
|
cuiluzheng
|
7b111b33f3
|
docs: 修正 Task 10 计划(补 DeviceViewModel 测试与 Preview,修正步骤编号与文案清单)
|
2026-09-10 11:23:05 +08:00 |
|
cuiluzheng
|
5c82c38ef5
|
docs: 提炼 TextSecondary 与 @Preview 两条全局约定(ledger R26)
- 禁用 colorScheme.onSurfaceVariant(与 TextSecondary 灰度不一致,编译器拦不住)
- 页面统一拆「有状态外壳 + 无状态内容」并给内容加 @Preview,
R21 下这是 Task 14 之前唯一的界面检查手段
- Task 14 人工清单加:Preview 可渲染、次要文字灰度一致、重按父 Tab 实测项
|
2026-09-10 11:19:30 +08:00 |
|
cuiluzheng
|
5c7afbbea3
|
docs: Task 9 派发前修正四处(ledger R25)
- 删除两条无消费者的新字符串 workout_detail_duration / workout_history
- WorkoutHistoryScreen 先判 loading 再判空,避免闪「暂无运动记录」
- 补 WorkoutViewModelTest(TDD),Task 9 步骤重编号为 Step 1..9
- 记录日期+时间插值不违反文案约束,避免复审误报
|
2026-09-10 11:11:03 +08:00 |
|
cuiluzheng
|
f23580de47
|
docs: 删除不可编译的 lazy.item import(ledger R24)
item 是 LazyListScope 的成员函数而非顶层扩展,无法 import;
该行单独即可导致 Unresolved reference。仅 items(List<T>) 需要 import。
由 Task 8 实现者 javap 反编译产物核实后推翻我的核验结论。
|
2026-09-10 11:04:13 +08:00 |
|
cuiluzheng
|
bcf5d07df8
|
docs: 修正 Task 8 的硬编码单位与验证步骤(ledger R23)
- unit = "mmHg" 改为 stringResource(R.string.unit_mmhg),
与同列表内次/分、%、°C 的处理保持一致,新增 unit_mmhg 资源
- Step 8 标题与 Expected 去掉「真机验证」,界面验证按 R21 顺延到 Task 14
|
2026-09-10 10:59:20 +08:00 |
|
cuiluzheng
|
f35cf329ba
|
docs: 导航骨架复审修订(ledger R21/R22)
- R21:移除全部 Task 的 installDebug(本机无模拟器/真机),Task 14 人工验收
明确标注「未执行 —— 无设备」,不得当成已通过
- R22:Task 7 的 5 条 Minor 折进其真正可观测的任务 ——
Task 9 加 tabRouteFor 归属映射 + DETAIL_PATTERN 常量插值,
Task 12 把 ?: MetricType.STEP 换成 requireNotNull 并补 RoutesTest(纯 JVM)
|
2026-09-10 10:58:04 +08:00 |
|
cuiluzheng
|
3d39fd3445
|
docs: 让 R17 的时钟注入真正可测 + 记录刷新语义(ledger R20)
- MockDataProviderTest 增加两条绝对时间戳断言;只比较 first==second 时,
两次相邻调用几乎总在同一毫秒内,去掉时钟注入测试照样通过
- MockRingDeviceRepository 类级 KDoc 写明「刷新以 suspend 返回表示完成,
不靠发射新状态」,避免调用方写成等待下一个不同发射而在 M1 永久挂起
|
2026-09-10 10:47:43 +08:00 |
|
cuiluzheng
|
e43b76efab
|
docs: 修正 Task 7 的 Produces 契约(ledger R19)
Interfaces 段原写 HomeScreen(onOpenDetail, onOpenWorkoutHistory),
但全计划无 onOpenWorkoutHistory 的任何调用点,Task 8 产出的是
HomeScreen(onOpenDetail, modifier, viewModel)。同时 WorkoutScreen/DeviceScreen
的 onOpenHistory/onOpenSettings 实为 Task 9/10 才加入,本任务只注册路由、无人跳转。
|
2026-09-10 10:45:06 +08:00 |
|
cuiluzheng
|
c71c3c32f6
|
docs: Mock 数据源注入时钟,消除 flaky 断言(ledger R17)
- MockDataProvider 增加 now: () -> Long = System::currentTimeMillis
- metricHistory / workouts 改用 now(),使「确定性」承诺成立
- 测试注入 FIXED_NOW,并补一条时间戳严格递增的断言
|
2026-09-10 10:40:55 +08:00 |
|
cuiluzheng
|
42bc9fe12e
|
docs: 修正格式化层与占位页的硬编码文案(ledger R13/R14)
- formatCalories 不再拼接「千卡」(与 R.string.home_calories_label 重复),
workout_detail_calories 改为「消耗 %1$s 千卡」
- stressLevelLabel(String) 改为 @StringRes stressLevelLabelRes(Int),描述进 strings.xml
- Global Constraints 写明唯一豁免(formatSleepDuration/formatDuration 的复合时长值)及判据
- Task 7 的 7 个占位 Composable 改用 stringResource,补齐 import 与 3 条占位文案
|
2026-09-10 10:32:55 +08:00 |
|
cuiluzheng
|
bf983833c8
|
docs: 豁免设计系统 token 的命名约束(R10)
|
2026-09-10 10:22:21 +08:00 |
|
cuiluzheng
|
ac9019d56a
|
docs: 修正计划示例中的硬编码文案(R9),补齐 stringResource 用法与警示
|
2026-09-10 10:18:54 +08:00 |
|
cuiluzheng
|
616bd1aea2
|
docs: 按 pre-flight 冲突扫描修订 M0+M1 计划(R1-R4)
|
2026-09-10 09:07:56 +08:00 |
|
cuiluzheng
|
9411ac14d1
|
chore: 新增 agent 技能配置(issue tracker / triage 标签 / 领域文档)
|
2026-09-10 09:03:52 +08:00 |
|
cuiluzheng
|
a1bc2322f3
|
docs: 新增 M0+M1 实施计划(14 个任务,含 TDD 步骤)
|
2026-09-10 09:01:41 +08:00 |
|
 cuiluzhengandClaude Code
|
b8d217e115
|
docs: 新增智能戒指健康 App 阶段一设计文档
- 仓库拆分:ring-health-app / ring-health-api(阶段一仅契约)
- 技术选型:Kotlin + Compose,工具链钉死本机已装版本
- 架构分层、页面地图、Mock 策略与里程碑 M0-M5
- 厂商 SDK 隔离复用策略(原样 vendor + 自写适配层)
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-10 08:43:06 +08:00 |
|