Releases: LearnPrompt/afu-llm-todo
Release list
v1.3.4 — 飞书已连接面板说明授权来源
透明化飞书授权来源
回应用户疑问「为什么点一下不用授权就连上了」:因为 app 读取的是本机 lark-cli 已登录账号的既有授权,自身不持有任何凭据。
本版在「已连接」面板明确提示:
- 状态文案补充「授权来自本机 lark-cli 已登录的账号,请核对下方是不是你本人」。
- 账号行加「(本机 lark-cli 登录)」。
安全说明(无变更,仅澄清)
- app 拿不到 lark-cli 本身没有的权限,授权那一步永远发生在飞书页面、由用户本人确认。
- 新用户不会静默通过:会被「未安装 lark-cli / 未初始化 / 待授权」三态之一挡住,必须自行完成设备码授权。
- 唯一边界:使用的是这台机器上 lark-cli 当前登录的账号(共享机器需注意)——面板已显示账号名供核对。
v1.3.3 — 修复飞书授权识别(lark-cli 1.x 兼容)
修复飞书一直「未授权」的根因
定位到真正的根因:lark-cli auth status --json 在 1.x 改了输出结构。
- 旧版:
tokenStatus/userName/expiresAt在 JSON 顶层。 - 新版(1.0.53):嵌套到
identities.user.*(tokenStatus、userName、openId、expiresAt、available),顶层只剩identity。
app 的 normalizeLarkStatus 仍读顶层字段 → 永远拿到 undefined → 把已授权的用户误判为未授权 → 反复触发设备码授权流,用户感知为「开一个链接→回来又一个码→再开一个链接→失效」。
修复:normalizeLarkStatus 优先读 identities.user.*,回退到旧版顶层字段(向后兼容)。已授权用户现在正确识别为「已连接」,并能拉取主日历。
字段名
device_code/verification_url/expires_in和完成命令--device-code都没变,所以设备码流程本身无需改动。配合 v1.3.2 移除的自动双开,授权体验恢复正常。
v1.3.2 — 转卡排期框修复 + 五项体验修复
本版修复用户在 v1.3.1 dogfood 中反馈的 6 个问题,含 1 个核心 bug。
修复
转卡后排期框不弹 / 排期池看不到(大 bug)
- 根因:批量转卡遇到合并结果时返回
path: undefined(合并分支只给mergedInto),客户端按 path 找不到卡 → 排期对话框被静默吞掉。 - 现在:server 回退
created || mergedInto;转卡后视图切到排期池让新卡立即可见;排期队列加 title 兜底匹配。转卡 → 排期框正常弹出 → 关掉后停在排期池看到新卡。
收件箱工具条对齐
工具条改 align-items:center,「每页 [下拉]」改为同行,下一页/每页/本页全选/批量转卡 与左侧页码同一水平线。
作废对话框预设原因
原因输入框上方加 6 个快捷标签(热点窗口已过 / 与已有选题重复 / 信息证据不足 / 执行成本过高 / 方向不符 / 内容已过时),点击填入仍可手改。
被拒绝的卡从日历消失
日历跳过 已拒绝/已归档/已发布,拒绝后不再在周历显示「已拒绝」残留卡。
已过期标记
日历卡按「排期结束时间 < 现在」判定,过期显示红色「已过期」徽标(刷新即生效,不持久化)。
飞书授权双链接
- 移除点击后的自动
window.open,授权页只在弹窗里留一个打开入口,避免二次打开导致设备码会话失效。 - server 检测
lark-cli --version并在连接器面板显示,未检测到/过旧时提示更新。
注:飞书授权的完成流程(device-code 轮询)深度兼容仍待真实授权环境验证。
v1.3.1 — 配置独立成块 + 排期池 + 布局对齐
本版聚焦首页结构与双模式落地,承接 v1.3.0。
修复
- 独立模式不再要求 Vault:v1.3.0 的后端逻辑此前因服务未重启而未生效;现在独立模式只填三个绝对路径目录,保存不再报「Vault 根目录不能为空」。
- 保存后的诊断 banner 以服务端
data.ok为准,绿色(通过)/ 红色(失败)判断更可靠。
结构调整
- 配置独立成一整块:工作区设置从吉祥物右侧那一窄列移出,变成 hero 下方的全宽区块。首页现在是清晰的三大块:介绍 → 配置 → 选题池+日历。
- hero 两行对齐:删掉「当前工作区」状态卡(信息并入配置区标题),状态行从 5 个减到 4 个,与 01-04 步骤行逐列对齐,不再错位。
- 「题库」→「排期池」:tab、面板标题、提示文案、toast 全部统一改名。
清理
- 删除残留的「诊断」tab 和 wiki 面板 DOM,以及已废弃的
toggleDiagnostics/loadDiagnostics/renderDiagnostics代码。
v1.3.0 — 双模式设置 + 自动诊断 + 布局优化
新功能
双模式设置(Obsidian / 独立)
工作区设置新增模式切换:
- Obsidian 模式:保留 Vault 根目录 + 相对路径,适合 Obsidian 用户
- 独立模式:三个目录直接填绝对路径,不依赖 Obsidian,适合任意本地目录
保存后自动诊断
点击"保存目录设置"后,自动调用诊断接口并内联显示结果:
- 绿色:路径全部可访问,准备就绪
- 红色:列出无法访问的目录名,提示用户检查
布局优化
- 移除诊断 tab:收件箱 + 题库两栏,更简洁;诊断改为保存后内联展示
- hero flow 步骤文案重写:更清楚地解释每步做什么,适合首次用户
- flow step 等高对齐:去掉
min-height固定值,用align-items: stretch保证卡片等高 - 移除
max-width: 880px约束:flow 步骤和状态面板随 hero 宽度自适应,不再左右不齐
v1.2.0 — 归档联动清理收件箱源文件
新功能
归档联动删除收件箱源文件
选题卡片执行过期归档时,若该卡片由收件箱导入(即 frontmatter 含 source_inbox_path),归档完成后会自动删除对应的收件箱原始 .md 文件:
- 文件已被手动删除时静默跳过(ENOENT 不报错)
- 操作结果写入 planner-log(
inboxSourcePath+inboxSourceDeleted字段)
行为不变:拒绝卡片时不删除原始文件,只有明确点击「删除并移出活动选题库」才触发清理。
其他
- 替换吉祥物为透明背景版本,从 87MB 压缩至 310KB
v1.1.1 — 诊断面板空白修复 · 页大小验证 · 管家形象
Bug 修复
- 诊断面板空白消除:
wikiResult去掉empty-stateclass,不再显示 120px 高的空白框 - wiki-actions 布局修复:按钮改为单列,不再在 3 格栅格里孤零零占一格
- 收件箱每页大小验证修复:
readInboxPageSizeValue允许值更新为[5, 10, 20],选 5 或 10 条不再回退成 20 - 切页高度稳定:
inbox-candidate-list加min-height: 400px,切到最后一页不再跳缩
新增
- 管家阿福乐高形象:Hero 右侧加入乐高管家形象图
v1.1.0 — 周排期一览 · mini 卡片 · 亮暗色主题
新功能
周排期面板重设计
- 7 列横向布局固定显示完整一周,不再折行成 2 列
- 列高度随视口自适应(
100vh - 340px),内容超出时每列独立滚动
日历 mini 卡片
- 日历卡片默认只显示「阶段 badge + 标题 + 时间段」,大幅节省空间
- 点击卡片展开完整详情(摘要、标签、操作按钮)
- 已排期卡片的「排期」按钮改为「重新排期」,语义更清晰
亮色 / 暗色主题
- 右上角
◑ 深色 / 浅色按钮一键切换 - 选择保存在
localStorage,刷新后保持
Bug 修复
- 修复「未同步」标签在无外部日历或未排期卡片上错误显示
- 修复大量历史卡片残留
stage: 去重中问题(服务端读取时自动映射为「待排期」) - 修复「当前工作区」显示的是 config JSON 路径而非 Vault 根目录
- 收件箱每页条数选项简化为 5 / 10 / 20
v1.0.0 — 管家阿福正式发布
阿福转正了
从 demo 项目到正式发布:16/16 测试通过,演示 vault 一条命令可跑,npx 安装实测可发现。
它做什么
站在 Obsidian Vault 门口的管家:先把收件箱材料整理成 Wiki,再把 Wiki 里长出来的判断变成可排进日历的待办卡。
Inbox -> Wiki -> Todo Card -> Calendar
安装
npx skills add LearnPrompt/afu-llm-todo本版打包
- MIT LICENSE 入库
- plugin marketplace 双通道(
.claude-plugin/marketplace.json) - README:徽章行(skills.sh 安装计数)+ 演示视频改为可点击海报(GitHub 不渲染外链 video 标签)
- 16 个单元测试全绿;
npm run demo演示 vault 开箱即跑
Afu demo video
Demo video used by the README.