← 返回开发时间线

熊窝 v0.29.0:任务看板 - 分阶段甘特条与本地无刷新编辑

熊窝甘特条支持阶段划分,任务状态真源迁入仓库实现本地编辑全设备同步,修复分割缝拖拽错位,本地编辑不再整页刷新丢视图。

2026-09-01

熊窝功能视觉

熊窝任务看板在 v0.28.0 甘特图的基础上,把长任务的甘特条升级为可命名的连续阶段轨道,同时把任务状态真源从浏览器 localStorage 迁入仓库,本地编辑不再丢视图,线上只读随发布构建同步。

分阶段甘特条

  • 任务补丁新增 phases[](id / title / start / end / status),阶段连续无缝铺满计划区间,首阶段对齐 plannedStart、末阶段收在 plannedEnd。
  • 甘特条从实体色块改为阶段轨道容器,每段独立着色:未开始灰、进行中橙、完成绿;≥3 天的阶段显示名称,更短的只留颜色与悬浮提示。
  • 甘特行新增「分阶段 / 阶段 N」入口,弹窗按「切割点」编辑(每行只填结束日期,下一段自动从次日开始),支持添加、删除、平均分配、清除。
  • 拖拽整条时阶段整体平移;拖拽两端时只动首/末阶段边界;移出甘特图时清除阶段。看板卡片同步新增阶段缩略条,按天数比例着色并显示当前阶段名。

状态真源入仓与本地无刷新编辑

  • 新增 src/data/todo-state.json 作为任务状态唯一真源(status / plannedStart / plannedEnd / completedAt 字段级补丁),构建时注入页面内联进静态产物,线上零额外请求。
  • astro.config.mjs 新增 todoSyncPlugin,本地 dev 下看板与甘特图操作通过 POST /__todo_sync 合并写回仓库状态文件,写盘成功才算修改成功;pre-push hook 与 GitHub Actions 均加入状态校验。
  • 线上看板转为只读:不渲染编辑按钮、禁用甘特条拖拽,header 显示「🔒 线上只读」徽标;本地 dev 全功能可编辑。
  • 借鉴常识笔记 / 开发笔记本地 CMS 的做法,自写盘后 2.5s 内吞掉 dev server 的 full-reload / update 广播——本地编辑甘特图不再整页刷新,视图不再被重置回看板。

交互修复与工具栏精简

  • fix: 拖拽阶段分割缝时右阶段预览错位重叠——列号原来相对左阶段起点计算,只有第一道缝碰巧正确;改为统一以任务条起点为参照(leftStartColumn),并为阶段格子加 grid-row: 1 兜底防折行。
  • 移除甘特图「划分阶段」按钮的阶段列表悬浮窗与「定位今天」按钮;工具栏改为副标题左对齐、「显示已完成」与计划区间在右侧对齐成一列。
  • 旧 localStorage 补丁首次打开看板时自动迁移进仓库状态文件并清除,归档任务不再可能被本地残留补丁污染。

数据与实现

  • 阶段数据落盘前经归一化(排序、消除空档、末阶段闭合、天数不足时截断),todo:validate 增加阶段校验。
  • 发布提交:b4e19f9 feat(v0.29.0): 甘特图分阶段与本地无刷新编辑,共 10 个文件、+1746 / -81 行。

UI 设计图留档

本次保留任务看板 v3 两张 UI 快照:看板视图展示卡片上的阶段缩略条与当前阶段名,甘特图展示三阶段甘特条与精简后的工具栏布局。

熊窝 v0.29.0 任务看板看板视图

熊窝 v0.29.0 任务看板甘特图视图