@taskset/cli 2.0.0 → 3.0.1

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
@@ -1,14 +1,54 @@
1
1
  # @taskset/cli
2
2
 
3
+ ## 3.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Generated metadata views no longer create redundant ID indexes, group timestamp
8
+ metadata by calendar date, and use readable filenames instead of URL-encoded
9
+ spaces or path separators.
10
+ - Updated dependencies
11
+ - @taskset/core@3.0.1
12
+
13
+ ## 3.0.0
14
+
15
+ ### Major Changes
16
+
17
+ - Remove repository config version fields and stop writing version fields to generated, cached, and snapshot metadata JSON. Config files now export a strict versionless object.
18
+
19
+ Generated metadata views now cover every supported task metadata field using field-name directories such as `assignees/`, `projects/`, `files/`, and `dueDate/`; stale generated output remains disposable and rebuildable with `taskset generate`.
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies
24
+ - @taskset/contracts@3.0.0
25
+ - @taskset/core@3.0.0
26
+
27
+ ## 2.1.0
28
+
29
+ ### Minor Changes
30
+
31
+ - 042a622: Add optional task `order` metadata for user-controlled sequencing. The CLI can
32
+ set, clear, and sort by order; core queries and generated views sort ordered
33
+ tasks first, place unordered tasks after them, and use task IDs as the
34
+ deterministic tie breaker.
35
+
36
+ ### Patch Changes
37
+
38
+ - Updated dependencies [042a622]
39
+ - @taskset/contracts@2.1.0
40
+ - @taskset/core@2.1.0
41
+
3
42
  ## 2.0.0
4
43
 
5
44
  ### Major Changes
6
45
 
7
46
  - bc302ef: Remove task metadata schema versions and use one strict versionless task file
8
- format. Task frontmatter containing `schemaVersion` is now invalid and must be
9
- converted by removing that field while preserving the remaining metadata and
10
- Markdown body. The old `taskset migrate --to 2` command and `migrateTasks`
11
- core API were removed because there is no longer a versioned migration target.
47
+ format. Task frontmatter containing the legacy version field is now invalid
48
+ and must be converted by removing that field while preserving the remaining
49
+ metadata and Markdown body. The old `taskset migrate --to 2` command and
50
+ `migrateTasks` core API were removed because there is no longer a versioned
51
+ migration target.
12
52
 
13
53
  ### Minor Changes
14
54
 
package/README.md CHANGED
@@ -24,8 +24,8 @@ queries. Repeated path values use OR, distinct filter categories use AND,
24
24
  repeated labels require every label, and planning or timestamp ranges are
25
25
  inclusive. Filters include
26
26
  `--estimate-min`/`--estimate-max`, `--effort-min`/`--effort-max`,
27
- `--duplicate`, and due/created/updated before/after bounds. `tasks-for-file`
28
- was removed.
27
+ `--duplicate`, `--sort order`, and due/created/updated before/after bounds.
28
+ `tasks-for-file` was removed.
29
29
 
30
30
  Exit code `0` means success, `1` means a repository or domain failure, and `2`
31
31
  means invalid CLI usage. Commands reserve stdout for requested output and send
@@ -36,5 +36,5 @@ diagnostics or generation warnings to stderr.
36
36
  ```typescript
37
37
  import { defineConfig } from '@taskset/cli'
38
38
 
39
- export default defineConfig({ schemaVersion: 1 })
39
+ export default defineConfig({})
40
40
  ```
package/dist/bin.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import { runCli } from "./cli.js";
2
+ import { runCli } from './cli.js';
3
3
  process.exitCode = await runCli(process.argv.slice(2));
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAiEA,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC;AAoYD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAmc/F"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAiEA,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC;AA8YD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAoc/F"}
package/dist/cli.js CHANGED
@@ -18,7 +18,7 @@ const USAGE = `Usage:
18
18
  taskset task delete <task-id> [--remove-dependencies] [--json] [--cwd <path>]
19
19
 
20
20
  Metadata options:
21
- --status --priority --owner --team --estimate --effort --risk --due-date
21
+ --status --priority --order --owner --team --estimate --effort --risk --due-date
22
22
  --label --assignee --reviewer --depends-on --related --duplicate
23
23
  --parent --file --directory --project --body
24
24
  Repeat array options. Update commands also accept matching --clear-* options.
@@ -57,6 +57,7 @@ const CreateValuesSchema = z.strictObject({
57
57
  title: TrimmedStringSchema,
58
58
  status: TaskStatusSchema.optional(),
59
59
  priority: TaskPrioritySchema.optional(),
60
+ order: z.coerce.number().finite().nonnegative().optional(),
60
61
  label: StringListSchema.optional(),
61
62
  'depends-on': TaskIdListSchema.optional(),
62
63
  file: StringListSchema.optional(),
@@ -79,6 +80,7 @@ const CreateValuesSchema = z.strictObject({
79
80
  });
80
81
  const UPDATE_CLEAR_PAIRS = [
81
82
  ['priority', 'clear-priority'],
83
+ ['order', 'clear-order'],
82
84
  ['label', 'clear-labels'],
83
85
  ['depends-on', 'clear-dependencies'],
84
86
  ['file', 'clear-files'],
@@ -101,6 +103,7 @@ const UpdateValuesSchema = z
101
103
  title: TrimmedStringSchema.optional(),
102
104
  status: TaskStatusSchema.optional(),
103
105
  priority: TaskPrioritySchema.optional(),
106
+ order: z.coerce.number().finite().nonnegative().optional(),
104
107
  label: StringListSchema.optional(),
105
108
  'depends-on': TaskIdListSchema.optional(),
106
109
  file: StringListSchema.optional(),
@@ -119,6 +122,7 @@ const UpdateValuesSchema = z
119
122
  project: StringListSchema.optional(),
120
123
  body: z.string().optional(),
121
124
  'clear-priority': z.boolean().optional(),
125
+ 'clear-order': z.boolean().optional(),
122
126
  'clear-labels': z.boolean().optional(),
123
127
  'clear-dependencies': z.boolean().optional(),
124
128
  'clear-files': z.boolean().optional(),
@@ -196,6 +200,7 @@ const metadataOptionDefinitions = {
196
200
  file: { type: 'string', multiple: true },
197
201
  label: { type: 'string', multiple: true },
198
202
  priority: { type: 'string' },
203
+ order: { type: 'string' },
199
204
  status: { type: 'string' },
200
205
  title: { type: 'string' },
201
206
  owner: { type: 'string' },
@@ -278,6 +283,11 @@ function updateInputFromValues(repository, values) {
278
283
  : values.priority !== undefined
279
284
  ? { priority: values.priority }
280
285
  : {}),
286
+ ...(values['clear-order']
287
+ ? { order: null }
288
+ : values.order !== undefined
289
+ ? { order: values.order }
290
+ : {}),
281
291
  ...(values['clear-labels']
282
292
  ? { labels: [] }
283
293
  : values.label !== undefined
@@ -499,6 +509,7 @@ export async function runCli(args, context = {}) {
499
509
  title: values.title,
500
510
  ...(values.status ? { status: values.status } : {}),
501
511
  ...(values.priority ? { priority: values.priority } : {}),
512
+ ...(values.order !== undefined ? { order: values.order } : {}),
502
513
  ...(values.label ? { labels: values.label } : {}),
503
514
  ...(values['depends-on'] ? { dependsOn: values['depends-on'] } : {}),
504
515
  ...(values.file ? { files: normalizeMutationPaths(repository, values.file) } : {}),
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export { defineConfig } from '@taskset/core';
2
- export { runCli } from "./cli.js";
2
+ export { runCli } from './cli.js';
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@taskset/cli",
3
3
  "type": "module",
4
4
  "private": false,
5
- "version": "2.0.0",
5
+ "version": "3.0.1",
6
6
  "description": "The scriptable command-line interface for Taskset.",
7
7
  "license": "MIT",
8
8
  "author": {
@@ -44,13 +44,13 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "zod": "4.4.3",
47
- "@taskset/contracts": "2.0.0",
48
- "@taskset/core": "2.0.0"
47
+ "@taskset/core": "3.0.1",
48
+ "@taskset/contracts": "3.0.0"
49
49
  },
50
50
  "devDependencies": {
51
- "@types/node": "^25.9.3",
52
- "typescript": "^6.0.3",
53
- "vitest": "^4.1.8",
51
+ "@types/node": "^26.2.0",
52
+ "typescript": "^7.0.2",
53
+ "vitest": "^4.1.11",
54
54
  "@taskset/configs": "0.1.1"
55
55
  },
56
56
  "scripts": {
package/src/cli.ts CHANGED
@@ -49,7 +49,7 @@ const USAGE = `Usage:
49
49
  taskset task delete <task-id> [--remove-dependencies] [--json] [--cwd <path>]
50
50
 
51
51
  Metadata options:
52
- --status --priority --owner --team --estimate --effort --risk --due-date
52
+ --status --priority --order --owner --team --estimate --effort --risk --due-date
53
53
  --label --assignee --reviewer --depends-on --related --duplicate
54
54
  --parent --file --directory --project --body
55
55
  Repeat array options. Update commands also accept matching --clear-* options.
@@ -105,6 +105,7 @@ const CreateValuesSchema = z.strictObject({
105
105
  title: TrimmedStringSchema,
106
106
  status: TaskStatusSchema.optional(),
107
107
  priority: TaskPrioritySchema.optional(),
108
+ order: z.coerce.number().finite().nonnegative().optional(),
108
109
  label: StringListSchema.optional(),
109
110
  'depends-on': TaskIdListSchema.optional(),
110
111
  file: StringListSchema.optional(),
@@ -128,6 +129,7 @@ const CreateValuesSchema = z.strictObject({
128
129
 
129
130
  const UPDATE_CLEAR_PAIRS = [
130
131
  ['priority', 'clear-priority'],
132
+ ['order', 'clear-order'],
131
133
  ['label', 'clear-labels'],
132
134
  ['depends-on', 'clear-dependencies'],
133
135
  ['file', 'clear-files'],
@@ -151,6 +153,7 @@ const UpdateValuesSchema = z
151
153
  title: TrimmedStringSchema.optional(),
152
154
  status: TaskStatusSchema.optional(),
153
155
  priority: TaskPrioritySchema.optional(),
156
+ order: z.coerce.number().finite().nonnegative().optional(),
154
157
  label: StringListSchema.optional(),
155
158
  'depends-on': TaskIdListSchema.optional(),
156
159
  file: StringListSchema.optional(),
@@ -169,6 +172,7 @@ const UpdateValuesSchema = z
169
172
  project: StringListSchema.optional(),
170
173
  body: z.string().optional(),
171
174
  'clear-priority': z.boolean().optional(),
175
+ 'clear-order': z.boolean().optional(),
172
176
  'clear-labels': z.boolean().optional(),
173
177
  'clear-dependencies': z.boolean().optional(),
174
178
  'clear-files': z.boolean().optional(),
@@ -250,6 +254,7 @@ const metadataOptionDefinitions = {
250
254
  file: { type: 'string', multiple: true },
251
255
  label: { type: 'string', multiple: true },
252
256
  priority: { type: 'string' },
257
+ order: { type: 'string' },
253
258
  status: { type: 'string' },
254
259
  title: { type: 'string' },
255
260
  owner: { type: 'string' },
@@ -371,6 +376,11 @@ function updateInputFromValues(
371
376
  : values.priority !== undefined
372
377
  ? { priority: values.priority }
373
378
  : {}),
379
+ ...(values['clear-order']
380
+ ? { order: null }
381
+ : values.order !== undefined
382
+ ? { order: values.order }
383
+ : {}),
374
384
  ...(values['clear-labels']
375
385
  ? { labels: [] }
376
386
  : values.label !== undefined
@@ -630,6 +640,7 @@ export async function runCli(args: readonly string[], context: CliContext = {}):
630
640
  title: values.title,
631
641
  ...(values.status ? { status: values.status } : {}),
632
642
  ...(values.priority ? { priority: values.priority } : {}),
643
+ ...(values.order !== undefined ? { order: values.order } : {}),
633
644
  ...(values.label ? { labels: values.label } : {}),
634
645
  ...(values['depends-on'] ? { dependsOn: values['depends-on'] } : {}),
635
646
  ...(values.file ? { files: normalizeMutationPaths(repository, values.file) } : {}),