@softspark/jira-mcp 1.7.0 → 1.8.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
@@ -7,7 +7,34 @@ Versioning follows [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ---
9
9
 
10
- ## v1.7.0 -- Apache-2.0 (2026-07-27)
10
+ ## v1.8.0 -- Status Paths (2026-08-03)
11
+
12
+ ### Added
13
+
14
+ - **`status` accepts an ordered path** in bulk task configs -- `"status": ["On hold", "Open"]`
15
+ walks the transitions one at a time. Jira only exposes the transitions available from an
16
+ issue's *current* status, so a target that is not directly reachable from the initial
17
+ status could not be set at all before. A plain string still means a single transition.
18
+ - **`warnings` in `create_monthly_tasks` output** -- per-task problems that did not stop the
19
+ issue from being written now surface in the tool response instead of being dropped by the
20
+ counters-only summary.
21
+
22
+ ### Fixed
23
+
24
+ - **A rejected status transition is no longer silent.** `setStatus` swallowed every failure,
25
+ including the ordinary case of the requested status simply not being reachable: the issue
26
+ was created, the status was ignored, and the run reported `failed: 0`. Eleven monthly admin
27
+ tasks sat in the wrong status for months because of this. The transition is now reported as
28
+ a `warning` on the task result, naming the status that failed and listing the ones that were
29
+ reachable at that point. The issue itself is still created -- the transition stays non-fatal.
30
+
31
+ ### Changed
32
+
33
+ - **`TaskResult` gains a `warning` field** (`string | null`). `formatBulkResult` prints it
34
+ indented under the task line. Consumers destructuring `TaskResult` are unaffected; anyone
35
+ constructing one now has to supply the field.
36
+
37
+
11
38
 
12
39
  ### Changed -- licence: MIT to Apache-2.0
13
40
 
package/README.md CHANGED
@@ -4,17 +4,16 @@
4
4
 
5
5
  [![CI](https://github.com/softspark/jira-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/softspark/jira-mcp/actions/workflows/ci.yml)
6
6
  [![npm](https://img.shields.io/npm/v/@softspark/jira-mcp)](https://www.npmjs.com/package/@softspark/jira-mcp)
7
- [![version](https://img.shields.io/badge/version-1.7.0-blue)](CHANGELOG.md)
7
+ [![version](https://img.shields.io/badge/version-1.8.0-blue)](CHANGELOG.md)
8
8
  [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
9
9
 
10
10
  ---
11
11
 
12
- ## What's New in v1.7.0
12
+ ## What's New in v1.8.0
13
13
 
14
- - **Licence: MIT to Apache-2.0.** Still permissive -- fork it, modify it, ship it commercially. What changes is what a redistributor owes back: the contents of [NOTICE](NOTICE) must travel with any redistribution (§4d), modified files must say they were modified (§4b), plus an express patent grant and a trademark reservation. Releases up to v1.6.0 stay available under MIT; nothing already granted is revoked.
15
- - **Attribution reaches the published bundles.** npm ships `dist/`, not `src/`, and the build minifies away every comment -- so the SPDX headers added to 165 source files never reach a consumer. A build banner carries the licence into `dist/index.js` and `dist/cli.js` instead, and a test asserts both entries keep it.
16
- - **Licensing gate in `npm test`** -- `tests/licensing.test.ts`, 8 assertions covering headers, `LICENSE`, `NOTICE`, npm `files`, and the build banner. Release SOP gains Phase 4.7 running the same gate before tagging.
17
- - **Release SOP hardened** -- tag placement is now asserted before the push, and `git push --tags` is replaced with a single-tag push by full ref. A `--tags` push is how a sibling project silently skipped a publish.
14
+ - **`status` takes a path, not just a name.** `"status": ["On hold", "Open"]` walks the transitions in order. Jira only ever exposes the transitions out of an issue's *current* status, so a target that is not directly reachable from the initial status was previously impossible to set -- which is exactly how workflows that gate `Open` behind a `Reopen` transition behave.
15
+ - **Failed transitions stop being silent.** The old code caught every transition error and moved on: issue created, status ignored, run reports `failed: 0`. It now returns a `warning` naming the status that failed and listing what was reachable instead, surfaced per task and aggregated into `create_monthly_tasks` output.
16
+ - **`TaskResult.warning`** -- new `string | null` field for problems that occur after the issue is already written. `formatBulkResult` prints it under the task line.
18
17
 
19
18
  See [CHANGELOG.md](CHANGELOG.md) for full details.
20
19