linear-sdk-cli 0.3.0 → 0.3.2
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 +36 -31
- package/README.md +6 -0
- package/package.json +5 -3
- package/src/lib/prompt.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
3
|
+
Release Please generates this file from Conventional Commits. Feature and fix pull requests do
|
|
4
|
+
not edit it directly; their squash-commit titles are the release-note source of truth. This project
|
|
5
|
+
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
-
## [0.3.
|
|
7
|
+
## [0.3.2](https://github.com/zhendalf/linear-sdk-cli/compare/v0.3.1...v0.3.2) (2026-08-28)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
- **auth:** disable inquirer password mask-toggle for API key entry ([#27](https://github.com/zhendalf/linear-sdk-cli/issues/27)) ([b043678](https://github.com/zhendalf/linear-sdk-cli/commit/b043678ec10bf59aeacaf38e7445ff1df800243a))
|
|
12
|
+
|
|
13
|
+
## [0.3.1](https://github.com/zhendalf/linear-sdk-cli/compare/v0.3.0...v0.3.1) (2026-08-28)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
- **release:** prevent changelog drift ([e8019a0](https://github.com/zhendalf/linear-sdk-cli/commit/e8019a0cc59182579237f9ec83138259fcd0615b))
|
|
18
|
+
|
|
19
|
+
## [0.3.0](https://github.com/zhendalf/linear-sdk-cli/compare/v0.2.4...v0.3.0) (2026-08-28)
|
|
8
20
|
|
|
9
21
|
### Features
|
|
10
22
|
|
|
11
|
-
- **auth:** add browser OAuth login with PKCE ([8a3a12d](https://github.com/zhendalf/linear-sdk-cli/commit/8a3a12daa6239091b4c63c66af30a51adf61e4e5))
|
|
12
23
|
- **auth:** add browser OAuth login with PKCE (LIN-740) ([d5826e1](https://github.com/zhendalf/linear-sdk-cli/commit/d5826e1ebdc9015e876faa29b004f4953a190b43))
|
|
13
24
|
- **auth:** support OAuth access tokens ([#28](https://github.com/zhendalf/linear-sdk-cli/issues/28)) ([4fecb6c](https://github.com/zhendalf/linear-sdk-cli/commit/4fecb6c1a40533804ff2fde5ace689d39c70d4bc))
|
|
14
25
|
|
|
@@ -41,40 +52,39 @@ All notable changes to this project are documented here. The format is based on
|
|
|
41
52
|
### Features
|
|
42
53
|
|
|
43
54
|
- expand CLI workflows and terminal UX ([0fe31cc](https://github.com/zhendalf/linear-sdk-cli/commit/0fe31cca7e71d0fa6eee2b7c1461ecaf0a01103f))
|
|
55
|
+
- **comments:** add explicit, notification-capable mentions with repeatable `--mention`
|
|
56
|
+
([TES-738](https://linear.app/issue/TES-738)). Literal `@name` text remains Markdown; comment
|
|
57
|
+
commands resolve users exactly and prepend real Linear mention tokens.
|
|
44
58
|
|
|
45
59
|
### Bug Fixes
|
|
46
60
|
|
|
47
61
|
- **ci:** give release dispatch repository context ([#15](https://github.com/zhendalf/linear-sdk-cli/issues/15)) ([e3f51e6](https://github.com/zhendalf/linear-sdk-cli/commit/e3f51e600102416f3bd3212578b364a13a452e49))
|
|
48
62
|
|
|
63
|
+
### Changed
|
|
64
|
+
|
|
65
|
+
- Replace ESLint with Oxlint while preserving the existing JavaScript and TypeScript checks.
|
|
66
|
+
- Use TypeScript 7 for type-checking without source or configuration compatibility changes.
|
|
67
|
+
|
|
49
68
|
## [0.1.3](https://github.com/zhendalf/linear-sdk-cli/compare/v0.1.2...v0.1.3) (2026-08-24)
|
|
50
69
|
|
|
51
70
|
### Bug Fixes
|
|
52
71
|
|
|
53
72
|
- **ci:** grant OIDC to automated publisher ([#7](https://github.com/zhendalf/linear-sdk-cli/issues/7)) ([acc6e4b](https://github.com/zhendalf/linear-sdk-cli/commit/acc6e4b9c4ab485ce39eeec7eb2c835892016e59))
|
|
54
73
|
|
|
55
|
-
## [
|
|
74
|
+
## [0.1.2](https://github.com/zhendalf/linear-sdk-cli/compare/v0.1.1...v0.1.2) (2026-08-24)
|
|
75
|
+
|
|
76
|
+
### Dependencies
|
|
77
|
+
|
|
78
|
+
- Upgrade the runtime and development dependencies ([#2](https://github.com/zhendalf/linear-sdk-cli/issues/2)).
|
|
79
|
+
|
|
80
|
+
### Continuous Integration
|
|
81
|
+
|
|
82
|
+
- Run verification on pull requests using the latest Bun release ([#3](https://github.com/zhendalf/linear-sdk-cli/issues/3)).
|
|
83
|
+
|
|
84
|
+
## [0.1.1](https://github.com/zhendalf/linear-sdk-cli/releases/tag/v0.1.1) (2026-08-24)
|
|
56
85
|
|
|
57
86
|
### Added
|
|
58
87
|
|
|
59
|
-
- **Browser OAuth login with PKCE (`actor=user`, LIN-740).** Bare `linear auth login` now opens
|
|
60
|
-
Linear using Authorization Code + mandatory PKCE S256, validates CSRF state and the authenticated
|
|
61
|
-
viewer/workspace, and stores the complete rotating session only in an isolated per-workspace OS
|
|
62
|
-
keyring record. Access tokens refresh before expiry and once after an authentication failure;
|
|
63
|
-
logout revokes the grant. `--no-browser`, read-only and explicit admin scopes, secret-safe JSON
|
|
64
|
-
failures, and the existing `auth login --key -` personal-key fallback are covered. OAuth login
|
|
65
|
-
and logout preserve a pre-existing API-key profile for the same workspace.
|
|
66
|
-
- **OAuth access tokens for apps, agents, and hosted service accounts.** Commands accept an
|
|
67
|
-
invocation-scoped `LINEAR_ACCESS_TOKEN` or `--access-token`, initialize the SDK with its OAuth
|
|
68
|
-
bearer-token path, and fail closed if an API key and OAuth identity are ambiguous. The exported
|
|
69
|
-
`ClientCredentialsTokenProvider` gives long-lived hosts a concurrency-safe, expiry-aware token
|
|
70
|
-
cache with forced renewal after a `401`; hosted tokens remain invocation-scoped and the CLI never
|
|
71
|
-
persists client secrets. This app-actor lifecycle stays separate from human browser login.
|
|
72
|
-
- **Explicit, notification-capable comment mentions (`--mention`, TES-738).** Ordinary `@name`
|
|
73
|
-
text remains literal Markdown. Comment-writing commands now accept repeatable
|
|
74
|
-
`--mention <name|email|me|id>`, resolve each user exactly, deduplicate repeats, and prepend real
|
|
75
|
-
Linear mention tokens as their own paragraph. The option is available on `issue comment`,
|
|
76
|
-
`comment add`, `comment reply`, and `comment update`, including the shared
|
|
77
|
-
`issue comment add/update` mounts.
|
|
78
88
|
- **Every command declares its `--json` output, and `linear commands <path>` prints it (TES-610).**
|
|
79
89
|
An agent driving the CLI cold guessed key names and filed false bugs (`.user` read as `.author`,
|
|
80
90
|
`.parent` as `.parentId`); the field names were knowable only from the source. Each node of
|
|
@@ -347,11 +357,6 @@ true` is sent unless `--no-default-template` (also accepted under the reference'
|
|
|
347
357
|
|
|
348
358
|
### Changed
|
|
349
359
|
|
|
350
|
-
- **Development linting now uses Oxlint instead of ESLint.** The migrated configuration preserves
|
|
351
|
-
the existing recommended JavaScript and TypeScript checks and underscore-prefixed unused-variable
|
|
352
|
-
exceptions while reducing the lint dependency tree and execution time.
|
|
353
|
-
- **TypeScript 7 now powers type-checking.** The native compiler replaces TypeScript 6 without
|
|
354
|
-
source or configuration compatibility changes in this project.
|
|
355
360
|
- **`--fields`, `--limit` and `--all` are refused on commands that never read them** (TES-637 (2),
|
|
356
361
|
TES-596). All twelve globals are registered on every command so they can sit anywhere on the
|
|
357
362
|
line, but `--fields` projects a _rendered_ result (a table or a detail block) and `--limit`/`--all`
|
|
@@ -856,7 +861,7 @@ column 36`), never an excerpt from a credential-bearing file, and strip control
|
|
|
856
861
|
- **`roadmap delete` alias is now `rm`** (was `del`), matching the `rm` delete alias used by
|
|
857
862
|
every other group.
|
|
858
863
|
|
|
859
|
-
## [0.1.0]
|
|
864
|
+
## [0.1.0] (2026-06-26)
|
|
860
865
|
|
|
861
866
|
Initial release. An ergonomic CLI for Linear built on `@linear/sdk`, with human-readable output
|
|
862
867
|
by default and a stable `--json` mode for scripts and agents.
|
package/README.md
CHANGED
|
@@ -607,6 +607,7 @@ await createProgram().parseAsync(["node", "linear", "issue", "list", "--json"]);
|
|
|
607
607
|
bun run verify # typecheck + lint + unit/contract tests
|
|
608
608
|
bun run test:live # live integration tests (needs LINEAR_API_KEY + LINEAR_CLI_LIVE=1)
|
|
609
609
|
bun run test:live:admin # also runs admin-tier suites (e.g. team create/update)
|
|
610
|
+
bun run audit:changelog # verify package, tag, and generated release-note history
|
|
610
611
|
bun run audit:coverage # regenerate COVERAGE.md (add --update to re-baseline the snapshot)
|
|
611
612
|
bun run janitor # sweep leaked `clitest-` fixtures from the test workspace
|
|
612
613
|
```
|
|
@@ -615,6 +616,11 @@ Architecture is three layers — **commands** (commander wiring) → **services*
|
|
|
615
616
|
resource, the only place that touches the SDK) → **`@linear/sdk`**. The machine JSON envelope is
|
|
616
617
|
locked and contract-tested so output never silently drifts.
|
|
617
618
|
|
|
619
|
+
Release Please owns `CHANGELOG.md`. Pull requests use Conventional Commit titles and are squash
|
|
620
|
+
merged, giving each change one release-note entry. Do not edit the changelog in a feature or fix
|
|
621
|
+
pull request; use a `BEGIN_COMMIT_OVERRIDE` block in the pull request body when a change needs
|
|
622
|
+
several or specially worded release notes.
|
|
623
|
+
|
|
618
624
|
> Live integration tests run against a real workspace and share one API key; running the entire
|
|
619
625
|
> suite repeatedly can hit Linear's rate limit. Run a subset (a few files at a time) or re-run
|
|
620
626
|
> after a short pause if you see transient rate-limit failures.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "linear-sdk-cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Ergonomic command-line interface for Linear, built on @linear/sdk",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -61,13 +61,15 @@
|
|
|
61
61
|
"test:contract": "bun test test/contract",
|
|
62
62
|
"test:live": "LINEAR_CLI_LIVE=1 bun test --timeout 60000 test/integration",
|
|
63
63
|
"test:live:admin": "LINEAR_CLI_LIVE=1 LINEAR_CLI_LIVE_ADMIN=1 bun test --timeout 60000 test/integration",
|
|
64
|
-
"verify": "bun run typecheck && bun run lint && bun run audit:coverage && bun run format:check && bun run test",
|
|
64
|
+
"verify": "bun run typecheck && bun run lint && bun run audit:changelog && bun run audit:coverage && bun run format:check && bun run test",
|
|
65
65
|
"skill:docs": "bun run skills/linear-sdk-cli/scripts/generate-docs.ts",
|
|
66
|
+
"audit:changelog": "bun run scripts/changelog-audit.ts",
|
|
67
|
+
"audit:pr-title": "bun run scripts/pr-title-audit.ts",
|
|
66
68
|
"audit:coverage": "bun run scripts/coverage-audit.ts",
|
|
67
69
|
"janitor": "bun run test/janitor.ts"
|
|
68
70
|
},
|
|
69
71
|
"dependencies": {
|
|
70
|
-
"@inquirer/prompts": "^8.
|
|
72
|
+
"@inquirer/prompts": "^8.7.0",
|
|
71
73
|
"@linear/sdk": "^91.0.0",
|
|
72
74
|
"commander": "^15.0.0",
|
|
73
75
|
"graphql": "^17.0.2",
|