@kyaukyuai/linear-cli 2.7.1 → 2.8.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
@@ -2,6 +2,26 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [2.8.1] - 2026-03-24
6
+
7
+ ### Added
8
+
9
+ - added `--dry-run` support to `issue start` so agents and scripts can preview branch naming and target state transitions before mutating Linear or local VCS state
10
+
11
+ ## [2.8.0] - 2026-03-24
12
+
13
+ ### Added
14
+
15
+ - added a shared `--dry-run` contract and preview output for automation-safe write workflows
16
+ - added `--dry-run` support to issue, project, milestone, document, and webhook write commands
17
+ - added Automation Contract v2 coverage for `project list/view --json`
18
+ - added Automation Contract v2 coverage for `cycle list/view/current/next --json`
19
+ - added Automation Contract v2 coverage for `milestone list/view --json`
20
+
21
+ ### Changed
22
+
23
+ - structured `issue create-batch --json` partial-failure responses with created identifiers, retry hints, and failure-step metadata for safer retries
24
+
5
25
  ## [2.7.1] - 2026-03-23
6
26
 
7
27
  ### Added
package/README.md CHANGED
@@ -100,15 +100,18 @@ compared to upstream, this fork adds and maintains several capabilities aimed at
100
100
  - workspace-aware auth management with keyring migration and default workspace support
101
101
  - generated AI-agent skill docs, Claude plugin metadata, npm publishing, and Homebrew tap release plumbing
102
102
 
103
- ## automation contract v1
103
+ ## automation contract
104
104
 
105
105
  for bot and org-wide automation use cases, `linear-cli` defines a stable JSON contract for a focused automation tier.
106
106
 
107
- - in scope: `issue list/view/create/update --json`, `issue relation add/delete/list --json`, `issue comment add --json`, `team members --json`, `issue parent/children/create-batch --json`
107
+ - v1 in scope: `issue list/view/create/update --json`, `issue relation add/delete/list --json`, `issue comment add --json`, `team members --json`, `issue parent/children/create-batch --json`
108
+ - v2 additions: `project list/view --json`, `cycle list/view/current/next --json`, `milestone list/view --json`
108
109
  - out of scope: non-JSON terminal output, `linear api`, and other `--json` commands that are not listed above
109
110
 
110
111
  the contract fixes top-level success payload shapes and requires machine-readable failure payloads for the automation tier. see [docs/json-contracts.md](docs/json-contracts.md) for the full contract, compatibility rules, and example payloads. that guarantee also covers parser and argument validation failures when `--json` is present.
111
112
 
113
+ the same document also defines the shared preview contract for future `--dry-run` write commands. those commands are not all implemented yet, but the contract now fixes the expected `stdout`, `exit code`, and `--json --dry-run` envelope shape ahead of rollout.
114
+
112
115
  ## differences from upstream
113
116
 
114
117
  this fork is intentionally diverging from upstream in a few ways:
@@ -176,16 +179,20 @@ linear issue list --parent ENG-100 --json # filter sub-issues of a parent issue
176
179
  linear issue list -w # open issue list in web browser
177
180
  linear issue list -a # open issue list in Linear.app
178
181
  linear issue start # create/switch to issue branch and mark as started
182
+ linear issue start ENG-123 --dry-run # preview the branch and target state
179
183
  linear issue create # create a new issue (interactive prompts)
180
184
  linear issue create -t "title" -d "description" # create with flags
181
185
  linear issue create -t "title" --team ENG --json # emit machine-readable created issue data
186
+ linear issue create -t "title" --team ENG --dry-run --json # preview the created issue payload
182
187
  linear issue create-batch --file ./issue-batch.json --json # create a parent issue and child issues from JSON
188
+ linear issue create-batch --file ./issue-batch.json --dry-run --json # preview a batch without creating issues
183
189
  linear issue create --project "My Project" --milestone "Phase 1" # create with milestone
184
190
  linear issue update # update an issue (interactive prompts)
185
191
  linear issue update ENG-123 --due-date 2026-03-31 # set an issue due date
186
192
  linear issue update ENG-123 --clear-due-date # clear an issue due date
187
193
  linear issue update ENG-123 --assignee self --json # emit machine-readable updated issue data
188
194
  linear issue update ENG-123 --state started --comment "Work has started" # update and comment in one command
195
+ linear issue update ENG-123 --state started --comment "Work has started" --dry-run # preview issue updates
189
196
  linear issue update ENG-123 --milestone "Phase 2" # set milestone on existing issue
190
197
  linear issue delete # delete an issue
191
198
  linear issue comment list # list comments on current issue
@@ -193,8 +200,11 @@ linear issue comment add # add a comment to current issue
193
200
  linear issue comment add ENG-123 "follow-up" # add a comment with positional body
194
201
  linear issue comment add -p <id> # reply to a specific comment
195
202
  linear issue comment add ENG-123 --body "follow-up" --json # emit created comment data
203
+ linear issue comment add ENG-123 --body "follow-up" --dry-run --json # preview comment creation
196
204
  linear issue relation add ENG-123 blocked-by ENG-100 --json # emit machine-readable relation creation data
205
+ linear issue relation add ENG-123 blocked-by ENG-100 --dry-run --json # preview relation creation
197
206
  linear issue relation delete ENG-123 blocked-by ENG-100 --json # emit machine-readable relation deletion data
207
+ linear issue relation delete ENG-123 blocked-by ENG-100 --dry-run --json # preview relation deletion
198
208
  linear issue relation list ENG-123 --json # emit dependency graph for an issue
199
209
  linear issue comment update <id> # update a comment
200
210
  linear issue commits # show all commits for an issue (jj only)
@@ -220,6 +230,8 @@ linear issue children ENG-123 --json # emit child issues for decomposition work
220
230
  }
221
231
  ```
222
232
 
233
+ `issue create-batch` creates the parent first and then creates each child in order. If a later child fails, already created issues are not rolled back. Use `--dry-run --json` to preview the plan first. In `--json` mode, partial failures include `error.details.createdIdentifiers` and `error.details.failedStep` so automation can resume from the remaining work instead of rerunning the same batch unchanged.
234
+
223
235
  ### team commands
224
236
 
225
237
  ```bash
@@ -231,11 +243,26 @@ linear team create # create a new team
231
243
  linear team autolinks # configure GitHub repository autolinks for Linear issues
232
244
  ```
233
245
 
246
+ ### cycle commands
247
+
248
+ ```bash
249
+ linear cycle list --team ENG
250
+ linear cycle list --team ENG --json # emit cycle summaries for automation
251
+ linear cycle view "Sprint 42" --team ENG --json # emit detailed cycle payload
252
+ linear cycle current --team ENG --json # emit active cycle or null
253
+ linear cycle next --team ENG --json # emit next cycle or null
254
+ ```
255
+
234
256
  ### project commands
235
257
 
236
258
  ```bash
237
259
  linear project list # list projects
238
- linear project view # view project details
260
+ linear project list --json # emit contract-stable project summaries
261
+ linear project view <projectIdOrSlug> # view project details
262
+ linear project view <projectIdOrSlug> --json # emit contract-stable project details
263
+ linear project create --name "Platform Refresh" --team ENG --dry-run --json # preview a project create
264
+ linear project update <projectIdOrSlug> --name "Platform Refresh" --dry-run # preview a project update
265
+ linear project delete <projectIdOrSlug> --dry-run # preview a project deletion
239
266
  linear project label add <projectIdOrSlug> <labelNameOrId> # attach a project label
240
267
  linear project label remove <projectIdOrSlug> <labelNameOrId> # detach a project label
241
268
  ```
@@ -244,14 +271,19 @@ linear project label remove <projectIdOrSlug> <labelNameOrId> # detach a projec
244
271
 
245
272
  ```bash
246
273
  linear milestone list --project <projectId> # list milestones for a project
274
+ linear milestone list --project <projectId> --json # emit contract-stable milestone summaries
247
275
  linear m list --project <projectId> # list milestones (alias)
248
276
  linear milestone view <milestoneId> # view milestone details
277
+ linear milestone view <milestoneId> --json # emit contract-stable milestone details
249
278
  linear m view <milestoneId> # view milestone (alias)
250
279
  linear milestone create --project <projectId> --name "Q1 Goals" --target-date "2026-03-31" # create a milestone
280
+ linear milestone create --project <projectId> --name "Q1 Goals" --dry-run # preview a milestone create
251
281
  linear m create --project <projectId> # create a milestone (interactive)
252
282
  linear milestone update <milestoneId> --name "New Name" # update milestone name
283
+ linear milestone update <milestoneId> --name "New Name" --dry-run # preview a milestone update
253
284
  linear m update <milestoneId> --target-date "2026-04-15" # update target date
254
285
  linear milestone delete <milestoneId> # delete a milestone
286
+ linear milestone delete <milestoneId> --dry-run # preview a milestone delete
255
287
  linear m delete <milestoneId> --force # delete without confirmation
256
288
  ```
257
289
 
@@ -278,17 +310,20 @@ linear document create --title "My Doc" --content "# Hello" # inline c
278
310
  linear document create --title "Spec" --content-file ./spec.md # from file
279
311
  linear document create --title "Doc" --project <projectId> # attach to project
280
312
  linear document create --title "Notes" --issue TC-123 # attach to issue
313
+ linear document create --title "Spec" --content "# Draft" --dry-run # preview a document create
281
314
  cat spec.md | linear document create --title "Spec" # from stdin
282
315
 
283
316
  # update a document
284
317
  linear document update <slug> --title "New Title" # update title
285
318
  linear document update <slug> --content-file ./updated.md # update content
286
319
  linear document update <slug> --edit # open in $EDITOR
320
+ linear document update <slug> --title "New Title" --dry-run # preview a document update
287
321
 
288
322
  # delete a document
289
323
  linear document delete <slug> # soft delete (move to trash)
290
324
  linear document delete <slug> --permanent # permanent delete
291
325
  linear document delete --bulk <slug1> <slug2> # bulk delete
326
+ linear document delete <slug> --dry-run # preview a document delete
292
327
  ```
293
328
 
294
329
  ### notification commands
@@ -313,8 +348,11 @@ linear webhook list
313
348
  linear webhook list --team ENG
314
349
  linear webhook view <webhookId>
315
350
  linear webhook create --url https://example.com/linear --resource-types Issue,Comment
351
+ linear webhook create --url https://example.com/linear --resource-types Issue,Comment --dry-run --json
316
352
  linear webhook update <webhookId> --disabled
353
+ linear webhook update <webhookId> --disabled --dry-run --json
317
354
  linear webhook delete <webhookId> --yes
355
+ linear webhook delete <webhookId> --dry-run --json
318
356
  linear webhook list --json
319
357
  ```
320
358
 
@@ -23,7 +23,7 @@
23
23
  "hasInstallScript": true,
24
24
  "license": "MIT",
25
25
  "name": "@kyaukyuai/linear-cli",
26
- "version": "2.7.1"
26
+ "version": "2.8.1"
27
27
  },
28
28
  "node_modules/@isaacs/cliui": {
29
29
  "engines": {
@@ -542,5 +542,5 @@
542
542
  }
543
543
  },
544
544
  "requires": true,
545
- "version": "2.7.1"
545
+ "version": "2.8.1"
546
546
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "artifactDownloadUrls": [
3
- "https://github.com/kyaukyuai/linear-cli/releases/download/v2.7.1"
3
+ "https://github.com/kyaukyuai/linear-cli/releases/download/v2.8.1"
4
4
  ],
5
5
  "bin": {
6
6
  "linear": "run-linear.js"
@@ -85,7 +85,7 @@
85
85
  "zipExt": ".tar.xz"
86
86
  }
87
87
  },
88
- "version": "2.7.1",
88
+ "version": "2.8.1",
89
89
  "volta": {
90
90
  "node": "18.14.1",
91
91
  "npm": "9.5.0"