taskchef 5.2.0 → 5.3.0
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/.codex-plugin/plugin.json +1 -1
- package/README.md +10 -6
- package/SPEC.md +4 -1
- package/package.json +1 -1
- package/src/cli.js +12 -4
package/README.md
CHANGED
|
@@ -356,17 +356,21 @@ taskchef task show t1
|
|
|
356
356
|
taskchef task list
|
|
357
357
|
taskchef task list --project payments
|
|
358
358
|
taskchef task list --ascending
|
|
359
|
+
taskchef task list --full-id
|
|
359
360
|
taskchef task summary
|
|
360
361
|
```
|
|
361
362
|
|
|
362
|
-
Human-readable task listings
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
363
|
+
Human-readable task listings include both the task ID and Codex thread ID.
|
|
364
|
+
UUID-shaped IDs use their first eight-character section by default; pass
|
|
365
|
+
`--full-id` to show both IDs in full. Null thread IDs appear as `-`, consistent
|
|
366
|
+
with other empty table cells. Tasks are newest-first by default; pass
|
|
367
|
+
`--ascending` to list them from oldest to newest. ID formatting does not alter
|
|
368
|
+
the complete values in `--json` output, and the selected order applies to its
|
|
369
|
+
`tasks` array.
|
|
366
370
|
|
|
367
371
|
```text
|
|
368
|
-
TITLE PROJECT CREATED ID
|
|
369
|
-
Add retry logs payments 2026-08-12T10:00:00.000Z c0f010ff
|
|
372
|
+
TITLE PROJECT CREATED ID THREAD ID
|
|
373
|
+
Add retry logs payments 2026-08-12T10:00:00.000Z c0f010ff 019f9d46
|
|
370
374
|
```
|
|
371
375
|
|
|
372
376
|
The complete data contract is in [SPEC.md](SPEC.md). Deferred ideas are in
|
package/SPEC.md
CHANGED
|
@@ -290,7 +290,10 @@ The CLI reads persisted history without contacting Codex:
|
|
|
290
290
|
- `task show <id>` returns one entry.
|
|
291
291
|
- `task list` returns entries newest-first by creation time, optionally filtered
|
|
292
292
|
by historical project name or exact path. `--ascending` returns oldest-first.
|
|
293
|
-
|
|
293
|
+
Human rows include task and thread ID columns, abbreviating UUID-shaped IDs
|
|
294
|
+
to their first eight-character section unless `--full-id` is passed. Null
|
|
295
|
+
thread IDs display as `-`. ID formatting does not alter JSON values, and the
|
|
296
|
+
selected order applies to both human rows and the JSON `tasks` array.
|
|
294
297
|
- `task summary` returns the total and per-project counts.
|
|
295
298
|
- `task resolve <id> --thread-id <thread-id>` atomically fills one nullable
|
|
296
299
|
thread ID after Codex verifies the exact structured marker match.
|
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -154,6 +154,12 @@ function sortTasksByCreatedAt(tasks, ascending) {
|
|
|
154
154
|
.map(({ task }) => task);
|
|
155
155
|
}
|
|
156
156
|
|
|
157
|
+
function displayId(value, fullId) {
|
|
158
|
+
if (fullId || value === null || value === undefined) return value;
|
|
159
|
+
const uuidSection = String(value).match(/^[0-9a-fA-F]{8}(?=-)/);
|
|
160
|
+
return uuidSection ? uuidSection[0] : value;
|
|
161
|
+
}
|
|
162
|
+
|
|
157
163
|
async function initialize(args) {
|
|
158
164
|
validateCommandArgs(args, 2, {
|
|
159
165
|
values: ["--workspace", "--codex-cli"],
|
|
@@ -315,20 +321,22 @@ async function taskShow(args) {
|
|
|
315
321
|
async function taskList(args) {
|
|
316
322
|
validateCommandArgs(args, 2, {
|
|
317
323
|
values: ["--workspace", "--project"],
|
|
318
|
-
switches: ["--ascending", "--json"],
|
|
324
|
+
switches: ["--ascending", "--full-id", "--json"],
|
|
319
325
|
});
|
|
320
326
|
const filtered = await filterTasks(workspaceRoot(args), {
|
|
321
327
|
project: option(args, "--project", null),
|
|
322
328
|
});
|
|
323
329
|
const dispatches = sortTasksByCreatedAt(filtered, args.includes("--ascending"));
|
|
324
330
|
const result = { taskCount: dispatches.length, tasks: dispatches };
|
|
331
|
+
const fullId = args.includes("--full-id");
|
|
325
332
|
print(result, args, (value) => table(
|
|
326
|
-
["TITLE", "PROJECT", "CREATED", "ID"],
|
|
333
|
+
["TITLE", "PROJECT", "CREATED", "ID", "THREAD ID"],
|
|
327
334
|
value.tasks.map((dispatch) => [
|
|
328
335
|
dispatch.title,
|
|
329
336
|
dispatch.project?.name,
|
|
330
337
|
dispatch.createdAt,
|
|
331
|
-
dispatch.id,
|
|
338
|
+
displayId(dispatch.id, fullId),
|
|
339
|
+
displayId(dispatch.threadId, fullId),
|
|
332
340
|
]),
|
|
333
341
|
));
|
|
334
342
|
return 0;
|
|
@@ -360,7 +368,7 @@ Usage:
|
|
|
360
368
|
taskchef task record [--json] [--workspace <path>]
|
|
361
369
|
taskchef task resolve <task-id> --thread-id <thread-id> [--json] [--workspace <path>]
|
|
362
370
|
taskchef task show <task-id> [--json] [--workspace <path>]
|
|
363
|
-
taskchef task list [--project <name-or-path>] [--ascending] [--json] [--workspace <path>]
|
|
371
|
+
taskchef task list [--project <name-or-path>] [--ascending] [--full-id] [--json] [--workspace <path>]
|
|
364
372
|
taskchef task summary [--json] [--workspace <path>]
|
|
365
373
|
|
|
366
374
|
Task record reads one JSON value from closed, non-interactive standard input.
|