@kyaukyuai/linear-cli 2.8.1 → 2.9.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/CHANGELOG.md CHANGED
@@ -2,6 +2,33 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [2.9.0] - 2026-03-28
6
+
7
+ ### Added
8
+
9
+ - added stdin / pipeline support to high-value issue write commands and documented the stdin policy for automation use
10
+ - added retry-safe relation semantics so repeated `issue relation add/delete` operations can return no-op success instead of failing
11
+ - added `--no-pager` compatibility support to `issue create`
12
+
13
+ ### Changed
14
+
15
+ - standardized confirmation bypass flags on destructive commands around `--yes`, while keeping legacy aliases for compatibility
16
+ - expanded agent-focused `--help` examples across automation-tier and major write commands
17
+
18
+ ### Fixed
19
+
20
+ - improved `-d/--description` parse failures to recommend `--description-file` or stdin for markdown content, and documented the same guidance in help and README
21
+
22
+ ## [2.8.2] - 2026-03-24
23
+
24
+ ### Added
25
+
26
+ - added rate-limit retry guidance and `error.details.rateLimit` metadata for automation consumers when issue creation hits API throttling
27
+
28
+ ### Changed
29
+
30
+ - distinguished plan-limit failures from generic automation errors with exit code `5` and clearer upgrade/archive guidance
31
+
5
32
  ## [2.8.1] - 2026-03-24
6
33
 
7
34
  ### Added
package/README.md CHANGED
@@ -110,8 +110,20 @@ for bot and org-wide automation use cases, `linear-cli` defines a stable JSON co
110
110
 
111
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.
112
112
 
113
+ for automation consumers, auth and authorization failures now use exit code `4`, while free-plan or workspace-plan limit failures use exit code `5`. other contract failures remain non-zero and currently use `1`. rate-limited responses remain on exit code `1`, but now include retry guidance and, when available, `error.details.rateLimit` metadata.
114
+
113
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.
114
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
+ For stdin and pipeline behavior, see [docs/stdin-policy.md](docs/stdin-policy.md).
126
+
115
127
  ## differences from upstream
116
128
 
117
129
  this fork is intentionally diverging from upstream in a few ways:
@@ -182,12 +194,14 @@ linear issue start # create/switch to issue branch and mark as started
182
194
  linear issue start ENG-123 --dry-run # preview the branch and target state
183
195
  linear issue create # create a new issue (interactive prompts)
184
196
  linear issue create -t "title" -d "description" # create with flags
197
+ cat description.md | linear issue create -t "title" --team ENG # read description from stdin
185
198
  linear issue create -t "title" --team ENG --json # emit machine-readable created issue data
186
199
  linear issue create -t "title" --team ENG --dry-run --json # preview the created issue payload
187
200
  linear issue create-batch --file ./issue-batch.json --json # create a parent issue and child issues from JSON
188
201
  linear issue create-batch --file ./issue-batch.json --dry-run --json # preview a batch without creating issues
189
202
  linear issue create --project "My Project" --milestone "Phase 1" # create with milestone
190
203
  linear issue update # update an issue (interactive prompts)
204
+ cat description.md | linear issue update ENG-123 --state started # read description from stdin
191
205
  linear issue update ENG-123 --due-date 2026-03-31 # set an issue due date
192
206
  linear issue update ENG-123 --clear-due-date # clear an issue due date
193
207
  linear issue update ENG-123 --assignee self --json # emit machine-readable updated issue data
@@ -198,6 +212,7 @@ linear issue delete # delete an issue
198
212
  linear issue comment list # list comments on current issue
199
213
  linear issue comment add # add a comment to current issue
200
214
  linear issue comment add ENG-123 "follow-up" # add a comment with positional body
215
+ printf "follow-up\n" | linear issue comment add ENG-123 # read comment body from stdin
201
216
  linear issue comment add -p <id> # reply to a specific comment
202
217
  linear issue comment add ENG-123 --body "follow-up" --json # emit created comment data
203
218
  linear issue comment add ENG-123 --body "follow-up" --dry-run --json # preview comment creation
@@ -207,11 +222,14 @@ linear issue relation delete ENG-123 blocked-by ENG-100 --json # emit machine-r
207
222
  linear issue relation delete ENG-123 blocked-by ENG-100 --dry-run --json # preview relation deletion
208
223
  linear issue relation list ENG-123 --json # emit dependency graph for an issue
209
224
  linear issue comment update <id> # update a comment
225
+ printf "reworded comment\n" | linear issue comment update <id> # read updated body from stdin
210
226
  linear issue commits # show all commits for an issue (jj only)
211
227
  linear issue parent ENG-123 --json # emit the parent issue, or null when absent
212
228
  linear issue children ENG-123 --json # emit child issues for decomposition workflows
213
229
  ```
214
230
 
231
+ 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.
232
+
215
233
  `issue create-batch` expects a JSON file shaped like:
216
234
 
217
235
  ```json
@@ -284,7 +302,7 @@ linear milestone update <milestoneId> --name "New Name" --dry-run # pr
284
302
  linear m update <milestoneId> --target-date "2026-04-15" # update target date
285
303
  linear milestone delete <milestoneId> # delete a milestone
286
304
  linear milestone delete <milestoneId> --dry-run # preview a milestone delete
287
- linear m delete <milestoneId> --force # delete without confirmation
305
+ linear m delete <milestoneId> --yes # delete without confirmation
288
306
  ```
289
307
 
290
308
  ### document commands
@@ -23,7 +23,7 @@
23
23
  "hasInstallScript": true,
24
24
  "license": "MIT",
25
25
  "name": "@kyaukyuai/linear-cli",
26
- "version": "2.8.1"
26
+ "version": "2.9.0"
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.1"
545
+ "version": "2.9.0"
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.1"
3
+ "https://github.com/kyaukyuai/linear-cli/releases/download/v2.9.0"
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.1",
88
+ "version": "2.9.0",
89
89
  "volta": {
90
90
  "node": "18.14.1",
91
91
  "npm": "9.5.0"