ticketlens 0.39.2 → 0.39.3

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/README.md CHANGED
@@ -42,7 +42,7 @@
42
42
  - [Schedule](#schedule)
43
43
  - [History](#history)
44
44
  - [Recall](#recall)
45
- - [Comment, Transition, Assign, Duplicates, Link, Update & Create](#comment-transition-assign-duplicates-link-update--create)
45
+ - [Comment, Transition, Assign, Duplicates, Link, Update, Create & Worklog](#comment-transition-assign-duplicates-link-update-create--worklog)
46
46
  - [Response-Time Stats](#response-time-stats)
47
47
  - [Pre-fetch Issue Types](#pre-fetch-issue-types)
48
48
  - [Doctor](#doctor)
@@ -474,7 +474,7 @@ Every note is scanned before saving — anything shaped like a real secret (API
474
474
 
475
475
  ---
476
476
 
477
- ### Comment, Transition, Assign, Duplicates, Link, Update & Create
477
+ ### Comment, Transition, Assign, Duplicates, Link, Update, Create & Worklog
478
478
 
479
479
  ```bash
480
480
  ticketlens comment PROJ-123 --body="Looks good, merging." # Post a comment to the tracker
@@ -492,6 +492,7 @@ ticketlens create --project=ENG --summary="New Linear issue" --profile=linear-te
492
492
  ticketlens create --project=PROJ --type="Bug" --summary="Broken layout" --attach=./screenshot.png
493
493
  ticketlens worklog PROJ-123=1h30m # Preview a worklog — writes nothing (Jira only)
494
494
  ticketlens worklog PROJ-123=1h30m PROJ-456=45m --comment="Sprint work" --confirm # Log time on several tickets
495
+ ticketlens worklog --help # All options, limits, and examples
495
496
  ```
496
497
 
497
498
  Write directly to the ticket in its real tracker — Jira, GitHub, or Linear — from your terminal or an AI session via `ticket_comment`/`ticket_transition`/`ticket_assign`/`ticket_duplicates`/`ticket_link`/`ticket_update`/`ticket_create`/`ticket_worklog` MCP tools. Requires a Pro license.
@@ -500,7 +501,19 @@ Write directly to the ticket in its real tracker — Jira, GitHub, or Linear —
500
501
 
501
502
  `ticketlens assign` is self-assign only for now — `--to` must be `me`. Assigning to someone else needs a per-tracker user-lookup step this doesn't do yet, so it's deliberately out of scope until that's built.
502
503
 
503
- `ticketlens worklog` logs time on one or several **Jira** tickets, always as you — GitHub and Linear have no worklog API and are refused. Durations are hours and minutes only (`2h`, `90m`, `1h30m`, up to 24h each; days and weeks are rejected because Jira defines them per instance). Every entry's format and tracker are checked before any is written (Jira-side failures like an unknown ticket are reported per ticket, naming what already landed so a retry never repeats it), and since a worklog can't be deleted through TicketLens, nothing is written without `--confirm` — without it you get a preview. `--started=` takes ISO 8601 with a time (default now; not in the future, not older than a year). One call logs at most 24h in total, and a write that times out holds that ticket for 10 minutes because it may have landed. The `ticket_worklog` MCP tool takes an `entries` array with a per-ticket `comment`/`started`; the CLI applies one `--comment`/`--started` to every ticket.
504
+ `ticketlens worklog` (or `tl worklog`) logs time on Jira tickets, always as you.
505
+
506
+ - GitHub and Linear have no worklog API; they are refused.
507
+ - Durations: hours and minutes only (`2h`, `90m`, `1h30m`), up to 24h each.
508
+ - Days and weeks are rejected; Jira defines them per instance.
509
+ - Limits per call: 20 tickets, one entry per ticket, 24h total.
510
+ - `--started=` needs a time: not in the future, not older than a year.
511
+ - Nothing is written without `--confirm`; without it you get a preview.
512
+ - Formats and trackers are checked before any write; Jira-side failures are reported per ticket.
513
+ - A partial result names what already landed, so a retry never repeats it.
514
+ - A rate limit or 401 stops the batch; a timeout holds that ticket 10 minutes.
515
+ - The MCP tool takes `entries[]` with per-ticket `comment`/`started`; the CLI shares one.
516
+ - `ticketlens worklog --help` lists every option.
504
517
 
505
518
  `ticketlens duplicates` is read-only — it never links or changes anything, just lists likely matches in the same project. No tracker (Jira/GitHub/Linear) scores similarity server-side, so ranking happens locally from title/description word overlap; treat a match as a nudge to check manually, not a verdict. That local scoring can also miss a real duplicate — an empty result means none were found by this heuristic, not a confirmed absence. `--threshold=N` (0–1, default 0.35) controls how loose a match counts.
506
519
 
@@ -826,7 +839,7 @@ ticketlens mcp # Start the MCP stdio server (reca
826
839
  ticketlens mcp install # Register it into the current project's .mcp.json
827
840
  ticketlens mcp install --dry-run # Preview the registration without writing
828
841
 
829
- # ── Comment, Transition, Assign, Duplicates, Link, Update & Create ──────────────
842
+ # ── Comment, Transition, Assign, Duplicates, Link, Update, Create & Worklog ─────
830
843
  ticketlens comment CNV1-2 --body="Looks good, merging." # Post a comment to the tracker [Pro]
831
844
  ticketlens comment CNV1-2 --body="See screenshot" --attach=./bug.png # Attach local files [Pro]
832
845
  ticketlens transition CNV1-2 # List valid transitions (read-only) [Pro]
@@ -843,6 +856,7 @@ ticketlens create --project=ENG --summary="New issue" --profile=linear-team # C
843
856
  ticketlens create --project=CNV1 --type="Bug" --summary="Broken layout" --attach=./screenshot.png # Create with an attachment [Pro]
844
857
  ticketlens worklog CNV1-2=1h30m # Preview a worklog — writes nothing (Jira only) [Pro]
845
858
  ticketlens worklog CNV1-2=1h30m CNV1-3=45m --confirm # Log time on several tickets (Jira only) [Pro]
859
+ ticketlens worklog --help # Worklog help: options, limits, examples
846
860
 
847
861
  # ── Stats ──────────────────────────────────────────────────────────────────────
848
862
  ticketlens stats # Response-time metrics from local history
@@ -907,6 +921,7 @@ ticketlens --version # Show installed version
907
921
  ticketlens CNV1-2 --help # Fetch subcommand help
908
922
  ticketlens triage --help # Triage subcommand help
909
923
  ticketlens review --help # Review subcommand help
924
+ ticketlens worklog --help # Worklog subcommand help
910
925
  ticketlens cache --help # Cache overview help
911
926
  ticketlens cache size --help # Cache size help
912
927
  ticketlens cache clear --help # Cache clear help
@@ -1106,7 +1121,7 @@ npm test
1106
1121
  See [ROADMAP.md](ROADMAP.md) for the full plan.
1107
1122
 
1108
1123
  Recently shipped:
1109
- - **Worklog** (`ticketlens worklog KEY=DURATION ... --confirm` / `ticket_worklog` MCP tool) — log time on one or several Jira tickets, preview-first, all entries validated before any is written. Pro tier
1124
+ - **Worklog** (`ticketlens worklog`, `ticket_worklog` MCP) — log time on Jira tickets, preview first. Pro tier
1110
1125
  - **Autonomous Recall capture** — TicketLens judges and saves a note after a session, no `note add` call, reusing your login. Pro+ tier
1111
1126
  - **Multi-agent AI consensus compliance** (`ticketlens compliance TICKET --consensus`) — routes requirements-vs-diff review through your team's AI provider pool, majority vote after a refinement round. Pro tier
1112
1127
  - **Dynamic AI Provider Registry** (Console > Admin > AI Provider Pool / AI Roles) — manage arbitrary AI providers and role-based routing, no fixed vendor list
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ticketlens",
3
- "version": "0.39.2",
3
+ "version": "0.39.3",
4
4
  "description": "Jira CLI for developers — fetch ticket context, triage your queue, and stop tab-switching. Zero dependencies, all local.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,4 +1,4 @@
1
- <!-- jtb-skill-version: 0.44.0 -->
1
+ <!-- jtb-skill-version: 0.44.1 -->
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.
@@ -452,7 +452,24 @@ ticketlens worklog PROD-1234=1h30m PROD-5678=45m --comment="Sprint work" --confi
452
452
 
453
453
  `create` makes a brand-new ticket — there's no existing ticket to target, so `--project` (Jira project key / Linear team key) and `--type` (Jira issue type, ignored elsewhere) pick the destination instead of a ticket key. This is the highest-blast-radius command in the family: a bad `--project`/`--type` fabricates a real, hard-to-walk-back item in a live tracker. No `--confirm` gate — double-check the values with the user before calling it, since an invalid value surfaces the tracker's own error rather than a silent guess.
454
454
 
455
- `worklog KEY=DURATION [KEY=DURATION ...]` logs time worked on one or several tickets, always as the authenticated user — logging for someone else isn't supported, so don't attempt a workaround. Jira only: GitHub and Linear have no worklog API and are refused. Durations are hours and minutes only (`2h`, `90m`, `1h30m`, up to 24h each) — days and weeks are rejected because Jira defines them per instance; never guess a conversion, ask the user. `--started=` takes ISO 8601 with a time (default now; not in the future, not older than a year). Every entry's format and tracker are checked before any is written, so a malformed entry blocks the whole call; Jira-side failures (unknown ticket, no permission, time tracking off) are reported per ticket while writing, and a partial result names which tickets already landed — retry only the rest, never repeat them. A rate limit or 401 stops the batch. The same ticket twice in one call is refused, total time per call is capped at 24h, and comments at 2000 characters. A write that times out or gets a server error leaves a 10-minute hold on that ticket, because it may have landed — check Jira before logging it again. A worklog cannot be deleted through TicketLens, so without `--confirm` it only prints a preview — add `--confirm` only once the user has confirmed the durations and tickets, never as a formality to route around. Jira applies its own remaining-estimate and watcher-notification defaults. The MCP tool takes an `entries` array with a per-ticket `comment`/`started`; the CLI applies one `--comment`/`--started` to every ticket.
455
+ `worklog KEY=DURATION [KEY=DURATION ...]` logs time on one or several tickets.
456
+ - `worklog` is Jira only; GitHub and Linear have no worklog API and are refused.
457
+ - It always logs as the authenticated user; never attempt a workaround for someone else.
458
+ - Durations are hours and minutes only: `2h`, `90m`, `1h30m`, up to 24h each.
459
+ - Days and weeks are rejected; Jira defines them per instance. Ask the user.
460
+ - `--started=` is ISO 8601 with a time; default now.
461
+ - `started` must not be in the future or older than a year.
462
+ - Per call: 20 tickets, one entry per ticket, 24h total; comments up to 2000 characters.
463
+ - A worklog cannot be deleted through TicketLens, so nothing is written without `--confirm`.
464
+ - Without `--confirm` it only previews; add it only after the user confirms the durations.
465
+ - Formats and trackers are checked before any write; one malformed entry blocks the call.
466
+ - Jira-side failures (unknown ticket, permissions) are reported per ticket while writing.
467
+ - A partial result names what landed; retry only the rest, never repeat those.
468
+ - A rate limit or 401 stops the batch.
469
+ - A timeout or 5xx holds that ticket 10 minutes; check Jira before logging it again.
470
+ - Jira applies its own remaining-estimate and watcher-notification defaults.
471
+ - The MCP tool takes `entries[]` with per-ticket `comment`/`started`.
472
+ - The CLI applies one `--comment`/`--started` to every ticket.
456
473
 
457
474
  `--attach=path1,path2` (comma-separated local file paths) is available on `comment` and `create` only. Images render as an inline thumbnail on Jira and Linear; GitHub has no attachment upload API, so `--attach` is unsupported there.
458
475