| Age | Commit message (Collapse) | Author |
|
List, ready, all, info, and urgency commands now output JSON arrays
when --json is passed. This fixes pi agent-plan-mode extension which
expects JSON from ask but was getting human-readable tables.
Amp-Thread-ID: https://ampcode.com/threads/T-019d207c-b8e2-748d-af52-dd8f84fb2b32
Co-authored-by: Amp <amp@ampcode.com>
|
|
rc.confirmation=off
parseAddArgs now rejects args that start with '+'/'-' but contain spaces as
modifiers — those are description text, not tags (tags cannot have spaces).
This prevents agents from quoting tag+description together and having the tag
silently land in the task description with no tag applied.
Also removed the fallthrough that duplicated all-modifier args as description.
Added rc.confirmation=off to every taskwarrior invocation so that write
operations (done, delete, start, etc.) succeed non-interactively when stdin
is unavailable (as is always the case when called from an agent).
Bump version to v0.25.11.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
All ask commands now strip a leading "uuid:" prefix from user-supplied
UUID arguments before building the taskwarrior filter, so both bare UUIDs
and the "uuid:<value>" format work uniformly across annotate, start, stop,
done, modify, denotate, priority, tag, info, delete, and dep.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- lsp/handlers_completion.go: track collectFirstCompletion goroutine in
inflight WaitGroup (goroutine leak fix)
- lsp/transport.go: use %w instead of %v for error wrapping
- askcli/command_list.go: extract handleListWithFilters shared helper;
handleList/handleAll/handleReady are now single-liners
- askcli/command_list.go, urgency.go, dep.go: log ParseTaskExport errors
to stderr instead of returning 1 silently
- appconfig/config_load.go: rename 'any' variable to 'found' to avoid
shadowing the built-in identifier
- llm/provider.go: add explanatory comment for package-level registry
- integrationtests/ask_test.go: add //go:build integration tag; move
repoRoot init from init() to TestMain with diagnostic error message
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- command_dep.go handleDepAddRm: was passing uuid as a modification
argument (task modify <uuid> depends:...) which could modify ALL
agent tasks; now uses uuid:<uuid> as filter
- command_dep.go handleDepList: updated deprecated 'uuid <value>'
space syntax to canonical 'uuid:<uuid>' colon syntax
- command_info_add.go handleInfo: same space→colon fix for consistency
All mutation commands now uniformly use uuid:<uuid> as the filter
before the action verb.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- lsp/server.go: track request goroutines in inflight WaitGroup to
prevent use-after-close writes on shutdown
- lsp/llm_client_registry.go: acquire write lock before calling build()
to eliminate TOCTOU race on cache population
- lsp/handlers_codeaction.go: resolveSimplifyCodeAction now uses
PromptCodeActionSimplify{System,User} (was wrongly using rewrite prompts)
- askcli/taskexport.go: remove exported MustParseTaskExport to prevent
panic on malformed external input; move to unexported test helper
- cmd/ask/main.go: print error to stderr before os.Exit
- llm/{openai,ollama,openrouter}.go: add interface satisfaction assertions
- integrationtests/ask_test.go: replace type assertions with errors.As
for robust exec.ExitError unwrapping
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Taskwarrior expects the filter before the action verb. Commands like
'task start <uuid>' are invalid — the UUID must be part of the filter:
'task uuid:<uuid> start'. All mutation commands now use this pattern
consistently, matching how priority/tag/denotate already worked.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Use rc.verbose=new-uuid so taskwarrior prints "Created task <uuid>."
directly on stdout. Parse the UUID from that line instead of doing
a two-step numeric-ID lookup or falling back to an export call.
Removes ExtractUUIDFromOutput (which could leak numeric IDs) and
fetchUUIDByNumericID (the export fallback). Integration tests now
get the UUID straight from ask add output without any extra calls.
Also fixes TestMain_WiresDispatcher which expected "export" first
in args, but list now prepends status:pending filter.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Filters like +tag must come before the 'export' action in task
commands. Previously filters were appended after 'export' causing
'ask list +integrationtest' to fail.
|
|
Add status:pending filter to list command so it only shows pending
tasks, not completed or deleted ones. Use 'ask all' to see all tasks.
|
|
- handlePriority: use 'uuid:<uuid> modify priority:<level>' instead of 'priority <uuid> <level>'
- handleTag: use 'uuid:<uuid> modify +/-tag' instead of 'tag <uuid> +/-tag'
- handleDelete: use 'uuid:<uuid> delete' and pass stdin for confirmation
- handleDenotate: use 'uuid:<uuid> denotate <pattern>' instead of 'denotate <uuid> <pattern>'
- Add integration tests for all ask CLI subcommands
- Update unit tests to match new command argument formats
- createTask now uses task info to get UUID instead of export parsing
- parseTaskInfoText fixed to split tags by ', ' instead of whitespace
|
|
handleReady passes +READY filter to show actionable tasks only.
help text updated. tests updated.
|
|
- ask (no args) now behaves like ask list (active tasks sorted by priority/urgency)
- ask help: explicit help subcommand
- ask all: shows ALL tasks including completed/deleted (uses status:any)
- handleAll added in command_list.go, mirrors handleList with status:any
- Updated tests: help tests use explicit 'ask help', all subcommand added to reachability test
- Updated help text to document ask all
|
|
|
|
|
|
priority/urgency, format UUID table
|
|
|
|
descending, format as UUID table
|
|
modify, denotate
|
|
print UUID+success
|
|
|