Repository navigation
Releases
TaskPlanner 3.0.12
TaskPlanner 3.0: the Claude Code band always shows what to work on next, one folder per host on a shared core, a smaller MCP surface and the known defects fixed.
- The extension is called TaskPlanner again in the marketplaces, the activity bar and its views, instead of Task → Plan → AI. Its ID stays
refined.taskplanner, so installs update in place (TASK-076). - The Initialize Project and Setup buttons in the empty task list did nothing: the webview's script policy blocked their inline handlers. They work again (TASK-076).
Upgrading from 2.x
- Your
.tasks/files andconfig.jsonneed no change. - Update the plugin where you use it. In Claude Code, run
/plugin updateor use Plugins in the Desktop app. In Cursor and Codex, update it from their plugin list. It keeps its name, so nothing needs reinstalling. - Then ask the agent to update TaskPlanner, or run the
update-taskplannerskill. It refreshes the managed instruction blocks, and for 3.0 it checks two things:- A duplicate MCP server. A project
.mcp.jsonthat runsnpx @smekai/taskplannernext to the installed plugin makes Claude see the tools twice; the skill offers to remove that entry. - The removed
taskplanner_board_datatool. It lists any remaining mentions and suggeststaskplanner_boardortaskplanner_board_visualinstead.
- A duplicate MCP server. A project
- Without a plugin, a
.mcp.jsonentry for@smekai/taskplannerkeeps working and picks up 3.0 from npm.
Added
- The Claude Code band above the prompt no longer goes blank when nothing is in progress: it shows the highest-priority Next task, or Backlog task when Next is empty, with a Start button. In a folder without a board, the band and the pane offer Set up, so a freshly installed plugin shows itself (TASK-072).
Fixed
- The VS Code extension package no longer includes repository configuration that leaked into it, such as a local
.claude/settings.local.json,.github/, agent instruction files and test configs (TASK-073). - A move that failed halfway could lose the task: it was already gone from its old state when writing the new one failed (seen on Windows as
EPERM). The new state is now written first, each write uses its own temporary file, and a rename Windows refuses while the file is held open is retried (TASK-075). - Creating a task through the MCP server reads only the state it goes into again, so an unreadable file elsewhere on the board no longer blocks it (TASK-075).
- The Claude Code band names the state of the task it suggests: a Backlog task reads Backlog · …, not Next · … (TASK-077).
- A build whose MCP board failed to compile now fails, instead of shipping the previous board in every plugin (TASK-077).
- A state file whose content would not change is no longer rewritten, and a failed write no longer leaves a
.tmpfile in.tasks/(TASK-077).
Changed
- Repository layout: one folder per harness on a shared core. Paths moved:
mcp/for the MCP server and npm package, andviews/vscode,views/mcp-app,views/claude,views/cursor,views/codex. The Claude Code, Cursor and Codex plugins are now separate folders, each with its own skills. Behaviour is unchanged, and installed plugins keep their name (TASK-073).
Removed
- Breaking for direct MCP callers: the
taskplanner_board_datatool is gone. It returned the same board astaskplanner_board_visual, which now takes itsquery,include_completedandlimitand is what the board app refreshes through. Agents usetaskplanner_boardfor an overview (TASK-074).
TaskPlanner 2.5.0
Added
-
TaskPlanner is now a Claude Code plugin:
/plugin install taskplanner --marketplace smekai/taskplanner. Then/taskplanner:board(or/taskboard) opens a live board pane in the Claude Desktop Code tab and the terminal. From it you can browse tasks per state, move them to another state, create new ones, start one with Claude, or draft an edit in the prompt. A band above the prompt shows the task in progress (TASK-070). -
A shared
boardskill shows the board in Cursor and Codex as well (TASK-070). -
The MCP server also finds the project from
CLAUDE_PROJECT_DIR, so a server Claude Code starts for the plugin resolves the workspace withoutworkspace_root(TASK-070). -
openBoard(tasksDir, { initialize })andboardExistsopen or create a board in one call, defaulting to a read that does not rewrite the owner'sconfig.json. The MCP server now uses it too (TASK-069). -
TaskStore.findTaskByAttributefinds a task by an attribute a consumer wrote, andTaskStore.knownTaskIdsanswers whether an id is spent across the board and the archive (TASK-069). -
renderWorkLogEntryandFileStore.prependWorkLogEntrywrite a work-log entry in the shape the generated instructions have always described (TASK-069). -
renderBoardDigestrenders a board as text for an agent;taskplanner_boardnow uses it instead of its own copy (TASK-069). -
endsTaskSection(text)is exported, so a consumer can ask whether text would end a task section instead of copying the serializer's rule (TASK-067). -
ConfigManager.isConfigUnreadable()distinguishes aconfig.jsonnobody could read from one that was merely migrated, so a consumer can refuse to write defaults over it (TASK-067).
Fixed
npm run packagewrites the.vsixagain: the build no longer deletes the packaged release artifacts underdist/vscode/anddist/codex/while clearing its own output (TASK-068).- The published package no longer ships type declarations for modules that were deleted, because the build now clears its output directories first (TASK-067).
reloadFromDisk()no longer keeps reporting a config as unreadable after the file it could not read is gone; a reload with noconfig.jsonnow means the same as a load with none (TASK-067).
Security
- Dependency audit is clean again:
js-yaml4.3.2 (dev-only, GHSA-2883-xcg3-v3hh) andqs6.16.0 (GHSA-x5fp-wj9c-mxmx, GHSA-4mjr-xmp4-gh2g) (TASK-066).