@softspark/jira-mcp 1.4.2 → 1.5.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,6 +7,21 @@ Versioning follows [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ---
9
9
 
10
+ ## v1.5.0 -- Bulk Template Management & Monthly Tasks Tool (2026-05-04)
11
+
12
+ ### Added
13
+ - **`template add bulk` CLI command** -- new third template kind alongside `comment` and `task`. Validates the source JSON against `BulkConfigSchema` and installs it under `~/.softspark/jira-mcp/templates/tasks/<KEY>/monthly_admin.json`. `template list/show/remove` also support the `bulk` kind, keyed by project. Prunes the empty project subdirectory on remove.
14
+ - **`create_monthly_tasks` MCP tool** -- exposes the existing `create-monthly` CLI handler over the protocol. Inputs: `{ execute?: boolean, project?: string }`. Returns a structured result with per-project status (success/error), summary counts, and the resolved config path. Lets MCP clients run monthly bulk task creation without dropping to the CLI.
15
+
16
+ ## v1.4.3 -- JQL Escape & Cache Recovery (2026-04-18)
17
+
18
+ ### Fixed
19
+ - **`sync_tasks` default JQL parse error** -- `escapeJql` was over-escaping JQL operators (`-`, `+`, `&`, `|`, etc.) inside double-quoted string literals. Jira rejected the resulting query with `'\-' jest niedozwoloną sekwencją modyfikacji JQL`. The escape now only handles `\` and `"` (the only sequences valid inside a quoted JQL string), so `sync_tasks` works without an explicit `jql` argument when the username contains a hyphen.
20
+ - **`reassign_task` / `update_task_status` cache miss after Jira mutation** -- both operations now recover from a cache miss by fetching the task from Jira via `connector.getIssue` and upserting it into the local cache. Previously, calling either tool right after `create_task` (cache not populated) or `log_task_time` (cache invalidated) failed with `TASK_NOT_FOUND` even though the Jira mutation succeeded.
21
+
22
+ ### Added
23
+ - **`CacheManager.upsertTask(task)`** -- inserts a task or replaces it by key, tolerating a missing cache file. Used by the new mutation-recovery path.
24
+
10
25
  ## v1.4.2 -- Supply-Chain Hardening (2026-04-18)
11
26
 
12
27
  ### Added
package/README.md CHANGED
@@ -4,17 +4,15 @@
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.4.2-blue)](CHANGELOG.md)
7
+ [![version](https://img.shields.io/badge/version-1.4.3-blue)](CHANGELOG.md)
8
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
9
9
 
10
10
  ---
11
11
 
12
- ## What's New in v1.4.2
12
+ ## What's New in v1.5.0
13
13
 
14
- - **npm provenance attestation** -- releases now ship with SLSA v1 attestation via `npm publish --provenance`. Verify with `npm audit signatures` or the Provenance badge on npmjs.com.
15
- - **Release SOP hardening** -- supply-chain gates (`--provenance`, `id-token: write`) and a lockfile sync step are now part of the pre-tag checklist.
16
- - **Post-release verification** -- new phase asserts the SLSA provenance predicate and runs `npm audit signatures` before the release is considered shipped.
17
- - **Pre-commit version sync** -- new step catches `package.json` ↔ `package-lock.json` version drift before commit.
14
+ - **`template add bulk` CLI command** -- install per-project `monthly_admin.json` configs into `~/.softspark/jira-mcp/templates/tasks/<KEY>/`. Validated against `BulkConfigSchema`. `template list/show/remove` now also handle the `bulk` kind, keyed by project.
15
+ - **`create_monthly_tasks` MCP tool** -- run all monthly bulk task configs over the protocol with `{ execute?, project? }`. Returns per-project status, summary counts, and resolved config paths. No more dropping to the CLI for monthly admin runs.
18
16
 
19
17
  See [CHANGELOG.md](CHANGELOG.md) for full details.
20
18
 
@@ -184,7 +182,7 @@ Or copy `rules/jira-mcp.md` to your ai-toolkit rules directory manually. The rul
184
182
  - **Sync before read** -- cache may be stale
185
183
  - **Status transitions** -- check valid transitions before changing status
186
184
  - **Time format** -- `"2h 30m"`, never days
187
- - **All 18 MCP tools** and **20 CLI commands** reference
185
+ - **All 19 MCP tools** and **20 CLI commands** reference
188
186
 
189
187
  ### AI Toolkit Hooks
190
188
 
@@ -231,7 +229,7 @@ src/
231
229
  errors/ Typed error hierarchy
232
230
  operations/ Business logic (status, comments, time tracking)
233
231
  templates/ File-backed comment/task template loading and registries
234
- tools/ MCP tool handlers (18 tools, one file per tool)
232
+ tools/ MCP tool handlers (19 tools, one file per tool)
235
233
  types/ Shared TypeScript types
236
234
  server.ts MCP server setup and tool registration
237
235
  cli.ts CLI entry point
@@ -253,18 +251,18 @@ src/
253
251
 
254
252
  **Per-instance credentials** -- different API tokens per Jira instance URL. Single-credential format still works (backward compatible). See [Configuration](kb/reference/configuration.md).
255
253
 
256
- **Supply chain protection** -- `ignore-scripts=true`, no axios, no dynamic requires. Self-contained 520KB bundle, 1 runtime dep (commander).
254
+ **Supply chain protection** -- `ignore-scripts=true`, no axios, no dynamic requires. Self-contained 535KB bundle, 1 runtime dep (commander).
257
255
 
258
256
  **Typed error hierarchy** -- 20 error classes with machine-readable codes. Every tool returns structured `{ success, error, code }` responses. No stack traces leak to MCP clients.
259
257
 
260
- **Strict TypeScript** -- `strict: true`, no `any`, `readonly` interfaces, Zod validation at all boundaries, 558 tests across 58 test files. Self-contained 520KB package.
258
+ **Strict TypeScript** -- `strict: true`, no `any`, `readonly` interfaces, Zod validation at all boundaries, 587 tests across 60 test files. Self-contained 535KB package.
261
259
 
262
260
  ## Documentation
263
261
 
264
262
  | Document | Description |
265
263
  |----------|-------------|
266
264
  | [Architecture](kb/reference/architecture.md) | System design and module overview |
267
- | [API Reference](kb/reference/api.md) | All 18 MCP tools with schemas |
265
+ | [API Reference](kb/reference/api.md) | All 19 MCP tools with schemas |
268
266
  | [Configuration](kb/reference/configuration.md) | Config files, env vars, multi-instance |
269
267
  | [ADF Format](kb/reference/adf.md) | Atlassian Document Format conversion |
270
268
  | [Caching](kb/reference/caching.md) | Task, workflow, and user caching |