Skip to content

Releases: ichris007/taskflow

1.1.0

Choose a tag to compare

@ichris007 ichris007 released this 29 Sep 19:26

TaskFlow 1.1.0 — Release Notes

This release turns TaskFlow from a single global board into a per-project inspector, powered by a community contribution (PR #4), together with a round of maintainer refinements to the new grouping UI.

Highlights

  • Enhanced grouping — note-scoped queries (community contribution by @wernsting, PR #4). A group can now be scoped to a single note: configure a frontmatter property (and optionally the allowed values) and a note dropdown appears for that group. Selecting a note points every tab's Tasks query at it through Tasks' query.file, so you can inspect one project at a time instead of the whole vault.
  • Configurable group task limit. Each group can cap how many tasks its tabs display. The cap is appended last, so it overrides any limit written inside a tab's own query. Set it in the group config, and optionally enable an on-view limit box to tweak it without opening settings.
  • Limits and pickers are now optional and searchable. The on-view limit box sits behind a setting (off by default), so groups without a note selector no longer show a stray limit input. Both the note picker and the property-values picker gained search — click-to-pick stays primary, search only narrows the list.

What's changed

New features (PR #4, by @wernsting)

  • Note selector: a per-group dropdown driven by a frontmatter property, restricted to notes whose value is in the configured set. Selecting a note scopes every tab in the group to that note (query.file).
  • Property values filter: optionally narrow which notes are offered. Matching is case-insensitive and accepts single values or YAML lists; a note matches if any of its values is selected (if no values are selected, any non-empty value matches).
  • Group task limit: a single cap appended as limit N to every tab's query, overriding the limit written inside each tab's query (confirmed by the maintainer: the group cap wins over per-query limits).
  • Advanced linking: combined with Tasks' filter by function (e.g. filter by function task.file.path === query.file.path, requires Tasks ≥ 5.1.0), a group can also collect tasks that merely relate to the selected note — via a link frontmatter property or a wikilink inside the task description — even though those tasks do not live in the selected note.

Refinements (maintainer)

  • The on-view limit box is now a setting — Show the task-limit box on the view, off by default. Groups without a note selector no longer show a lone limit input; turn it on when you want to adjust the cap on the fly. The box edits the same value as the group config, so there is no duplicated setting.
  • Group edit modal: added a Limit field, placed after Property values so the property and its values sit next to each other.
  • Search added to both pickers — the note dropdown and the Property values multi-select now filter as you type. Both stay click-to-pick first: search is an optional filter, never a required step, and nothing opens a blocking modal.

Notes

  • The note-scoped query relies on Tasks' query.file Query Property. Keep query.file inside filter by function, or use the {{query.file.*}} placeholder — never put query.file on its own line (Tasks rejects it with "do not understand query").
  • The selected note is kept for the current session; reopening the vault falls back to the first matching note.
  • Thanks to @wernsting for the contribution and the collaborative review.

TaskFlow 1.1.0 更新说明

本次更新把 TaskFlow 从「全局看板」升级为「按项目逐篇巡检」。核心能力来自社区贡献(PR #4),另有一轮针对新分组界面的维护者优化与修复。

亮点

  • 增强分组 —— 笔记限定查询(社区贡献 @wernsting,PR #4)。分组现在可以限定到某一篇笔记:配置一个 frontmatter 属性(可选再指定允许的取值)后,该分组会出现一个笔记下拉选择器;选中某篇笔记后,分组内所有标签的 Tasks 查询都会通过 Tasks 的 query.file 指向该笔记,实现「一次只看一个项目」的巡检。
  • 分组任务上限。每个分组可统一限制其标签最多显示多少条任务;上限以追加形式写在查询末尾,因此会覆盖标签查询内部自带的 limit。在分组配置里设定,也可按需在视图顶部开启可实时编辑的上限框。
  • 上限框与选择器:可选 + 可搜索。视图顶部的上限框改为由设置项控制(默认关闭),因此没有笔记选择器的分组不会再出现孤零零一个上限输入框;笔记选择器与「属性值」选择器都新增了搜索——仍以直接点选为主,搜索只用于收窄列表。

主要变更

新功能(PR #4,@wernsting 贡献)

  • 笔记选择器:由 frontmatter 属性驱动的分组级下拉框,仅列出属性取值在配置集合内的笔记;选中后把分组内所有标签的查询限定到该笔记(query.file)。
  • 属性值筛选:可选地收窄提供哪些笔记。匹配时大小写不敏感,支持单值与 YAML 列表;只要笔记的值中有任一落在选中集合里即匹配(若未选任何值,则任何非空值都匹配)。
  • 分组任务上限:以 limit N 形式追加到分组内每个标签查询的末尾,覆盖标签查询内部的 limit(经维护者确认:分组上限优先于查询内 limit)。
  • 进阶关联:配合 Tasks 的 filter by function(例如 filter by function task.file.path === query.file.path,需 Tasks ≥ 5.1.0),分组还能一并收集仅仅与选中笔记相关的任务——通过 link frontmatter 属性或任务描述里的双链——即便这些任务并不住在选中的笔记里。

优化与修复(维护者)

  • 视图顶部的上限框改为设置项——「在视图顶部显示任务上限框」,默认关闭。没有笔记选择器的分组不会再出现孤零零一个上限输入框;需要随手调整上限时再打开。该输入框与分组配置编辑的是同一个值,不存在重复设置。
  • 分组编辑弹窗新增「上限」字段,放在「属性值」之后,让属性与其取值相邻、逻辑更顺。
  • 两个选择器都加了搜索——笔记下拉框与「属性值」多选框均支持输入即过滤。两者仍保持点选优先:搜索只是可选的过滤手段,不是必经步骤,也不会弹出阻断式弹窗。

说明

  • 笔记限定查询依赖 Tasks 的 query.file Query Property。请务必把 query.file 写在 filter by function 内部,或使用 {{query.file.*}} 占位符——不要单独成行(否则 Tasks 会报 "do not understand query")。
  • 选中的笔记仅在本次会话内保留;重新打开仓库后会回退到第一篇匹配的笔记。
  • 感谢 @wernsting 的贡献与协作审阅。

1.0.4

Choose a tag to compare

@ichris007 ichris007 released this 25 Sep 15:08

TaskFlow 1.0.4 — Release Notes

A maintenance release focused on passing the Obsidian community plugin review and
cleaning up build / lint warnings. No user-facing behavior changes.

What's changed

  • Fixed 3 blocking review errors — replaced all innerHTML SVG injection with a
    safe DOMParser + appendChild helper (mountTrustedSvg), removing the disallowed
    eslint-disable comments flagged as Unexpected undescribed directive comment /
    Disabling '@microsoft/sdl/no-inner-html' is not allowed.
  • Resolved ~90 prefer-create-el warnings — migrated
    document.createElement('div'|'span') and .createEl('div'|'span') to Obsidian's
    createDiv() / createSpan() helpers across main.ts, settings.ts, view.ts
    and the modal modules.
  • Build now passes — npm run build (tsc + esbuild) succeeds: removed the
    @types/node ↔ setTimeout type conflict, fixed the emoji character-class regex
    (u flag + de-combined glyphs), and tightened unknown type narrowing.

TaskFlow 1.0.4 更新说明

本次为通过 Obsidian 社区插件中心审核而做的维护性更新,重点修复审核反馈并清理
构建 / lint 警告,不涉及用户可见的行为变更。

主要变更

  • 修复 3 处阻塞审核错误:将全部 innerHTML 注入 SVG 的做法改为安全的
    DOMParser + appendChild(新增 mountTrustedSvg 助手),移除了被判定为
    「无描述 directive 注释」/「禁止禁用 @microsoft/sdl/no-inner-html」的
    eslint 禁用注释。
  • 消除约 90 处 prefer-create-el 警告:将 document.createElement('div'|'span')
    与 .createEl('div'|'span') 统一迁移到 Obsidian 的 createDiv() / createSpan()
    助手(覆盖 main.ts、settings.ts、view.ts 及各弹窗模块)。
  • 构建通过:npm run build(tsc + esbuild)现已通过——移除了 @types/node
    与 setTimeout 的类型冲突、修正了 emoji 字符类的正则(u 标志 + 去组合字符)、
    收紧了 unknown 类型收窄。

1.0.3

Choose a tag to compare

@ichris007 ichris007 released this 25 Sep 11:44

v1.0.3 — 代码质量与合规性修复

本版本为 patch 更新,目标是让插件通过 Obsidian 官方审查的 ESLint 检查。

改动

  • ESLint:52 处问题(48 errors / 4 warnings)→ 0 errors / 0 warnings
  • 重新生成 main.js,构建正常
  • 5 个源文件修复:悬空 Promise 加 void、受信任 innerHTML 补禁用注释、any 改用最小接口、style.* 改 setCssProps、原生 confirm() 改 Obsidian 内置 ConfirmModal

唯一行为变更

  • 3 处 confirm() → Obsidian ConfirmModal(no-alert 规则要求),其余均为类型/样式注解,不影响运行时逻辑

已知说明

  • tsc --noEmit 仍有约 30 处基线报错,不在 ESLint 审查范围内,也不影响 esbuild 产出的 main.js,计划后续单独处理

v1.0.3 — Code Quality & Compliance Fixes

Patch release focused on passing Obsidian's official ESLint review.

Changes

  • ESLint: 52 issues (48 errors / 4 warnings) → 0 errors / 0 warnings
  • main.js regenerated, build succeeds
  • Fixes across 5 source files: void for dangling Promises, ESLint disable comments for trusted innerHTML, any replaced with minimal interfaces, style.* → setCssProps, native confirm() → Obsidian ConfirmModal

Only behavior change

  • 3 confirm() calls → Obsidian ConfirmModal (required by no-alert). Everything else is type/style annotation only.

Known notes

  • tsc --noEmit still reports ~30 baseline errors, outside ESLint scope and not affecting the esbuild main.js. Planned for a separate pass.

1.0.2

Choose a tag to compare

@ichris007 ichris007 released this 24 Sep 02:20

设置页布局健壮性修复

这是一个小版本更新,主要提升设置页在不同宿主容器下的布局稳定性。

改动内容:

styles.css — 为 .taskflow-setting-tab 根规则补充四条防御性声明,覆盖三种宿主容器布局:

width: 100% — 块级父级下照常撑满

flex: 1 1 auto — 行向 flex 父级下照常撑满

align-self: stretch — 列向 flex 且父级 align-items ≠ stretch 时兜底

min-width: 0 — 行向 flex 下允许收缩,避免溢出

同时保留 max-width: 720px + margin: 0 auto,设置页仍居中收口到 720px

entry.ts — 新增 6 条护栏,将上述四条声明与「保留 max-width」锁死,防止后续并行编辑时静默丢失

说明

本次改动对当前干净代码零风险,仅增强布局兼容性,不涉及功能变更。

Settings Tab Layout Robustness Fix

A small patch release focused on improving the settings tab's layout stability across different host containers.

Changes

styles.css — Added four defensive declarations to the .taskflow-setting-tab root rule, covering three host container layouts:

width: 100% — fills correctly under block-level parents

flex: 1 1 auto — fills correctly under row-direction flex parents

align-self: stretch — fallback for column-direction flex when parent align-items ≠ stretch

min-width: 0 — allows shrinking under row-direction flex to prevent overflow

Kept max-width: 720px + margin: 0 auto, so the settings tab stays centered and capped at 720px

entry.ts — Added 6 guardrails to lock in the four declarations above plus the "keep max-width" rule, preventing silent loss during parallel edits

Notes

Zero risk to the current clean codebase. This is a layout compatibility enhancement only — no functional changes.

TaskFlow: From Managing Tasks to Choosing Action

Choose a tag to compare

@ichris007 ichris007 released this 22 Sep 16:19
fe0c9f3

🎉 首个公开版本

TaskFlow 是一个建立在 Obsidian Tasks 之上的轻量行动工作台。

✨ 这个版本包含什么

  • 行动空间(Action Space) —— 在任务列表之上重新组织任务,从「管理有哪些事」转向「现在该做什么」
  • 三个筛选维度 —— GTD(下一步该做什么)、Time(今天该做什么)、Tag(这个场景下该做什么)
  • 完全兼容 Obsidian Tasks —— 沿用 Tasks 的语法、查询与渲染,无需迁移,不改变写任务的习惯
  • 轻量前端 —— 任务依然是一句话、依然写在笔记里,不需要为每个任务建一篇笔记
  • 可配置的展示 —— 简洁、灵活、面向行动的前端界面

关于 TaskFlow 与 Tasks、TaskNotes 的定位差异,详见 README 中的对比表格。


🎉 First Public Release

TaskFlow is a lightweight action workbench built on top of Obsidian Tasks.

✨ What's in this release

  • Action Space — Reorganizes tasks on top of your task lists, shifting from "managing what needs to be done" to "what to do now"
  • Three filtering dimensions — GTD (what's the next step), Time (what to do today), Tag (what fits this context)
  • Fully compatible with Obsidian Tasks — Uses Tasks' syntax, queries, and rendering. No migration, no change to how you write tasks
  • Lightweight front-end — Tasks stay as one-liners, written in your notes. No need to create a separate note for every task
  • Configurable display — A clean, flexible, action-oriented front-end interface

For a detailed comparison of TaskFlow vs. Tasks and TaskNotes, see the comparison table in the README.