Features, fixes, and version history. Each release is also published on GitHub Releases and crates.io.
auth login --help printed your API token. If ATLASSIAN_API_TOKEN was exported, asking for help printed its value, so the token could end up in a screen share, a pasted bug report, or CI logs, where masking covers registered secrets rather than arbitrary command output. Help still names the variable, just not its value. If you have run auth login --help with that variable set somewhere it could be seen or recorded, rotate the token. Found and fixed by @shohi.base_url carrying a path lost its last segment, so https://api.atlassian.com/ex/jira/<cloudId> — the form scoped API tokens require — dropped the cloud id and every request 404'd. The same root cause broke any self-hosted product behind a context path, such as Bamboo at https://example.com/bamboo. Existing profiles are corrected on load, so no config edit is needed. Found and fixed by @shohi.bb pr comment --path src/main.rs --line 42 anchors a comment to a file and line instead of leaving a blanket note, with --side old for a removed line and no --line for a whole-file comment. bb pr comments gains a location column so inline and top-level comments are distinguishable. Composes with the threaded replies added in 0.6.0. Thanks to @alcantaraleo.confluence page comments only ever fetched footer comments, so a page using inline comments (the highlight-and-comment kind) returned an empty list however many it had. Both collections are now listed, with a kind column. Reported by @georghildebrand.confluence page comments --replies walks each thread and shows which comment a reply belongs to, and add-comment --parent <id> --kind inline replies into one.<, > or & previously produced invalid markup.jira issue transitions DEV-123 lists what the issue can move to right now, with --format quiet giving ids to feed straight into jira issue transition. Which transitions exist depends on the workflow and the current status, so this was previously guesswork.bb pr comment --parent <id> replies inside a thread, and bb pr resolve-comment / bb pr reopen-comment close and reopen one. bb pr comments now shows each comment's parent and its full body instead of truncating to the first line. Thanks to @ptqa.No issues found in every format, so --format json | jq failed on exactly the case it most needs to handle. JSON and YAML now give an array, --format quiet and --format csv give nothing at all, and table output keeps the explanation.jira issue comments update and delete targeted a route Jira Cloud does not have, so they always failed. Both now take the issue key first: jira issue comments update DEV-123 10100 --body "...".bb pr reviewers --add works: it used an endpoint that does not exist, so every add was a 404.docs/examples/ had invocations that could not parse. All repaired, with a test that parses each one in CI. Thanks to @alcantaraleo.--profile and --config are accepted after the subcommand, auth login prompts for anything it needs instead of failing, a flaky test in the colour code is fixed, and h2 is bumped for RUSTSEC-2026-0258.jira api -X PUT works: only the lowercase spelling parsed, while the documentation and the command's own help both showed uppercase.jira attachment list / get / download / upload / delete. download --issue DEV-123 --dir ./attachments fetches every attachment on an issue in one call, and --output - streams one to stdout for piping. Previously jira issue get showed you the attachment URL but it was behind auth, so there was no way to fetch the file. Requested in #93.jira api <path> calls any Jira REST endpoint using the credentials already in your profile, for anything the typed commands do not cover. --query handles percent-encoding, so JQL can be written plainly, and a non-2xx response prints the API's own error body instead of swallowing it.--profile and --config work anywhere: both were rejected after the subcommand even though --format was accepted there, which broke most published examples.auth login prompts: running it bare used to fail on missing arguments, despite being exactly what the CLI's own error messages tell you to run.--description or a comment --body now becomes a real Jira table instead of raw pipe characters. Thanks to @fabianderschatta.confluence page comments failed on any page that had at least one comment. It now also shows the comment body, with a new --full flag for untruncated text. Thanks to @alexevansigg.confluence attachment download dropped the /wiki path segment and always failed with a 404.aes-gcm to 0.11 and indicatif to 0.18.6, and updated quinn-proto, crossbeam-epoch and anyhow to clear security advisories.jira issue create and jira issue update take a --sprint <id> flag that assigns the issue to a sprint via the Agile API, so you no longer need to look up the board's customfield_10020 id by hand.issue get: jira issue get now displays the issue's sprint, so you can verify sprint assignment without a raw REST call.zeroize to 1.9.0.issue get: the output now includes an attachments array (id, filename, MIME type, size, download URL) in JSON, table, and markdown. Tolerant of Jira returning the attachment id as either a number or a string.jira issue comments list --full: returns the complete comment body instead of the 50-character preview.issue create/update --description and comment bodies convert Markdown (headings, lists, bold, italic, inline code, links, code blocks) into structured Atlassian Document Format. Plain text still becomes a single paragraph.confluence folder get | create | delete command group for /wiki/api/v2/folders.pipeline trigger --custom-pipeline <name> runs a named custom pipeline.issue update, transition, assign, and Confluence equivalents) no longer report false errors on an HTTP 204 No Content response. Exit codes are now reliable.proc-macro-error2 dependency and refreshed the dependency set.--field, ADF markdown extraction in issue get, and a range of Bitbucket and Confluence improvements across the 0.3 line.Full notes for every prior version (0.3.2 back to 0.1.0) are on GitHub: