diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-20 23:12:49 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-20 23:12:49 +0200 |
| commit | e2b7e0a4d85974f2dc1042f3398671fc4bfdd635 (patch) | |
| tree | 37907323655aa5d3922e61f39ae74f0c280f3ccd /pi/agent/extensions/taskwarrior-plan-mode | |
| parent | 129dcd81dd1a929b03ba88ad8bc2b852fefb39eb (diff) | |
mode on this
Diffstat (limited to 'pi/agent/extensions/taskwarrior-plan-mode')
| -rw-r--r-- | pi/agent/extensions/taskwarrior-plan-mode/README.md | 10 | ||||
| -rw-r--r-- | pi/agent/extensions/taskwarrior-plan-mode/index.ts | 29 |
2 files changed, 39 insertions, 0 deletions
diff --git a/pi/agent/extensions/taskwarrior-plan-mode/README.md b/pi/agent/extensions/taskwarrior-plan-mode/README.md index b280bcb..e75c4d5 100644 --- a/pi/agent/extensions/taskwarrior-plan-mode/README.md +++ b/pi/agent/extensions/taskwarrior-plan-mode/README.md @@ -31,6 +31,10 @@ todo list. Show started and `+READY` tasks for the current repo. - `/task-next [run]` Focus the started task, or start the next `+READY` task. +- `/task-exit` + Leave Taskwarrior focus mode. +- `/task-unfocus` + Alias for `/task-exit`. - `/work-on-tasks [strategy] [max]` Kick off the Taskwarrior execution loop aligned to the `taskwarrior-task-management` workflow. @@ -117,6 +121,12 @@ Focus and immediately start execution: /task-next run ``` +Leave focus mode again: + +```text +/task-exit +``` + Run the full repo task loop: ```text diff --git a/pi/agent/extensions/taskwarrior-plan-mode/index.ts b/pi/agent/extensions/taskwarrior-plan-mode/index.ts index 59a223e..0f8b12c 100644 --- a/pi/agent/extensions/taskwarrior-plan-mode/index.ts +++ b/pi/agent/extensions/taskwarrior-plan-mode/index.ts @@ -398,6 +398,21 @@ export default function taskwarriorPlanModeExtension(pi: ExtensionAPI): void { await setPlanModeEnabled(false, ctx); } + async function exitExecutionMode(ctx: ExtensionContext): Promise<void> { + if (!executionMode) { + ctx.ui.notify("Taskwarrior focus mode is not enabled.", "info"); + return; + } + + executionMode = false; + executionTaskUuid = undefined; + repeatedTaskLookups.clear(); + pi.setActiveTools(normalTools); + persistState(); + await updateStatus(ctx); + ctx.ui.notify("Taskwarrior focus mode disabled.", "info"); + } + async function createTasksFromPlan( mode: "sequential" | "independent", ctx: ExtensionContext, @@ -519,6 +534,20 @@ export default function taskwarriorPlanModeExtension(pi: ExtensionAPI): void { }, }); + pi.registerCommand("task-exit", { + description: "Leave Taskwarrior focus mode", + handler: async (_args, ctx) => { + await exitExecutionMode(ctx); + }, + }); + + pi.registerCommand("task-unfocus", { + description: "Alias for /task-exit", + handler: async (_args, ctx) => { + await exitExecutionMode(ctx); + }, + }); + pi.registerCommand("task-update", { description: "Replace a task description: /task-update <selector> :: <new description>", handler: async (args, ctx) => { |
