在将宣传物料(mockups/codingbar/)与真实 Swift 实现对照时,发现三处数据层已计算、但面板从未渲染的洞察能力。这些此前在 mockup 里被展示,现已删除以与现状一致;本 issue 跟进在 app 端补上渲染(或从模型移除以免误导)。
1. 协作节奏 Rhythm(轮数 / 时长 / 打断率)
- 已算:
Behavior.rhythm()(Sources/CodingBarCore/Behavior.swift:38-69),随 snap.habits.rhythm 进入快照。
- 未渲染:
Sources/CodingBar/Views/ 无任何引用(grep 命中 0)。
- 建议:在「洞察」tab 加三小卡(轮数 / 平均时长 / 打断率)——数据已就绪。
2. 剩余轮数 estRemainingTurns
- 已算:
FuelCalculator.build() 产出 FuelGauge.estRemainingTurns(Sources/CodingBarCore/Fuel.swift:85-114)。
- 未渲染:实时区已改用
liveSessions(多会话清单),FuelGauge 不被任何 view 引用 → 该字段目前是死数据。
- 建议:要么在会话行补「~N 轮可用」,要么从
Models.swift 移除 FuelGauge 避免误导。
3. 里程碑 Insight(.milestone)
- 定义存在:
InsightKind.milestone(Sources/CodingBarCore/Models.swift:97)。
- 从不生成:
Coach.build() 只产 .tip,Aggregator 追加 .forecast;没有任何 .milestone 生成器。设计稿里有「里程碑」卡(如「缓存累计已省下 $X」)。
- 建议:在
Coach 增加里程碑生成器(如累计省钱 / 里程 token 数),或从设计中移除该类型。
附带(本轮已直接修复,仅记录):热力图数据窗口实为 30 天却标「7 天」。已把 Behavior.heatmap 窗口改为真正的 7 天(Sources/CodingBarCore/Behavior.swift:71-82),与「活跃热力 · 7 天」标签一致。
来源:mockups 与 Swift 实现的一致性审计(2026-06-18)。
🤖 Generated with Claude Code
在将宣传物料(
mockups/codingbar/)与真实 Swift 实现对照时,发现三处数据层已计算、但面板从未渲染的洞察能力。这些此前在 mockup 里被展示,现已删除以与现状一致;本 issue 跟进在 app 端补上渲染(或从模型移除以免误导)。1. 协作节奏 Rhythm(轮数 / 时长 / 打断率)
Behavior.rhythm()(Sources/CodingBarCore/Behavior.swift:38-69),随snap.habits.rhythm进入快照。Sources/CodingBar/Views/无任何引用(grep 命中 0)。2. 剩余轮数 estRemainingTurns
FuelCalculator.build()产出FuelGauge.estRemainingTurns(Sources/CodingBarCore/Fuel.swift:85-114)。liveSessions(多会话清单),FuelGauge不被任何 view 引用 → 该字段目前是死数据。Models.swift移除FuelGauge避免误导。3. 里程碑 Insight(
.milestone)InsightKind.milestone(Sources/CodingBarCore/Models.swift:97)。Coach.build()只产.tip,Aggregator追加.forecast;没有任何.milestone生成器。设计稿里有「里程碑」卡(如「缓存累计已省下 $X」)。Coach增加里程碑生成器(如累计省钱 / 里程 token 数),或从设计中移除该类型。附带(本轮已直接修复,仅记录):热力图数据窗口实为 30 天却标「7 天」。已把
Behavior.heatmap窗口改为真正的 7 天(Sources/CodingBarCore/Behavior.swift:71-82),与「活跃热力 · 7 天」标签一致。来源:mockups 与 Swift 实现的一致性审计(2026-06-18)。
🤖 Generated with Claude Code