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 CHANGED
@@ -1,14 +1,25 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to this project are documented here. The format is based on
4
- [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to
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.0](https://github.com/zhendalf/linear-sdk-cli/compare/v0.2.4...v0.3.0) (2026-08-27)
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
- ## [Unreleased]
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.0",
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.6.0",
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",
package/src/lib/prompt.ts CHANGED
@@ -77,6 +77,7 @@ export async function promptSecret(
77
77
  return inquirerPassword({
78
78
  message,
79
79
  mask: true,
80
+ toggleMask: false,
80
81
  validate: (v) => (opts.required && !v.trim() ? "Required" : true),
81
82
  });
82
83
  }