akm-cli 0.9.9-beta.1 → 0.9.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,7 +4,18 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
- ## [0.9.9-beta.1] - 2026-09-02
7
+ ## [0.9.10] - 2026-09-02
8
+
9
+ ### Fixed
10
+
11
+ - **`akm task history <id>` now filters to that task instead of silently
12
+ ignoring the positional id (#911).** `task run <id>` and `task explain <ref>`
13
+ take the id positionally, so `task history <id>` was the natural thing to
14
+ write, and it answered with every task's newest rows while exiting 0. A
15
+ positional id now means the same as `--id`; passing both with different
16
+ values is a usage error (exit 2) rather than a silent pick.
17
+
18
+ ## [0.9.9] - 2026-09-02
8
19
 
9
20
  ### Changed
10
21
 
@@ -289,9 +289,23 @@ const tasksRunCommand = defineCommand({
289
289
  });
290
290
  },
291
291
  });
292
+ /**
293
+ * #911: `task run <id>` and `task explain <ref>` take the id positionally, so
294
+ * `task history <id>` is the natural thing to write — and it used to be
295
+ * accepted and silently discarded, answering with every task's newest rows.
296
+ * A positional id now means the same as `--id`; giving both with different
297
+ * values is a usage error rather than a silent pick.
298
+ */
299
+ export function resolveTaskHistoryId(positional, flag) {
300
+ if (positional !== undefined && flag !== undefined && positional !== flag) {
301
+ throw new UsageError(`\`akm task history\` was given two task ids: "${positional}" and --id "${flag}". Pass one.`, "INVALID_FLAG_VALUE");
302
+ }
303
+ return flag ?? positional;
304
+ }
292
305
  const tasksHistoryCommand = defineJsonCommand({
293
306
  meta: { name: "history", description: "Show recent task run history" },
294
307
  args: {
308
+ task: { type: "positional", description: "Task id to filter to (same as --id)", required: false },
295
309
  id: { type: "string", description: "Filter to one task id" },
296
310
  limit: { type: "string", description: "Maximum rows to return (default 50)" },
297
311
  ...bundleArg,
@@ -299,7 +313,8 @@ const tasksHistoryCommand = defineJsonCommand({
299
313
  async run({ args }) {
300
314
  rejectRetiredTaskTargetFlag();
301
315
  const limit = parsePositiveIntFlag(args.limit ?? undefined);
302
- const result = await akmTasksHistory({ id: args.id, limit, target: args.bundle });
316
+ const id = resolveTaskHistoryId(args.task, args.id);
317
+ const result = await akmTasksHistory({ id, limit, target: args.bundle });
303
318
  output("task-history", result);
304
319
  },
305
320
  });
@@ -2472,7 +2472,7 @@ akm task add nightly --schedule "@daily" --command "akm improve" --disabled # r
2472
2472
  akm task add nightly --schedule "@daily" --command "akm improve" --force # overwrite an existing task id
2473
2473
  akm task run <id> # Execute now (what the scheduler calls)
2474
2474
  akm task explain <ref> # Read-only: declared inputs, target, schedule — spawns nothing
2475
- akm task history [--id <id>] [--limit <n>] # Recent runs from state.db
2475
+ akm task history [<id>] [--id <id>] [--limit <n>] # Recent runs from state.db (positional id == --id)
2476
2476
  akm task sync # Reconcile on-disk YAML with scheduler
2477
2477
  akm task sync --dry-run # Preview the reconcile — zero scheduler writes
2478
2478
  akm task sync --rebind # Also capture the current installed runtime
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akm-cli",
3
- "version": "0.9.9-beta.1",
3
+ "version": "0.9.10",
4
4
  "type": "module",
5
5
  "description": "akm (Agent Knowledge Manager) — a portable, local-first capability library for AI agents. Discover, load, share, and improve reusable skills, scripts, workflows, and knowledge across any shell-capable coding agent, including Claude Code, OpenCode, and Cursor.",
6
6
  "keywords": [