Skip to content

Releases: Gomouu/accord

Accord v3.4.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 19:33

Fixed

  • Critical: messages could no longer be exchanged at all (regression
    introduced in 3.0.0). The transport installed initiator-side sessions inside
    a debug_assert! — whose argument is not evaluated in release builds
    so the shipped app silently discarded every session it initiated. Both peers
    on 3.x could complete handshakes forever without ever being able to talk
    (infinite reconnection churn, every outgoing send failing). Debug-profile
    tests were all green, which is why CI never caught it. If you and your
    friends saw messages stop after updating to 3.x: this was it — update both
    sides to 3.4.0.
  • Update notes are now rendered (headings, bold, lists, code) in
    Settings → Updates instead of showing raw Markdown markup.

Added

  • Support log file: set the ACCORD_LOG_FILE environment variable to
    capture the app's journal to a file (a GUI app's stdout is lost), plus
    precise transport diagnostics: every failed send now logs its reason, and
    every established session logs its role, address and tunnel flag.

CI

  • Release-profile transport tests: the hermetic SimNet end-to-end suites
    now also run compiled in release mode — code behavior can diverge between
    profiles (debug_assert! is compiled out), which is exactly how the 3.0.0
    regression escaped. This step alone would have blocked it (9/11 tests fail
    with the bug present).
  • clippy::debug_assert_with_mut_call enforced: any state-mutating call
    inside a debug_assert!/debug_assert_eq! is now a hard CI failure.

Changed

  • mdns-sd 0.20.1 → 0.20.2 (LAN discovery; note: a malformed mDNS
    announcement from another device can still crash the discovery thread
    upstream — tracked separately, does not affect remote friends).
Install notes (macOS "damaged" warning, Windows SmartScreen)

macOS — the app is not damaged: it is not notarized by Apple (that requires a paid developer certificate), and macOS reports quarantined, non-notarized apps as "damaged" on Apple Silicon. Fix it once, after dragging Accord into Applications:

xattr -cr /Applications/Accord.app

Windows — the installer is not code-signed: click More info → Run anyway.

Accord v3.3.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 17:30

Added

  • Emoji autocomplete in the composer: type : followed by at least two
    letters (e.g. :fire, :chat) and a suggestion popup opens — Unicode emojis
    matched by their French/English keywords plus the current server's custom
    emojis (aggregated across your servers in DMs), keyboard navigation
    (arrows, Enter/Tab to insert, Esc to close), mentions keep priority.
  • Personalized quick reactions: the hover reaction bar now offers your
    most recent emojis first (shared with the emoji picker), topped up with the
    classic defaults.
  • Draft indicator: conversations and channels where you left an unsent
    message show a small pencil in the sidebar, live-updated as you type and
    restored on restart.

Fixed

  • Banner/profile sometimes never arriving after a silent restart
    (root-caused, second episode)
    : when a peer died abruptly (no UDP goodbye)
    and came back at a new address, its friend kept TWO direct sessions for the
    same identity for up to 2 minutes — and could route every profile announce
    into the dead one (a UDP black hole, no error, no retry before the 30-minute
    periodic re-announce). Identity→session resolution now prefers the session
    with the most recent inbound traffic. Deterministic transport test added;
    the flaky recovery e2e went from ~6/10 to 10/10 in isolation.

Tests

  • Playwright end-to-end suite (app/e2e/, npm run e2e): 15 browser
    tests against the UI showcase — navigation, server menu (keyboard included),
    composer, thread behaviors, plus 6 visual-regression baselines across
    dark/light/wisteria at two window sizes.
Install notes (macOS "damaged" warning, Windows SmartScreen)

macOS — the app is not damaged: it is not notarized by Apple (that requires a paid developer certificate), and macOS reports quarantined, non-notarized apps as "damaged" on Apple Silicon. Fix it once, after dragging Accord into Applications:

xattr -cr /Applications/Accord.app

Windows — the installer is not code-signed: click More info → Run anyway.

Accord v3.2.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 14:02

Changed

  • Richer server dropdown menu: "Mark as read" now sits at the top whenever
    the server has unread channels (same sweep as the rail context menu), and a
    new "Edit my server profile" entry opens Server settings → Members directly
    (per-server nickname and avatar).
  • Your panel shows your status, not your friend code: the bottom-left user
    panel now falls back to your presence (Online, Idle, Do not disturb,
    Invisible) when no custom status is set — the friend code no longer appears
    there (it lives in Settings → My account and the Friends tab). Set a written
    status by clicking your profile and typing in the "Custom status" field.
Install notes (macOS "damaged" warning, Windows SmartScreen)

macOS — the app is not damaged: it is not notarized by Apple (that requires a paid developer certificate), and macOS reports quarantined, non-notarized apps as "damaged" on Apple Silicon. Fix it once, after dragging Accord into Applications:

xattr -cr /Applications/Accord.app

Windows — the installer is not code-signed: click More info → Run anyway.

Accord v3.1.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 11:21

Changed

  • Server dropdown menu redesigned (Discord-style): hovering or keyboard-
    focusing a row now fills it with blurple (red for "Leave server") with white
    text and icons, rows are tighter and more polished, the "Hide muted
    channels" checkbox inverts to white on hover, and the French label "Créer la
    catégorie" was fixed to "Créer une catégorie".
Install notes (macOS "damaged" warning, Windows SmartScreen)

macOS — the app is not damaged: it is not notarized by Apple (that requires a paid developer certificate), and macOS reports quarantined, non-notarized apps as "damaged" on Apple Silicon. Fix it once, after dragging Accord into Applications:

xattr -cr /Applications/Accord.app

Windows — the installer is not code-signed: click More info → Run anyway.

Accord v3.0.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 09:49

A reliability, diagnostics and authoring release. Fully backward-compatible on
the wire with 2.x — every new capability is local or negotiated, so a friend
still on 2.3.x keeps working unchanged.

Added

  • Faster, more reliable reconnection to friends: Accord now remembers each
    friend's last known direct address (persisted, 14-day freshness) and dials
    those addresses at startup, in addition to the usual DHT bootstrap — so
    sessions come back without waiting for peer discovery, including after the
    Mac wakes from sleep.
  • Per-friend network panel (Settings → Network → "Connection to your
    friends"): for each friend, whether a session is currently active and the
    last address you reached them at — connectivity diagnostics without
    screenshots.
  • Markdown tables (GitHub-flavored): header + alignment row, column
    alignment, escaped pipes, rendered in a scrollable frame.
  • Markdown task lists (- [ ] / - [x]): checkbox items render without a
    bullet, with a read-only checkbox.
  • Copy conversation as Markdown: a header button on any DM or channel
    copies the whole loaded thread to the clipboard as a clean Markdown
    transcript — messages grouped by day, deleted messages redacted (never their
    content), attachments listed by name.
  • "Back to latest" button: when you scroll up in a thread, a floating
    button appears at the bottom-right to jump straight back to the most recent
    message (one click), and disappears once you're at the bottom.
  • Full date on hover: hovering a message timestamp now shows the complete
    date and time as a tooltip.
  • Copy button on code blocks: fenced code blocks now show a "Copy" button
    on hover that copies the block's exact source to the clipboard.
  • Voice message playback speed: a button on the voice-message player cycles
    through 1×, 1.5× and 2× playback speed.
  • Project website + French user guide (GitHub Pages): a download landing
    page and a step-by-step guide (install, peer-to-peer connection,
    troubleshooting), deployed from website/.

Performance

  • Long conversations scroll smoothly: the message list now renders only
    the visible tail of the thread to the DOM (80 rows, extending by 80 as you
    scroll up, with scroll anchoring) instead of every loaded message. Jump
    targets and the "new messages" divider are always rendered; switching
    conversations resets the window.

Internal

  • The conversation view was split into focused modules (chat/DmView,
    chat/MemberList, chat/panels, chat/common) — every source file is now
    under 800 lines. Pure moves, no behavior change.

  • Custom theme editor (Settings → Appearance): a 25th "Custom" tile —
    pick your chat background, side-panel and accent colors on a dark or light
    base; the rest of the palette (hovers, inputs, rail, tooltip) is derived
    automatically and applied live. The gallery tile previews your colors.

  • Share a theme by code: export your custom theme to a compact
    accord-theme:… code you can paste to a friend, and import theirs.

  • Interface font choice (Settings → Appearance): System, Rounded or Serif
    — all native system families, nothing downloaded.

  • Scheduled Do Not Disturb (Settings → Notifications): silence sounds and
    notifications during a chosen time range (spanning midnight supported).

Fixed

  • "My friend's banner/profile never arrives" (field bug, root-caused):
    when two peers re-established contact after a restart, the direct dial and
    the hole-punch volley crossed — both sides opening a handshake at once
    (simultaneous open). The peer that the tie-breaker turns into the
    responder had its own outgoing handshake dropped, and every message it
    had queued on that handshake was silently discarded
    — typically the
    profile/banner announce it was about to send. The transport now re-seals and
    delivers that queued backlog under the freshly-established session, so no
    message is lost when handshakes cross. Covered by a new deterministic
    transport test. Two safety nets were added on top: the profile announce is
    replayed on the first inbound message of each session episode, and friend
    addresses are persisted from pending-friendship sessions too (the on-connect
    hook alone missed sessions opened before mutual friendship).

Tests

  • New reconnexion_e2e binary: a friend reconnects purely from the persisted
    address cache after a restart (no re-registration, no DHT), and a message
    queued while a friend was offline is delivered once they reconnect.
  • e2e determinism: friend-sync test binaries disable mDNS (they register peers
    manually) and widen wait windows to tolerate parallel CPU contention.
Install notes (macOS "damaged" warning, Windows SmartScreen)

macOS — the app is not damaged: it is not notarized by Apple (that requires a paid developer certificate), and macOS reports quarantined, non-notarized apps as "damaged" on Apple Silicon. Fix it once, after dragging Accord into Applications:

xattr -cr /Applications/Accord.app

Windows — the installer is not code-signed: click More info → Run anyway.

Accord v2.3.4

Choose a tag to compare

@github-actions github-actions released this 18 Jul 20:08

Fixed

  • Server banner no longer overflows the sidebar's rounded top corners: the
    server header now matches the column radius (with the same responsive
    breakpoints), and the banner image and its scrim inherit it.
Install notes (macOS "damaged" warning, Windows SmartScreen)

macOS — the app is not damaged: it is not notarized by Apple (that requires a paid developer certificate), and macOS reports quarantined, non-notarized apps as "damaged" on Apple Silicon. Fix it once, after dragging Accord into Applications:

xattr -cr /Applications/Accord.app

Windows — the installer is not code-signed: click More info → Run anyway.

Accord v2.3.3

Choose a tag to compare

@github-actions github-actions released this 18 Jul 19:44

Added

  • Play large videos in the conversation: a new setting (Settings → Text &
    media) raises the inline video-player size limit — 8 MiB (default), 50,
    100 or 500 MiB. Up to 8 MiB videos still load automatically; beyond that
    and up to your chosen limit, the video shows a "Play video" card and the
    download only starts when you click it (auto-download stays capped, so a
    peer can never force a huge transfer). Once downloaded, the video is
    streamed from disk (asset protocol) — no giant in-memory payload —
    and plays right in the thread.
Install notes (macOS "damaged" warning, Windows SmartScreen)

macOS — the app is not damaged: it is not notarized by Apple (that requires a paid developer certificate), and macOS reports quarantined, non-notarized apps as "damaged" on Apple Silicon. Fix it once, after dragging Accord into Applications:

xattr -cr /Applications/Accord.app

Windows — the installer is not code-signed: click More info → Run anyway.

Accord v2.3.2

Choose a tag to compare

@github-actions github-actions released this 18 Jul 19:18

Fixed

  • Image zoom no longer breaks: the fullscreen viewer was rendered inside
    the chat panel, and since Liquid Glass an ancestor backdrop-filter turns
    into the containing block for position: fixed — the overlay came out
    clipped and misplaced. It now renders at the document root (portal).
  • Floating panels readable again on animated themes: server menu, server
    settings and other glass surfaces were far too translucent when the
    backdrop blur silently fails (WKWebView + animated scene layers) — content
    behind bled through. Glass panels are now near-opaque, with the blur kept
    as a progressive enhancement.

Changed

  • Bigger emojis in messages: unicode emojis are rendered ~45% larger
    than the surrounding text, and custom server emojis go from 22 px to 28 px
    (48 px with the "large" setting).
Install notes (macOS "damaged" warning, Windows SmartScreen)

macOS — the app is not damaged: it is not notarized by Apple (that requires a paid developer certificate), and macOS reports quarantined, non-notarized apps as "damaged" on Apple Silicon. Fix it once, after dragging Accord into Applications:

xattr -cr /Applications/Accord.app

Windows — the installer is not code-signed: click More info → Run anyway.

Accord v2.3.1

Choose a tag to compare

@github-actions github-actions released this 18 Jul 16:01

Added

  • Drag and drop into the chat: drop images, videos or any files anywhere
    on the conversation — a "Drop to send" overlay appears, and the files are
    attached to the message being written. In the desktop app, dropped files
    go through the unbounded disk path (up to 2 GiB), like the attach button.
    The previous composer-only drop zone silently did nothing in the packaged
    app (the webview intercepts OS file drags) — now handled natively.
  • Built-in video player: video attachments (up to 8 MiB) play directly
    in the thread — download progress, then a standard player, with a Retry
    button if the sender is unreachable. Larger videos keep the downloadable
    file card.
  • Dedicated Updates tab: the update section moved out of Settings →
    System into its own Settings → Updates tab.
Install notes (macOS "damaged" warning, Windows SmartScreen)

macOS — the app is not damaged: it is not notarized by Apple (that requires a paid developer certificate), and macOS reports quarantined, non-notarized apps as "damaged" on Apple Silicon. Fix it once, after dragging Accord into Applications:

xattr -cr /Applications/Accord.app

Windows — the installer is not code-signed: click More info → Run anyway.

Accord v2.3.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 15:37

Fixed

  • Friends' avatars and banners now sync reliably ("I never see their
    banner even though they set one"): profiles are now exchanged every time
    two friends connect
    , instead of relying on best-effort channels that
    could all fail together in the field — a change announcement missed while
    offline, an offline drop published to an unreachable DHT, or reconnection
    windows shorter than the periodic re-announce. One tiny message per
    session; peers only download media whose hash actually changed.
  • Offline drops no longer vanish into an empty DHT: a mailbox deposit
    that reached zero replicas was still marked as delivered, silently losing
    the message until its 7-day expiry. Zero-replica deposits are now retried
    (direct sending keeps its own schedule).
  • Failed images can be retried: an image attachment that could not load
    (sender offline at that moment) showed a permanent "image unavailable"
    card. It now has a Retry button — useful right after the sender comes back
    online. End-to-end coverage added for the three field scenarios (profile
    media while both online, set while the friend is offline, and a lost
    announcement recovered on reconnect).
Install notes (macOS "damaged" warning, Windows SmartScreen)

macOS — the app is not damaged: it is not notarized by Apple (that requires a paid developer certificate), and macOS reports quarantined, non-notarized apps as "damaged" on Apple Silicon. Fix it once, after dragging Accord into Applications:

xattr -cr /Applications/Accord.app

Windows — the installer is not code-signed: click More info → Run anyway.