diff options
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) => { |
