@kyaukyuai/linear-cli 2.8.2 → 2.9.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,29 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [2.9.1] - 2026-03-29
6
+
7
+ ### Fixed
8
+
9
+ - stabilized `issue update --comment --json` so the combined update-and-comment path returns reliably to callers and reports machine-readable partial-success details when only the comment step fails
10
+
11
+ ## [2.9.0] - 2026-03-28
12
+
13
+ ### Added
14
+
15
+ - added stdin / pipeline support to high-value issue write commands and documented the stdin policy for automation use
16
+ - added retry-safe relation semantics so repeated `issue relation add/delete` operations can return no-op success instead of failing
17
+ - added `--no-pager` compatibility support to `issue create`
18
+
19
+ ### Changed
20
+
21
+ - standardized confirmation bypass flags on destructive commands around `--yes`, while keeping legacy aliases for compatibility
22
+ - expanded agent-focused `--help` examples across automation-tier and major write commands
23
+
24
+ ### Fixed
25
+
26
+ - improved `-d/--description` parse failures to recommend `--description-file` or stdin for markdown content, and documented the same guidance in help and README
27
+
5
28
  ## [2.8.2] - 2026-03-24
6
29
 
7
30
  ### Added
package/README.md CHANGED
@@ -114,6 +114,18 @@ for automation consumers, auth and authorization failures now use exit code `4`,
114
114
 
115
115
  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.
116
116
 
117
+ destructive commands use `--yes` as the canonical confirmation-bypass flag. legacy `--force` and `--confirm` flags are still accepted where older workflows already depended on them.
118
+
119
+ for retry behavior, prefer treating write commands in three buckets:
120
+
121
+ - retry-safe set-style writes: `issue update` without `--comment`, plus relation add/delete
122
+ - non-idempotent writes: `issue create`, `issue comment add`, and `issue update --comment`
123
+ - resumable but non-idempotent batch writes: `issue create-batch`, which reports `error.details.createdIdentifiers` and `failedStep` on partial failure
124
+
125
+ when `issue update --comment --json` updates the issue but the follow-up comment fails, the command exits non-zero and includes `error.details.partialSuccess.issueUpdated = true` plus a standalone retry command for `issue comment add`.
126
+
127
+ For stdin and pipeline behavior, see [docs/stdin-policy.md](docs/stdin-policy.md).
128
+
117
129
  ## differences from upstream
118
130
 
119
131
  this fork is intentionally diverging from upstream in a few ways:
@@ -184,12 +196,14 @@ linear issue start # create/switch to issue branch and mark as started
184
196
  linear issue start ENG-123 --dry-run # preview the branch and target state
185
197
  linear issue create # create a new issue (interactive prompts)
186
198
  linear issue create -t "title" -d "description" # create with flags
199
+ cat description.md | linear issue create -t "title" --team ENG # read description from stdin
187
200
  linear issue create -t "title" --team ENG --json # emit machine-readable created issue data
188
201
  linear issue create -t "title" --team ENG --dry-run --json # preview the created issue payload
189
202
  linear issue create-batch --file ./issue-batch.json --json # create a parent issue and child issues from JSON
190
203
  linear issue create-batch --file ./issue-batch.json --dry-run --json # preview a batch without creating issues
191
204
  linear issue create --project "My Project" --milestone "Phase 1" # create with milestone
192
205
  linear issue update # update an issue (interactive prompts)
206
+ cat description.md | linear issue update ENG-123 --state started # read description from stdin
193
207
  linear issue update ENG-123 --due-date 2026-03-31 # set an issue due date
194
208
  linear issue update ENG-123 --clear-due-date # clear an issue due date
195
209
  linear issue update ENG-123 --assignee self --json # emit machine-readable updated issue data
@@ -200,6 +214,7 @@ linear issue delete # delete an issue
200
214
  linear issue comment list # list comments on current issue
201
215
  linear issue comment add # add a comment to current issue
202
216
  linear issue comment add ENG-123 "follow-up" # add a comment with positional body
217
+ printf "follow-up\n" | linear issue comment add ENG-123 # read comment body from stdin
203
218
  linear issue comment add -p <id> # reply to a specific comment
204
219
  linear issue comment add ENG-123 --body "follow-up" --json # emit created comment data
205
220
  linear issue comment add ENG-123 --body "follow-up" --dry-run --json # preview comment creation
@@ -209,11 +224,14 @@ linear issue relation delete ENG-123 blocked-by ENG-100 --json # emit machine-r
209
224
  linear issue relation delete ENG-123 blocked-by ENG-100 --dry-run --json # preview relation deletion
210
225
  linear issue relation list ENG-123 --json # emit dependency graph for an issue
211
226
  linear issue comment update <id> # update a comment
227
+ printf "reworded comment\n" | linear issue comment update <id> # read updated body from stdin
212
228
  linear issue commits # show all commits for an issue (jj only)
213
229
  linear issue parent ENG-123 --json # emit the parent issue, or null when absent
214
230
  linear issue children ENG-123 --json # emit child issues for decomposition workflows
215
231
  ```
216
232
 
233
+ For short inline text, `-d/--description` is fine. For Markdown content, prefer `--description-file <path>` or pipe content on stdin to avoid shell escaping issues.
234
+
217
235
  `issue create-batch` expects a JSON file shaped like:
218
236
 
219
237
  ```json
@@ -286,7 +304,7 @@ linear milestone update <milestoneId> --name "New Name" --dry-run # pr
286
304
  linear m update <milestoneId> --target-date "2026-04-15" # update target date
287
305
  linear milestone delete <milestoneId> # delete a milestone
288
306
  linear milestone delete <milestoneId> --dry-run # preview a milestone delete
289
- linear m delete <milestoneId> --force # delete without confirmation
307
+ linear m delete <milestoneId> --yes # delete without confirmation
290
308
  ```
291
309
 
292
310
  ### document commands
@@ -23,7 +23,7 @@
23
23
  "hasInstallScript": true,
24
24
  "license": "MIT",
25
25
  "name": "@kyaukyuai/linear-cli",
26
- "version": "2.8.2"
26
+ "version": "2.9.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.8.2"
545
+ "version": "2.9.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.8.2"
3
+ "https://github.com/kyaukyuai/linear-cli/releases/download/v2.9.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.8.2",
88
+ "version": "2.9.1",
89
89
  "volta": {
90
90
  "node": "18.14.1",
91
91
  "npm": "9.5.0"