父任务:#82
第一性原理边界
每秒 Tick 必须继续扫描完整 self.todos 以保证筛选外任务也能提醒;本子任务只移除结果未变化时的 QWidget 副作用,不减少业务状态检查。
实施范围
- 拆分卡片静态完成状态与动态计时状态的渲染。
- 缓存上一轮完成状态、计时文本和计时样式;最终呈现未变化时立即返回。
- 无变化 Tick 不重复调用
setIcon、setStyleSheet、setFont、update_text_display、_sync_todo_card_sizes 或 doItemsLayout。
- 卡片初次构建只执行一次完整计时渲染,移除构造、应用主题、插入列表后的重复刷新。
- 计时文字或样式实际变化时仍立即更新,完成、推迟、到期、无截止时间和非法日期视觉保持不变。
- 增加确定性调用次数和状态转换测试;不使用易抖动的 CI 毫秒阈值。
- 按 bugfix 规则更新修订版本及当前性能锚点。
非目标
验收标准
父任务:#82
第一性原理边界
每秒 Tick 必须继续扫描完整
self.todos以保证筛选外任务也能提醒;本子任务只移除结果未变化时的 QWidget 副作用,不减少业务状态检查。实施范围
setIcon、setStyleSheet、setFont、update_text_display、_sync_todo_card_sizes或doItemsLayout。非目标
task_id -> widget协调器,该部分留给 优化百条以内待办的空闲刷新、列表重建与交互响应 #82-B。TaskEditDialog生命周期。验收标准
python -m compileall todo_app、完整unittest与git diff --check通过。