ticketlens 0.38.4 → 0.38.6
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/package.json
CHANGED
package/skills/jtb/SKILL.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- jtb-skill-version: 0.
|
|
1
|
+
<!-- jtb-skill-version: 0.31.0 -->
|
|
2
2
|
---
|
|
3
3
|
name: jtb
|
|
4
4
|
description: Fetch a Jira ticket's full context (description, comments, linked issues, code references) and assemble a structured TicketBrief for implementation planning. Use when user types /jtb, mentions a Jira ticket key, or wants to plan work from a Jira ticket.
|
|
@@ -242,6 +242,8 @@ To search saved notes directly (outside of automatic brief injection): `ticketle
|
|
|
242
242
|
|
|
243
243
|
**Pick exactly one path per capture — never both.** If this harness has TicketLens's MCP server configured (tools named `recall_add`/`recall_search` — often shown as `mcp__ticketlens__recall_add` — visible in your tool list), **use those tools, not the bash commands above** — same license gate, same secret scan, same vault, same team sync, just no shell command to construct. Only fall back to the bash form when the MCP tools are genuinely absent from your tool list. If they're absent because this project has never registered the server, tell the user once: `ticketlens mcp install` writes (or merges into) this project's `.mcp.json` — don't run it yourself unprompted, since it changes what your harness auto-connects to on next launch, and the user should be the one deciding that. Calling both for the same insight creates two near-duplicate notes (no dedup exists between the two paths) and, with team sync on, two separate pushes for a manager to review.
|
|
244
244
|
|
|
245
|
+
**Stale tool schemas after an upgrade.** Right after a `ticketlens` upgrade, an already-connected MCP client can still be serving the tool list it cached beforehand — so a call may reject a parameter this document says exists. Retrying won't fix it: the running `ticketlens mcp` server is always current, only the client's copy is stale. Tell the user once that restarting or reconnecting the MCP client picks up the new schema.
|
|
246
|
+
|
|
245
247
|
### Quality loop (Pro, in-session only)
|
|
246
248
|
|
|
247
249
|
Only when `note add` above was dispatched *by you, inside this skill*, and it printed a saved note id (e.g. `Saved note "Retry gotcha" (1784135399545-fe01c4.md)`) — never for a note a user typed directly into a bare shell, which has no Task/Agent tool available. If there's no such tool in your environment, skip this whole section silently: no warning, no degraded fallback, the note is already saved and that's a complete, correct outcome on its own.
|
|
@@ -304,6 +306,8 @@ The six write actions (comment/transition/assign/link/update/create) have a shor
|
|
|
304
306
|
|
|
305
307
|
**Pick exactly one path per action — never both.** If this harness has TicketLens's MCP server configured (tools named `ticket_comment`/`ticket_transition`/`ticket_assign`/`ticket_duplicates`/`ticket_link`/`ticket_update`/`ticket_create` — often shown as `mcp__ticketlens__ticket_comment` etc. — visible in your tool list), **use those tools, not the bash commands above** — same license gate, same cooldown, same audit log. Only fall back to the bash form when the MCP tools are genuinely absent from your tool list; if that's because this project has never registered the server, see the `ticketlens mcp install` note above (Recall section) — same guidance applies here.
|
|
306
308
|
|
|
309
|
+
The same stale-schema caveat applies here — if a call rejects a parameter this document says exists (e.g. `attachments` on `ticket_comment`/`ticket_create`) right after an upgrade, see the MCP tool-cache staleness note above (Recall section).
|
|
310
|
+
|
|
307
311
|
Requires a Pro license — on Free, all seven no-op with an upgrade hint on stderr.
|
|
308
312
|
|
|
309
313
|
---
|
|
@@ -641,6 +641,11 @@ export function printMcpHelp({ stream = process.stdout } = {}) {
|
|
|
641
641
|
` tracker, and it fabricates a real item, the highest blast radius of this family.`,
|
|
642
642
|
` Long-running — exits when the client closes stdin.`,
|
|
643
643
|
'',
|
|
644
|
+
` ${s.dim('If a tool call rejects a parameter you expect right after upgrading ticketlens,')}`,
|
|
645
|
+
` ${s.dim('this client session is still using the tool list it cached before the upgrade —')}`,
|
|
646
|
+
` ${s.dim('restart or reconnect the MCP client to pick up the new schema. The running')}`,
|
|
647
|
+
` ${s.dim('server is always current; only the client-side copy goes stale.')}`,
|
|
648
|
+
'',
|
|
644
649
|
` ${s.bold('OPTIONS')}`,
|
|
645
650
|
'',
|
|
646
651
|
` ${s.brand('-h')}, ${s.brand('--help')} Show this help`,
|
|
@@ -458,7 +458,7 @@ export async function postComment(ticketKey, body, opts = {}) {
|
|
|
458
458
|
throw err;
|
|
459
459
|
}
|
|
460
460
|
const raw = await response.json();
|
|
461
|
-
return { id: raw.id, url: raw.
|
|
461
|
+
return { id: raw.id, url: `${baseUrl}/browse/${ticketKey}?focusedCommentId=${raw.id}` };
|
|
462
462
|
}
|
|
463
463
|
|
|
464
464
|
/**
|
|
@@ -728,7 +728,7 @@ export async function createIssue({ project, type, summary, description } = {},
|
|
|
728
728
|
throw err;
|
|
729
729
|
}
|
|
730
730
|
const raw = await response.json();
|
|
731
|
-
return { key: raw.key, id: raw.id, url: raw.
|
|
731
|
+
return { key: raw.key, id: raw.id, url: `${baseUrl}/browse/${raw.key}` };
|
|
732
732
|
}
|
|
733
733
|
|
|
734
734
|
export async function fetchTicket(ticketKey, opts = {}) {
|