Zum Hauptinhalt springen
F

cike-taskboard

fffgfffff/cike-taskboard

Local-first task scheduler for DSH. Schedules today's tasks from the current time, splits long tasks around lunch, highlights the current task live, reminds at task start and before the next task, and adds a 7-day calendar plus an exportable virtual timeline.

Installation

dsh plugin --profile web add github:fffgfffff/cike-taskboard

README

此刻 · 任务排程(DSH 插件)

英文名 Cike / Moment,技术包名 dsh-taskboard(本地开发版)。 一句话:贴着实时时间排今天的任务,到点弹窗提醒。

把「任务排程小窗」重做成了 DeepSeek Harness 的 Web 插件:左侧栏入口 + 贴边悬浮小窗, 记录今天要做的事,按优先级与截止时间自动排进上班时间;到点提醒;支持未来 7 天和虚拟时间轴。 放不下的明确列出来,不自动删除、不自动降级。

数据全部保存在本机 ~/.dsh/dsh-taskboard/state.json,不联网、不登录。

完整需求、时间字段定义、操作清单与去重决定见 需求与操作清单.md。 新用户请直接看 使用教程.md;安全审计见 安全审计.md。

形态

  • 完整面板:左侧栏「任务排程」→ 输入框 + 时间轴 + 没排上 + 已完成 + 页脚统计。
  • 悬浮小窗:默认吸附在右侧,收起时是一条 13px 的淡蓝细条;点击细条展开(不再悬停自动弹),细条可上下拖动/滚轮/↑↓调整位置。 按住标题栏可拖动,松手按窗口中心吸附到左/右边缘;位置、开合、左右侧会记住。 卡片上的 × 只是收起成细条,不会把小窗彻底弄丢;要彻底隐藏/重新打开用设置里的「悬浮小窗」开关;关闭后页头会出现「打开悬浮窗」。
  • 跟随主题:直接使用 DSH 的 --dsw-* 主题变量,深色/浅色界面都自动适配。

功能

区块行为
记录一行文字即一件事;回车添加;可顺带选 P0–P3、预计耗时、截止日期/时刻;预计耗时旁有「到下班」一键按当前/固定开始到下班算时长
今天从现在今天自动添加任务会从当前时间接着排,不回填到早上;页脚「可用 / 富余」也按当前时间 → 下班计算
提醒任务到点弹「现在开始」,下个任务开始前弹「N 分钟后开始」;设置里可关、可调提前分钟、可关提示音
返回对话在完整面板左上角「返回对话」,一键切回刚才的会话;只切主面板,不改变当前会话
固定时间「固定时间」里可填开始/结束,或点「现在」;结束留空 = 只固定开始;开始落在午休/上班前会自动落到最近的可工作分钟
未来 7 天页头小日历按钮:今天 + 未来 7 天,每天独立时间轴;今天下班结束归档后,未完成的任务才会顺延到次日
虚拟时间轴独立草稿:自由加任务、调顺序/固定开始,实时预览;确认后覆盖到选中日期;可导出/导入 JSON
排程已过期 → 截止近 → 优先级高 → 添加顺序;从最早的空白开始连续铺满
自动分段长任务先填满上午,午休后接着排;绕开固定任务继续填,不把长任务整体挪到下午;每段单独显示「续」
实时高亮每 15 秒刷新;正在进行的任务亮蓝、带「进行中 · 剩 X」;时间轴上有「现在」标记线
超时计划结束还没打勾会标「超计划 X」;编辑器里 +15/+30 分钟延长、也可直接改预计/实际;后续任务自动顺延
提前完成勾选即完成,按计划分段自动估一个实际用时;已完成里显示「实 X / 提前 X」;可手改实际
从现在重排页头按钮把还没做的任务从当前时间重新排,「恢复全天」还原全天计划;跨天自动失效
约束不占用午休;午休/下班/工作时段可在设置里改;单段小于 10 分钟的碎片不切开
固定可指定开始时刻;固定的长任务也在午休处自动分段;撞午休/下班/别的固定任务只标红,位置不动
超载需求总时长 > 可用时长时显示超载量;总时间都不够的任务整件进「没排上」,不会只排一半
处置没排上的可一键顺延到明天或删除,由使用者决定
完成勾选后进入「已完成」;可撤销
跨天次日首次打开/跨天轮询时先按天归档,再把昨天没打勾的顺延到今天并标「顺延」;当天没下班不会顺延;首次运行不搬运历史
只改今天临时改上下班/午休(如加班到 21:00),次日自动恢复
数据原子写入 JSON、自动留上一份备份;可导出/导入;兼容旧版小窗的 state.json
历史按天归档、只读查看,不参与当天排程

安装(本地开发)

dsh plugin --profile desktop add github:fffgfffff/cike-taskboard

也可以从本地目录安装(在仓库根目录执行):

dsh plugin --profile desktop add .

首次安装/升级后,DSH 的 HMR 会重新组合 profile;如果界面没出现,刷新一次页面即可。 也可以在「设置 → 插件」里确认 dsh-taskboard 已启用。

卸载

dsh plugin --profile desktop remove dsh-taskboard

数据目录 ~/.dsh/dsh-taskboard/ 不会自动删除,需要时手动清理。

开发

cd dsh-taskboard
node scripts/build.mjs      # src → lib(客户端 bundle + 宿主入口 + 共享内核)
node --test tests/*.test.js # 排程内核 / 宿主存储 / 客户端冒烟,45 项

源码结构:

src/
  scheduler.js        排程内核:宿主、浏览器、测试共用同一份(不重复实现)
  host.js             宿主半侧:本地 JSON、跨天归档/顺延、/dsh-taskboard 路由
  client/
    00-core.js        数据仓库、主题化 CSS、图标
    10-ui.js          弹层、设置、历史、日历
    15-virtual.js     虚拟时间轴
    20-page.js        完整面板、时间轴、行内编辑器
    30-dock.js        贴边悬浮小窗
    40-reminders.js   到点提醒
    99-apply.js       插槽注册(sidebar.panellist / main / shell.overlay)
scripts/build.mjs     拼接构建 + 语法检查
lib/                  构建产物(DSH 实际加载这里)

浏览器半侧必须是一个普通副作用脚本:顶层调用 window.__ModuleLoader__.load({ id, factory(require) }),React 由 DSH 的模块种子表提供, 因此不打包 React。宿主半侧复用同一份 scheduler.js,跨天逻辑与界面看到的排程不会漂移。

与旧版桌面小窗的关系

旧版 taskboard\(Windows Forms 独立窗口)保留不动;本插件是同一套需求在 DSH 里的重做:

  • 保留了字段、超载/没排上/顺延/归档/只改今天等行为;
  • 按新反馈调整:长任务不再整体躲到下午,而是先填满上午、午休后接着排;时间轴实时高亮当前任务;快速添加支持「固定时间 / 从现在开始」;
  • 窗口形态从「独立桌面窗口」改成「DSH 内的贴边悬浮小窗 + 完整面板」;
  • 数据从 taskboard\data\state.json 改成 ~/.dsh/dsh-taskboard/state.json, 设置里可以直接导入旧文件。

超时 / 提前完成怎么操作

  • 任务超过了预计时间
    • 计划结束时间一过、又没打勾,任务行会出现「超计划 X」。
    • 点任务行展开编辑器:+15 分钟 / +30 分钟 直接延长,后面的任务自动顺延;也可以直接改「预计耗时」。
    • 如果整天的计划已经偏了,点页头 「从现在重排」:只把还没做的任务从当前时间重排,之前的时段不再参与;点 「恢复全天」 回到完整计划。
  • 提前完成任务
    • 点左侧勾选框即可;系统会按计划分段估算一个实际用时(例如计划 09:00–10:00、09:30 勾选 → 实际 30 分钟)。
    • 已完成区显示「实 30m / 提前 15m」,完成时刻也保留。
    • 想让后面的任务立刻前移,点 「从现在重排」;不点则保持全天计划。
    • 实际用时不准确:取消勾选 → 在编辑器「实际」里改 → 再勾选;已有实际值不会被自动覆盖。
  • 实际耗时
    • 编辑器里的「实际」字段随时可填;超额完成就填真实投入(如 90 分钟),已完成区会显示「超 30m」。
  • 一键填到下班
    • 预计耗时旁的 「到下班」:按当前时间(固定时间时按开始时间)到下班的工作分钟数自动填入,午休自动扣掉。
    • 任务编辑器里也有「到下班」,按固定开始时刻(没有固定则按现在)算到下班。
    • 截止时间用「截止(最后期限)」的日期/时刻字段;它和「结束时间」不是一回事:结束只用于折算耗时,截止用于排序和过期提醒。

到点提醒

  • 设置 → 提醒:总开关、下个任务提前 N 分钟、提示音。
  • 今天有任务到第一段开始时,右下角弹出「现在开始」;下个任务进入提前窗口时弹「N 分钟后开始」。
  • 弹窗上可以直接 完成 或 知道了;同一任务同一开始时刻只提醒一次。
  • 只提醒今天的时间轴;未来日期和虚拟时间轴不会弹。

未来 7 天

  • 页头小日历按钮 → 选 今天 + 未来 7 天;每一天有独立时间轴,添加任务只进选中日期。
  • 今天下班结束、跨天归档后,昨天没完成的任务才会顺延到今天;当天没结束不会提前搬。
  • 未来日期的「到下班」按上班时间算全天,不受今天的实时时间影响。

虚拟时间轴

  • 页头 虚拟 按钮:独立草稿,随便加任务、上移/下移、设固定开始;右侧实时预览排程。
  • 覆盖到选中日期:确认后清空该日期现有任务,换成虚拟时间轴(包括已完成)。
  • 导出 下载 JSON;另一台设备点 导入 选这个文件,就得到同一份虚拟时间轴。

今天从现在开始

  • 今天在上班时间内用「自动排」添加任务时,会自动把排程锚点设到当前时间:新任务从当前时间接着排,不会回填到早上。
  • 页脚「可用 / 富余」按 当前时间 → 下班 计算,不受上午已经排过什么影响。
  • 想回到全天视图,点「恢复全天」;之后再添加自动任务会重新从现在开始。

已知边界

  • 自动分段后,同一任务在时间轴上会出现多行(第二段起标「续」);勾选/编辑任意一段都是操作整件事。
  • 「固定时间」的结束时间按上班时间折算耗时:例如 10:00–15:00、午休 1 小时,实际计 4 小时工作,排出来是 10–12 + 13–15。
  • 单段不足 10 分钟的碎片不切开,留给后面的小事,避免把任务切成没意义的几分钟。
  • 总可用时间都不够时,整件进「没排上」,不会只排一半。
  • 悬浮小窗吸附的是 DSH 窗口内的左右边缘,不是操作系统桌面边缘。
  • 历史最多保留 120 份按天归档,超出后自动清理最旧的。
  • 拖动排序只影响「截止与优先级都相同」时的先后,不会覆盖截止/优先级规则。

悬浮小窗不见了?

按顺序试:

  1. 看 DSH 窗口最右侧有没有一条淡蓝细条:点一下就会展开。
  2. 打开「任务排程 → 设置 → 悬浮小窗」,把「在窗口右侧显示贴边悬浮小窗」打开;只有被彻底关闭时,任务排程页头才会出现「打开悬浮窗」按钮。
  3. 打开「任务排程 → 设置 → 悬浮小窗」,把「在窗口右侧显示贴边悬浮小窗」打开。
  4. 如果之前点过小窗上的 ×,旧版本会把小窗彻底关掉;新版本会自动迁移成「只收起成细条」。

Ähnliche Plugins