Releases: kaimys/obsidian-dispatch
Release list
0.2.5
The agent release
Dispatch 0.2.5 is now available, with full Codex support as its headline feature. You can use the same skills with both Claude Code and Codex, then choose which coding agent to launch from the confirmation dialog shown below. The dispatch-setup skill is also available through both agent plugin marketplaces.
The canonical skill set included with Dispatch now also includes /code-review. This lets you run a code review with a different agent and model from the ones used to write the code, providing an independent perspective that can produce a more rigorous review.
Dispatch skills now live in a dedicated /dispatch folder in your repository. References in .claude, .codex, CLAUDE.md, and AGENTS.md point to the corresponding skills in that folder, so a skill change is automatically available to both agents.
Codex is a first-class chip tool
Chips can now dispatch Codex as well as Claude Code, through every install
route — the Claude plugin marketplace, the Codex marketplace, and the Codex
skill installer. In a multi-agent setup the board offers one neutral chip per
workflow intent and keeps the agent-specific / or $ prefix in device-local
configuration, so the same menu entry launches either agent.
A code-review chip on the card
/code-review <id> launches from the ticket card. The point is not
convenience: a chip launch is a fresh session by construction, and "the
reviewer is not the author" is the one precondition a review cannot fake. Cards
also gained a blocking-findings counter beside the existing questions and tests
badges.
The skills catalog describes what you actually get
The setup skill scaffolds nine workflow commands; the documentation still
claimed Dispatch shipped none, and mixed those defaults with examples that were
never shipped.
Install and setup
Every install document now says what is true — Dispatch is in the Obsidian
community plugin directory, and the quick start no longer routes people through
a manual file copy.
A wiki and its code repository are now paired by configuration rather than by
folder nesting and symlinks, so the two no longer have to live inside one
another on disk.
Google Meet transcripts import themselves
Meeting summaries and transcripts no longer have to be downloaded by hand and
dropped into a sources folder before a meeting report can run.
Fixes
The milestone forecast was pessimistic on young boards. Velocity was
divided by the full look-back window even when the board had only been
collecting completions for a fraction of it, so a new board reported a fraction
of its real throughput and every version forecast inherited the error.
New tickets no longer claim a refinement nobody did. The starter ticket
templates seeded open_questions: 0, so every ticket created from one rendered
a green counter badge and met the development gate before anyone had refined
it. All three gated counters now ship empty, and a counter reads 0 only where
the section it counts records that the count was taken. This changes what a new
ticket looks like — nothing rewrites tickets that already exist.
Security
The community directory's security review is answered, and the open advisories
are cleared.
One recommendation was deliberately not taken: removing the plugin's
clipboard write. It backs one convenience button, the reach it costs is a
single documented call, and the review's concern is answered directly instead.
Upgrading
No migration and no configuration change. minAppVersion stays at 1.7.2.
Download main.js, manifest.json and styles.css below into
<vault>/.obsidian/plugins/dispatch/, or install Dispatch from Obsidian's
community plugin directory. Desktop only.
Full changelog: 0.2.4...0.2.5
0.2.4
The settings tab has its input fields back
0.2.3 shipped a settings tab that rendered no input controls on Obsidian
1.13 or later: every setting appeared as a name and a description with nothing
to type into. Legible, and completely inert. If you are on 1.13+, upgrade —
there is no workaround short of editing data.json by hand.
Fixes #5
What happened
Obsidian 1.13 renders a settings tab from getSettingDefinitions() and stops
calling display() as soon as that array comes back non-empty. 0.2.3 added
getSettingDefinitions() to feed the new settings search with names and
descriptions only, on the assumption that display() would carry on rendering
— so all 37 rows arrived without their controls. Below 1.13 the API does not
exist, display() still ran, and the tab worked, which is why it passed
testing against minAppVersion 1.7.2 and shipped broken to everyone above it.
Introduced in https://github.com/kaimys/obsidian-dispatch/releases/tag/0.2.3 —
that release note claimed rendering was unchanged on 1.13+. It was not, and
this is the correction.
No settings were lost. data.json and the device-local config kept their
values and the board kept reading them throughout; only editing from the UI was
affected.
The trade-off
Dispatch is invisible to Obsidian's 1.13+ settings search again, which is the
feature 0.2.3 was reaching for. Keeping it would mean porting all 37 settings
to declarative control/render definitions and raising minAppVersion
to 1.13, dropping every user below it. That is a deliberate decision rather
than a lint fix, and it is not scheduled.
minAppVersion stays at 1.7.2. Nothing else changes: no migration, no
configuration change, no behaviour change outside the settings tab.
Install
Download main.js, manifest.json and styles.css below into
<vault>/.obsidian/plugins/dispatch/, or install Dispatch from Obsidian's
community plugin directory. Requires Obsidian 1.7.2+. Desktop only.
Full changelog: 0.2.3...0.2.4
0.2.3
A first-run release, plus the cleanup behind the Caution badge on the community
listing. Nothing about an existing, configured board changes.
New
The board tells you how to set it up. An unconfigured board used to say
"configure source folders in Settings" — accurate, and no help at all to
someone who had just installed from the community directory. It now explains
what setup involves and offers to hand the job to an agent: a Set up with
claude button that starts Claude Code in your vault folder with the right
prompt, and a Copy the prompt button for pasting into an agent you already
have open.
The prompt carries its own bootstrap — the two /plugin lines that install the
dispatch-setup skill — so the button works before you have installed
anything. Only Windows ships a default launch command, so on macOS and Linux
the button explains itself instead of failing, and copying the prompt does the
same job.
Settings are searchable on Obsidian 1.13+. getSettingDefinitions() now
publishes every setting's name and description to the settings search.
Rendering is unchanged, so 1.7.2 keeps working exactly as before.
Fixes
lib was two years behind the code. tsconfig declared ES2018 while the
source uses Object.fromEntries and String.matchAll. It only compiled
because @types/node happens to reference newer lib files — remove that
devDependency and the build fails. Now ES2020, which is what the runtime has
always needed.
Under the hood
Every Node import moved into one module, src/node.ts, which narrows them into
hand-written signatures. The community-directory review type-checks the plugin
with Obsidian's typings but without @types/node, so child_process, fs,
os and path were untyped there and the listing carried ~60 unsafe-any
warnings. None of them were defects — with the types present the same ruleset
reports nothing — but the listing is what people read. Its ruleset now reports
one informational warning instead of sixty, and npm run lint:review
reproduces that environment so it cannot drift back unnoticed.
111 tests, up from 88. The new ones cover the setup panel, the Node boundary
(the assertions bypass the compiler, so something has to check them), and the
settings search index against what the settings tab actually renders.
Install
Download main.js, manifest.json and styles.css below into
<vault>/.obsidian/plugins/dispatch/, or install Dispatch from Obsidian's
community plugin directory. Requires Obsidian 1.7.2+. Desktop only.
0.2.2 Fixed issues from the Obsidian review
A correctness release. Everything user-facing from 0.2.0 is unchanged;
this fixes what the plugin promised and what it displayed.
Fixes
Declares the Obsidian version it actually needs. The manifest claimed
1.5.0 while the board uses workspace.revealLeaf, which arrived in 1.7.2 —
so on an older app the board could fail to open. minAppVersion is now 1.7.2.
Frontmatter can no longer leak [object Object]. A property holding a
nested object — easy to produce by accident in YAML — used to reach four
places as that literal string: a card badge, a slice-bar chip (where it also
became its own filter bucket), the {{id}} variable passed to an agent, and
the property editor. Values now render through one rule: scalars show, lists
show their items, anything unreadable shows nothing.
Under the hood
The board logic moved out of the view into three tested modules — card
building, release indexing and problem detection (cards.ts), the drag write
path (moves.ts), and the parsing rules (parse.ts) — with the Obsidian
API's untyped frontmatter confined to a single boundary (vault.ts).
88 tests now run against a fixture wiki of deliberately imperfect notes: a
forgotten id, a status typo, an unrendered template placeholder, one release
written three ways, counters typed as strings, bold labels that look like
owners but aren't. Every drag outcome is covered, including the ones that must
write nothing.
Install
Download main.js, manifest.json and styles.css below into
<vault>/.obsidian/plugins/dispatch/, or use BRAT.
Requires Obsidian 1.7.2+. Desktop only.
0.2.0 initial public release
Dispatch turns a folder of markdown notes into a live project board — and every
card on it into a launcher for a coding agent.
Highlights
Todos tab — every open action item, in one place. Unchecked - [ ] lines
from allowlisted sections across your meeting notes and tickets, in two columns:
Assigned (anything with a named owner) and Team for shared work nobody
owns yet. Slice the assigned column to one person; the Team column always stays
visible. Clicking an item deep-links into the note at that exact line — ticking
happens in the document, where the context lives.
Meetings: your calendar in the board. Point Dispatch at a Google Calendar
secret ICS address and upcoming events render as meeting cards above the past
ones, with recurrence expanded and an optional title filter. An event whose date
already has a note links to it ("agenda ✓"); the rest say "no agenda yet".
Calendar cards get their own chips with {{date}} and {{title}}, so
"prepare the agenda" is a right-click.
Release Plan (renamed from Milestones). A + on a version line expands it
into one column per patch release — 1.4 becomes 1.4.0, 1.4.1, 1.4.2 —
each with its own progress bar, drop target and release note; − collapses it
again. The slice bar now also slices by status, ordered by your pipeline
rather than alphabetically, which answers "what in this release is still in
refinement?"
Batch chips on column headers. Click a Kanban column header to run one agent
session through every ticket in it, with {{ids}}, {{status}} and {{count}}
available to the prompt.
A setup skill that does the work. /plugin install dispatch-setup in Claude
Code now installs the plugin from GitHub releases, scans an existing vault to
pre-fill the interview instead of asking cold questions, scaffolds an
agent-friendly wiki when there isn't one, and proposes the workflow skills for
your code repo.
Fixes
- Meetings: today's meeting no longer appears twice (calendar card and note row).
- Meetings: an upcoming card links to the note whose title matches, not the
first note sharing that date. - Todos: a bold section header always resets owner attribution, so
**Team**
items stop inheriting the person named above them. - Todos: only names on your configured assignee list count as owners — a bold
prefix like**US00055:**or**Friday:**stays item text. - Calendar chips appear on right-click only, instead of cluttering every card.
Documentation
The README is now a front page; the reference lives in docs/ across five
pages: the four boards, the wiki structure the plugin was built against
(including the immutable sources layer), the frontmatter contract per page type,
a workflow-skill catalog, and installation — plus the on-disk shapes of
data.json and the device config, for when an agent writes them directly.
Install
Download main.js, manifest.json and styles.css below into
<vault>/.obsidian/plugins/dispatch/, or use BRAT.
Requires Obsidian 1.5.0+. Desktop only — chips spawn local processes.