• j2i 1.2.0 (beta 1) Pre-Release

    kruno released this 2026-09-08 18:15:05 +00:00 | 4 commits to main since this release

    This is a beta version and has not been heavily tested. Do not run this in production. Please report any bugs you encounter.

    Added

    • XEP-0092 Software Version: the bridge answers version queries as j2i (name, package version, OS) in both client and component mode. New [settings] flags hide_version (also applies to the XMPP resource and disco identity) and hide_os (XEP-0092 only)
    • Optional XMPP→IRC ban sync in component mode: when a puppet is banned in a MUC (status 301), the corresponding IRC nick is +b'd (nick!*@*) and kicked. Off by default; enable with sync_bans globally or per [[xmpp]] / [[irc]] / [[bridge]] (most specific wins). Missing IRC ops are logged and ignored.
    • Bot avatar support via XEP-0153 (vCard-based avatars): the bridge advertises an avatar in MUCs in both client and component mode. Configurable per XMPP connection with a local path or URL (avatar), or a bundled default; images are decoded, downscaled, and re-encoded (Pillow) to fit a configurable byte budget so the vcard-temp stanza stays under the server's max stanza size. Lays the groundwork for bridging IRC user profile metadata to XMPP avatars
    • Split over-long relayed messages into multiple IRC lines on UTF-8/word boundaries so the server no longer silently truncates them; the split pieces count toward max_lines, so oversized pastes still fall back to the pastebin
    • Auto-detect the server's line-length limit from the IRCv3 LINELEN ISUPPORT token, with a new max_line_bytes setting (global or per-bridge) to override the ceiling
    • Test suite (pytest) covering the pure translation helpers: nick sanitizing, IRC→XMPP formatting, pastebin service resolution, and reply/reaction prefix building

    Fixed

    • Redact credentials (SASL payload, NickServ IDENTIFY password, server PASS) from debug logs; the command remains visible but the secret is masked as <redacted>
    • Scope reply, reaction, and body caches by connection and room so identical IRC/XMPP identifiers from different networks cannot collide

    Changed

    • Make RELAYMSG suffix configurable
    • Refactored reply/reaction prefix formatting into pure helpers and de-duplicated the shared excerpt-truncation and RELAYMSG-suffix logic
    Downloads
  • v1.1.0 69cca0c7d9

    j2i v1.1.0 Stable

    kruno released this 2026-04-29 14:46:30 +00:00 | 16 commits to main since this release

    Changelog

    Added

    • Native IRCv3 multiline support for relaying multi-line content
    • IRC-to-XMPP text formatting conversion
    • IRCv3 UTF8ONLY ISUPPORT token detection
    • IRCv3 bot mode: sets the user mode advertised by the BOT ISUPPORT token on registration
    • Reaction bridging: IRC +draft/react/+draft/unreact tags bridged natively to XMPP; XMPP reactions bridged to IRC as attributed text messages with optional quoted context

    Changed

    • XMPP resource name is now j2i <version> instead of the slixmpp default
    • XMPP entity capabilities identity and caps node now identify the client as j2i rather than slixmpp
    • Switched from +draft/reply to +reply for the reply tag
    Downloads
  • v1.0.1 c580261257

    j2i v1.0.1 Stable

    kruno released this 2026-04-24 21:17:57 +00:00 | 23 commits to main since this release

    Changelog

    Fixed

    • Corrected signal handling for SIGINT and SIGTERM for cleaner shutdown behavior

    Changed

    • Renamed Dockerfile to Containerfile and adjusted container metadata labels
    • Refined packaging/project metadata in pyproject.toml
    • Updated installation instructions in the README
    Downloads
  • v1.0.0 774114c884

    j2i v1.0.0 Stable

    kruno released this 2026-04-22 15:06:23 +00:00 | 30 commits to main since this release

    This is the first release of j2i. See README.md for more information.

    Downloads