Skip to content

v0.13.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 09:11
· 40 commits to main since this release
Immutable release. Only release title and notes can be modified.

In short

  • New: saveDraft can edit an existing draft (draftId) instead of creating another one. A reply or a forward
    saved as a draft or sent directly, and a new draft, now have the body Thunderbird itself would write: the quote with
    its formatting, the forward header, your signature.
  • Fixed: the bridge waits long enough for saveDraft: a slow save could be reported as failed and end in a second
    draft. The notice about a bridge to update no longer skips a session that starts shortly after another one, and
    says where the bridge is.
  • Changes you may notice: drafts and direct sends now carry your signature when you have one, and the subject of
    a forward made without a window always gets the Fwd: prefix. No call that worked stops working.
  • This release changes the bridge: update it in every MCP client (steps below). A bridge 0.12 keeps working, and
    the add-on reminds you until it is replaced.
  • Release pages start with this summary and the steps to update, from now on.

How to update

  • Thunderbird add-on: it updates itself. To get this version now: Add-ons and Themes, gear menu, Check for Updates, then restart Thunderbird. For a first installation, see the README (commonpost-mcp-v0.13.0.xpi below).
  • MCP bridge: it is installed in your MCP client and is never updated automatically. This release changes the bridge: update it in every MCP client that uses it.
    • Claude Desktop: download commonpost-mcp-v0.13.0.mcpb below and open it with Claude Desktop; if the file does not open there (Windows), use Settings > Extensions > Advanced settings > Install Extension.
    • Other clients (Claude Code, Cursor, VS Code, ...): download mcp-bridge.cjs below and put it in place of your copy, then restart the client or reconnect the server (/mcp in Claude Code). The path of your copy is in the MCP configuration of the client (Claude Code: claude mcp get <server name>).
    • Not sure which bridges you have? The options page of the add-on (section Bridge) lists the bridges that connected, each with its version and "Up to date" or "Update recommended". Claude Desktop and another client on the same computer are two bridges, updated separately.

The .sigstore.json files are provenance attestations, not something to install.

All changes

Added

  • Every release page now starts with a summary in plain words ("In short": what is new, what is fixed, what breaks),
    then the steps to update the add-on and the bridge, with a line that says whether the release changes the bridge,
    then the list of changes as before. scripts/release-notes.cjs writes it from CHANGELOG.md and BRIDGE_VERSION;
    from 0.13.0 on, a release whose CHANGELOG section has no summary is refused by the Version sync check.
  • saveDraft takes draftId (and optionally its folderPath) to edit an existing draft instead of deleting and
    recreating it, as Thunderbird does when a draft is reopened and saved. Passed fields replace, the others are kept:
    recipients, subject, body, attachments, Reply-To, priority, References, Content-Language, the return receipt / DSN /
    delivery format flags and the reply or forward state. The draft keeps the format of its body; isHtml changes it only
    when the whole body is replaced. The old version is removed once the new one is stored. The result has the new
    messageId (Thunderbird gives every saved draft a new one) and replacedDraftId. With a new body, keepQuote
    (default true) replaces only the typed text and keeps the cite line, quote, forwarded message and signature;
    keepAttachments: false drops the draft's attachments. By @mazixs in #30.
    A refused attachment fails the whole call, as for a new draft, and an encrypted draft is not rewritten while
    encrypted content is not allowed: in both cases the draft stays as it is.

Changed

  • The add-on recommends bridge 0.13.0 or newer (MIN_BRIDGE_VERSION), the first that waits 150 s for saveDraft:
    an older bridge still works, and gets the notice to update in a tool result and "Update recommended" in the
    options page. mode: "send" and "draft" keep their own minimum, 0.12.0.
  • The notice for a bridge to update, in a tool result and in the options page (section Bridge), says where the copy
    to replace is (the MCP configuration of the client; claude mcp get <server name> in Claude Code) and how to
    install the .mcpb bundle when the file does not open in Claude Desktop (Settings > Extensions > Advanced settings

    Install Extension). The options page and the README say that each MCP client has its own bridge.

  • A reply without a window (mode: "draft" or "send"), saveDraft and sendMail with skipReview get the body
    Thunderbird's compose window would save with the same text typed at its caret: the localized cite line
    (mailnews.reply_header_type), the quote from Thunderbird's own quoting (nsIMsgQuote) with the original's HTML
    formatting, the identity's signature (text, HTML, file or image) placed by its reply position and signature
    settings, HTML in UTF-8, plain text as format=flowed wrapped at mailnews.wraplength. Before, a reply quoted the
    plain-text body by hand under an English "On ..., ... wrote:" line without a signature, a new message got no
    signature, a plain body went out labeled format=flowed without being flowed, and an HTML body (isHtml: true)
    had every non-ASCII character written as a &#...; reference, which made a Cyrillic body several times larger. By
    @mazixs in #28.
    While encrypted content is not allowed, Thunderbird's own quote, which decrypts, is taken only for a message that
    was read and holds no encrypted part: a reply to a message that could not be read in time quotes nothing, as before.
  • A forward without a window (mode: "draft" or "send") gets the body Thunderbird's forward window would save with
    the same text typed at its caret: the localized forward header (mail.show_headers), the forwarded body with the
    original's HTML formatting, and the identity's signature placed by its forward and position settings. Before, a
    forward quoted the plain-text body by hand under an English "Forwarded Message" header without a signature. By
    @mazixs in #29.
    • A plain-text forward keeps the signature below the forwarded message, as Thunderbird 140 and 158+ do.
      Thunderbird 150-157 drop it (bug 2063939, a regression from Gecko bug 2019689); the tool does not copy that bug.
  • The subject of a forward without a window is mail.forward_subject_prefix (default Fwd) and the original's
    subject as the message database keeps it, as Thunderbird's forward makes it: a forward of "Re: x" is "Fwd: x", and
    of "Fwd: x" is "Fwd: Fwd: x". Before, the prefix was always Fwd and was not added to a subject that had it. By
    @mazixs in #29.

Fixed

  • mcp-bridge.cjs: a saveDraft call waits up to 150 s for Thunderbird, like replyToMessage and forwardMessage
    with mode: "draft", instead of 30 s. Thunderbird can take up to 120 s to save a draft, so the bridge used to
    report a timeout for a draft that was still being saved, and a client that retried would create two. After that
    wait the error says the draft may still appear in the Drafts folder later.
  • The notice for a bridge to update reached only one of several clients that share an entry, as every bridge 0.11
    or older does (it sends no version): a session that listed its tools within 10 minutes of that notice never got
    one. Its notice now waits and goes out with its first tool call after those 10 minutes.