Skip to content

Releases: centopw/alloy

Alloy v0.2.3

Alloy v0.2.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 15:08

Highlights

Added

  • Groundwork for F-Droid. Store listing text, icon and screenshots (fastlane/), and a draft build recipe with the open points in docs/FDROID.md. A build made with ALLOY_DISTRIBUTION=fdroid leaves updates to the store and skips the release-page update check. Alloy is not on F-Droid yet.

Fixed

  • Scrolling up through a chat no longer jumps around. Loading older messages put the view back at the top of what had just loaded, and a freshly opened chat could sit at its oldest loaded message instead of the newest. Older messages from the same day are now added without moving the message you are reading.
  • The down-arrow count no longer includes messages you already read. Loading history while scrolled up raised the "new messages" number; it now counts only messages that arrive after the newest one you have seen.
  • Security: the plugin sandbox (wasmtime) is updated to 49.0.4, which fixes two advisories (RUSTSEC-2026-0378 and RUSTSEC-2026-0379).

What's changed

Features

  • android: Add F-Droid listing metadata and a store build flag (a66b720)

Bug Fixes

  • ui: Keep the scroll position while older messages load (9f993b2)
  • ui: Reset the scroll state when the room changes (3d8ba91)
  • deps: Update wasmtime to 49.0.4 for two security advisories (c79d91d)

Testing

  • engine: Ignore a failed rule clear on the throwaway room (015e6b3)

Full changelog: v0.2.2...v0.2.3


Install

Unsigned pre-release build. See CHANGELOG.md for what is included and the known gaps.

macOS: the app is not notarized yet, so the first launch needs one extra step. Drag Alloy to Applications, then right-click it and choose Open, or allow it under System Settings > Privacy & Security > Open Anyway. From a terminal: xattr -dr com.apple.quarantine /Applications/Alloy.app

Windows: SmartScreen may warn; choose More info > Run anyway.

Android: signed with a throwaway key; uninstall the previous version before installing a new one.

Alloy v0.2.2

Alloy v0.2.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 07:48

Highlights

Added

  • Refresh. A Refresh button in the chat list header (Ctrl/Cmd+R or F5 on desktop, pull the chat list down on a phone, or "Refresh" in the timeline menu) restarts the connection to your server and reloads the open chat. Your open chat, reply and half-written edit stay as they were.

Changed

  • Messenger-style long-press on phones: pressing and holding a message dims the conversation with a spotlight keeping the pressed message bright, floats the emoji pill directly above the bubble, and shows a bottom action bar with large Reply, Copy (or Pin/Download), Forward, and More buttons.
  • Telegram-style desktop right-click: the reaction strip floats as a separate pill directly above the rounded menu card, with message actions reordered to match Telegram (Reply, Edit, Copy text or picture, Pin/Unpin, Download, Forward, Select, Delete).
  • Copy picture: copying an image, sticker, or GIF from the context menu or phone action bar converts it to PNG and places it on the system clipboard.

Fixed

  • Latest messages sometimes missing until you restart. Alloy's sync service stayed stopped after a network or server error. It now restarts itself, with a growing pause between attempts.
  • Reactions from the long-press pill and the right-click strip did nothing. Tapping an emoji closed the menu without reacting.
  • Android long-press tap: lifting your finger after pressing and holding a message no longer triggers the dimmed backdrop or a menu action.
  • Android emoji search: the results no longer vanish when the keyboard opens.
  • Android picture paste: pictures on the clipboard are read through the app, and the attach menu offers "Picture from clipboard" when there is one.
  • Reaction chips are 44 px tall on phones.

What's changed

Features

  • core: Refresh sync and restart it after errors (6c214a3)
  • ui: Refresh, phone and desktop message menus, android paste (8dbf5f4)

Testing

  • e2e: Retry opening a chat until its header shows (45c1f46)
  • e2e: Name the script line of a failing step (0fa6397)

Miscellaneous Tasks

  • Shard the engine tests, warm the release caches, harden release (44d7bb9)
  • release: Gate releases on green CI and one version source (87fc9e8)
  • release: Wait for CI to start and resume a stopped release (edd7842)

Full changelog: v0.2.1...v0.2.2


Install

Unsigned pre-release build. See CHANGELOG.md for what is included and the known gaps.

macOS: the app is not notarized yet, so the first launch needs one extra step. Drag Alloy to Applications, then right-click it and choose Open, or allow it under System Settings > Privacy & Security > Open Anyway. From a terminal: xattr -dr com.apple.quarantine /Applications/Alloy.app

Windows: SmartScreen may warn; choose More info > Run anyway.

Android: signed with a throwaway key; uninstall the previous version before installing a new one.

Alloy v0.2.1

Alloy v0.2.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 04:20

Highlights

Added

  • Notifications on Android while Alloy is closed, without Google services (ADR 0009). Works with a UnifiedPush app such as ntfy. Turn it on in Settings > Notifications > "When Alloy is closed". New messages, including ones in encrypted rooms, show who wrote and what they said (or only "New message" when Show message preview is off); tapping one opens that chat. Nothing is shown while the app is open, and turning it off removes the registration from your server.
  • An offline notice. When the connection drops, a bar says so and Alloy checks again every few seconds; settings and tags that failed to load come back by themselves when the connection returns.
  • Paste a picture into the message box on desktop and Android: a screenshot copied as an image, or a picture file copied in your file manager or screenshot tool (which used to paste its path as text). The picture waits above the box with a preview; press Enter or Send picture to send it, or remove it.

Fixed

  • A lost connection no longer prints the raw request address and error in the sidebar; failures to reach the server read as one plain sentence.

What's changed

Features

  • ui: Paste a screenshot or picture file into a chat (dcc79b8)
  • android: Notifications while closed via unifiedpush (095dd48)

Bug Fixes

  • ui: Show a plain offline notice and retry when the network drops (b995b7b)
  • app: Test pasted picture paths per platform (ba2967f)
  • ui: Count a server refusal as proof the server is reachable (9eeee26)
  • android: Follow the message preview setting in notifications (e5da4a1)

Testing

  • e2e: Fail the fixture when the album upload or sends fail (d9e4cc8)
  • e2e: Wait for a chat row and click it in one page task (1c10ac0)
  • e2e: Open the gallery with a DOM click and print open dialogs on failure (5f7a8f8)

Full changelog: v0.2.0...v0.2.1


Install

Unsigned pre-release build. See CHANGELOG.md for what is included and the known gaps.

macOS: the app is not notarized yet, so the first launch needs one extra step. Drag Alloy to Applications, then right-click it and choose Open, or allow it under System Settings > Privacy & Security > Open Anyway. From a terminal: xattr -dr com.apple.quarantine /Applications/Alloy.app

Windows: SmartScreen may warn; choose More info > Run anyway.

Android: signed with a throwaway key; uninstall the previous version before installing a new one.

Alloy v0.2.0

Alloy v0.2.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 23:14

Highlights

Added

  • Messenger and Telegram style conversations (ADR 0008):
    • Reactions: hover bar on desktop; on a phone press and hold a message for a pill of your emoji beside it, or double tap to react with your first emoji. Tap or right-click a reaction to see who reacted.
    • Reply: swipe a message to the right on a phone; the Up arrow in an empty message box edits your last message on desktop.
    • Seen: one check when sent, two when someone has read it, and avatars of readers under your newest message in small rooms (setting: Show who has read your messages).
    • Pinned messages with a bar under the header, Forward to several rooms, Select several messages to copy, forward or delete, and Delete for everyone with a confirmation (moderators can delete others' messages).
    • Jump to latest shows how many new messages arrived, and an @ button jumps to messages that mention you.
  • Chat list: pin chats to the top, archive them, mark as unread, mute for 1 hour, 8 hours, 24 hours or until you turn it back on, a "more" button on hover, swipe a chat left for Mute and Archive on a phone, and unsent text shows as "Draft:" in the list and comes back when you return.
  • Search all chats: the sidebar search also finds message text across your unencrypted rooms.
  • Media: pictures sent together appear as one album; the viewer is a gallery (swipe or arrow keys, pinch or double tap to zoom, swipe down to close, sender and time); audio plays inline with a waveform and 1x / 1.5x / 2x speed; Android can now download media to the Downloads folder; the attach button takes several files at once.
  • Voice messages: hold the microphone on a phone (slide left to cancel, up to lock) or click it on desktop. Voice notes from other Matrix clients play too.
  • Writing: a formatting toolbar on selected text (and an "Aa" row on phones) with Bold, Italic, Strikethrough, Code, Spoiler, Quote and Link, plus Ctrl/Cmd shortcuts; ||spoilers|| stay blurred until clicked; @room pings everyone when you are allowed to.
  • Location: send your location or share it live for 15 minutes, 1 hour or 8 hours, with a banner and Stop button; received locations show a card that opens a map in your browser. No map is loaded inside the app.
  • Safety: sign out one or all other sessions, change a member's role, remove or ban members, report a message, and block people (Settings > Security and privacy lists and unblocks them).

Changed

  • The update prompt is a small, quiet notice above your account card instead of a bright button in an extra top bar. It never interrupts: dismiss it with the X (it returns next launch), skip a version from its menu, or keep chatting and restart whenever you like.
  • Opening a picture or video fills the whole window on every platform, with the picture on the plain background.
  • Pictures, videos and stickers sent without a caption sit straight on the timeline: no bubble or panel behind them, and a bare file name is no longer shown as a caption.
  • Phones: tapping the message box no longer jumps the conversation to older messages when the keyboard opens.
  • Quick reactions are yours to choose in Settings > Preferences > Reactions (synced across your devices).
  • Start typing anywhere in a conversation and the text goes into the message box, no click needed.
  • Read receipts are now tracked in every conversation (needed for the seen marks).
  • Deleting a message asks first.

What's changed

Features

  • ui: Quiet update notice, full-screen media viewer and type to focus (742dd1e)
  • ui: Quick reaction bar on hover and long press with a setting (02742df)
  • engine: Pins, forward, drafts, voice, location and moderation (5144e1a)
  • ui: Chat parity with Messenger and Telegram (26dbc14)

Bug Fixes

  • ui: Keep the timeline view steady when the keyboard opens (c692f74)
  • e2e: React through the quick-reaction bar and add a one-click step (30727df)
  • ui: Ignore a pagination answer from a room the user left (d102a5c)

Testing

  • e2e: Open a menu and click its entry in one page task (aa1c0c4)
  • e2e: Print the page text when a step fails (f72f179)

Full changelog: v0.1.9...v0.2.0


Install

Unsigned pre-release build. See CHANGELOG.md for what is included and the known gaps.

macOS: the app is not notarized yet, so the first launch needs one extra step. Drag Alloy to Applications, then right-click it and choose Open, or allow it under System Settings > Privacy & Security > Open Anyway. From a terminal: xattr -dr com.apple.quarantine /Applications/Alloy.app

Windows: SmartScreen may warn; choose More info > Run anyway.

Android: signed with a throwaway key; uninstall the previous version before installing a new one.

Alloy v0.1.9

Alloy v0.1.9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 13:17

Highlights

Added

  • Link previews: messages with a link show a card (site, title, description, picture) built by your homeserver. Setting in Preferences: Off, Unencrypted rooms only (default), or All rooms. Right-click a card to open or copy the link, or hide it.
  • Download media: a Download button in the image/video viewer and a Download entry in the message menu save the file through the system Save dialog (desktop). Android hides the action until saving to the public Downloads folder is verified.
  • README rewritten for people, with a banner, screenshots, live project stats and an activity section; scripts/readme-shots.mjs regenerates the screenshots from the built-in demo data.

Fixed

  • The full-size image/video viewer fits the window instead of overflowing.
  • Android: the web layer no longer adds the status-bar inset on top of the native one (an empty band at the top on newer WebViews); the update button sits in the Chats header on phones instead of a separate strip.
  • The demo mode no longer errors when loading older messages and shows a believable conversation.

Added

  • Search inside a chat: the header Search button, the Details Search button and Ctrl/Cmd+F open a message search for the current room: by text and by sender (from:name or the From menu), filtered by All / Media / Links / Files, with highlighted matches; clicking a result jumps to the message, loading older history if needed. Encrypted rooms (which the server cannot search) are searched on this device, with a button to search older messages. The sidebar search and Ctrl/Cmd+K remain the room switcher ("Search rooms").
  • Settings sync across devices: preferences that describe how you like the app (time format, room list options, sort, typing and event toggles, autoplay, ...) are stored in your Matrix account data and follow you to other devices; changes from another device apply live. Settings that depend on the device (message layout, font size, notifications, Enter to send, open at login, update toggles) stay on the device.
  • Details panel: a bell button for the room's notification level (full labels, current level checked); Copy ID copies the other person's Matrix ID in a DM (the room ID otherwise); one Shared section with Media / Links / Files tabs.
  • The room picture changes only by pressing the picture (header or Details): Replace or Remove.

Changed

  • All matrix.to "Copy link" actions (rooms, spaces, messages) are removed.
  • Buttons and inputs share one control height (36px, 44px on phones), so a field and its button line up.

Fixed

  • Choosing a tag for a room from its menu now shows at once (check mark, dots, chip counts) and rolls back on failure.

What's changed

Features

  • core: Sync prefs via account data and search room messages (97af848)
  • ui: In-room search, synced prefs, details and tag toggle fixes (6a7e6af)
  • core: Preview links through the homeserver and save media files (621370f)
  • ui: Link preview cards, media download, fitted viewer, android inset fix (ab04e81)

Bug Fixes

  • ui: Flush pending prefs on hide and drop synced prefs on sign-out (af5410e)
  • ui: Use the inset tokens in the phone details overlay (035a9f0)

Documentation

  • Describe search scopes, synced settings and the changelog (bdf22b3)
  • Rewrite the readme for people with banner, screenshots and stats (aa68465)

Full changelog: v0.1.8...v0.1.9


Install

Unsigned pre-release build. See CHANGELOG.md for what is included and the known gaps.

macOS: the app is not notarized yet, so the first launch needs one extra step. Drag Alloy to Applications, then right-click it and choose Open, or allow it under System Settings > Privacy & Security > Open Anyway. From a terminal: xattr -dr com.apple.quarantine /Applications/Alloy.app

Windows: SmartScreen may warn; choose More info > Run anyway.

Android: signed with a throwaway key; uninstall the previous version before installing a new one.

Alloy v0.1.8

Alloy v0.1.8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 07:57

Highlights

Added

  • Redesign (ADR 0007): the workspace follows the new design spec: flat docked panes with hairline borders, 68px rail, 240px list pane with All / Direct / Channels / Unread chips, a single scrolling Details panel (About, Private note, Shared media, Files, Links, Members with "View all"), 6px-radius inputs and composer, one blue accent.
  • Tiered room menu: Mark as read, Notifications, Tags, Room settings, Copy, Leave. Hovering Notifications, Tags, Room settings or Copy opens a small menu beside it. The Tags menu is scrollable, has a search field, and typing a new name offers "Create tag" (Enter). There is no "Open" entry any more.
  • No native right-click menus anywhere. Every surface has our own quick menu: tag chips (rename, colour, move, delete), filter chips, sort button, space rail, chat header, composer buttons, timeline background, and text fields (Cut/Copy/Paste/Select all), links and selections.
  • Emoji picker: category tabs, search, recently used, skin tones, keyboard navigation; used by the composer and by reactions.
  • Updates: automatic check every 6 hours (toggle), automatic download (toggle, desktop), native changelog dialog with the release notes ("View on GitHub" stays available), an "Update" button in a slim title strip that becomes "Restart to apply update" after the download.

Fixed

  • A room you read stays read after a restart (read marks are stored on the device).
  • Manage tags opens Settings directly on the Tags page.
  • Buttons and filter chips are full-size touch targets on phones.

What's changed

Features

  • app: Split update download from apply and ship notes in the feed (6537b29)
  • theme: Follow the workspace design spec with an accent fill token (2e3027f)
  • ui: Redesign, tiered menus, emoji picker, update pill and read marks (fdd0177)

Bug Fixes

  • ui: Keep the manual resize grip on text areas that do not auto-grow (447c56c)

Documentation

  • Add adr 0007 and describe the redesign, menus, emoji and updates (2d47c93)

Testing

  • ui: Cover the manage tags deep link in the desktop e2e (707bac2)

Full changelog: v0.1.7...v0.1.8


Install

Unsigned pre-release build. See CHANGELOG.md for what is included and the known gaps.

macOS: the app is not notarized yet, so the first launch needs one extra step. Drag Alloy to Applications, then right-click it and choose Open, or allow it under System Settings > Privacy & Security > Open Anyway. From a terminal: xattr -dr com.apple.quarantine /Applications/Alloy.app

Windows: SmartScreen may warn; choose More info > Run anyway.

Android: signed with a throwaway key; uninstall the previous version before installing a new one.

Alloy v0.1.7

Alloy v0.1.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 05:52

Highlights

Added

  • Custom room tags (ADR 0006): define your own tags (name, colour, order) in Settings > Tags, toggle them from a room's menu, filter the room list by a tag and sort it by activity, name, unread or tag. Tags are standard Matrix room tags (u.<id>), so other clients see them; the catalogue syncs through account data. New commands GetTagCatalog, SaveTagCatalog, SetRoomTag, DeleteRoomTag.
  • Replies show a proper quote (sender name, two-line excerpt) above the text in every layout; clicking it jumps to the original message when it is loaded.
  • GitHub release pages now list highlights, the commits since the previous version grouped by type, and a compare link (scripts/release-notes.sh).

Changed

  • One members UI: the separate members sidebar is gone; the header people button opens Room info > Members.
  • Dropdowns and text boxes use our own controls instead of the browser's (Select, TextField, TextArea); enforced by a test.
  • Settings are platform-aware: phones no longer show the Keyboard page or Enter-to-send, Android no longer shows "open at login", the Sidebar page becomes "Chat list" on phones.

Fixed

  • Hovering a message in the bubbles layout no longer makes it grow and push the messages below it.
  • The unread badge no longer stays on after you have read a room (a stale server counter is ignored once you have read the room, until something newer arrives).
  • Text areas no longer show the browser's resize grip.

What's changed

Features

  • core: Add custom room tags to the engine (f3aef09)
  • ui: Room tags, shared controls, one members ui and reply quotes (46e78d0)

Documentation

  • Add adr 0006 and update the plan, readme and changelog (d9b47c6)

Miscellaneous Tasks

  • Generate release notes with grouped commits and a compare link (c0b5505)

Full changelog: v0.1.6...v0.1.7


Install

Unsigned pre-release build. See CHANGELOG.md for what is included and the known gaps.

macOS: the app is not notarized yet, so the first launch needs one extra step. Drag Alloy to Applications, then right-click it and choose Open, or allow it under System Settings > Privacy & Security > Open Anyway. From a terminal: xattr -dr com.apple.quarantine /Applications/Alloy.app

Windows: SmartScreen may warn; choose More info > Run anyway.

Android: signed with a throwaway key; uninstall the previous version before installing a new one.

Alloy v0.1.6

Alloy v0.1.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 04:06

Highlights

Fixed

  • Help & About: the Updates row no longer scatters its status text and buttons across the card. Status and actions share one column aligned to the same right edge as the other values, with the label on the first line; the "Check for updates" button is outlined, and the source link is a 44 px target on phones.
  • Buttons use the app font instead of the browser's default button font.
  • The phone E2E audit now covers Help & About.

What's changed

Bug Fixes

  • ui: Align the Help & About rows and use the app font in buttons (891970f)

Full changelog: v0.1.5...v0.1.6


Install

Unsigned pre-release build. See CHANGELOG.md for what is included and the known gaps.

macOS: the app is not notarized yet, so the first launch needs one extra step. Drag Alloy to Applications, then right-click it and choose Open, or allow it under System Settings > Privacy & Security > Open Anyway. From a terminal: xattr -dr com.apple.quarantine /Applications/Alloy.app

Windows: SmartScreen may warn; choose More info > Run anyway.

Android: signed with a throwaway key; uninstall the previous version before installing a new one.

Alloy v0.1.5

Alloy v0.1.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 03:26

Highlights

Documentation

  • README rewritten for the current state (what works, roadmap, install, development, architecture, doc index); apps/alloy/README.md replaces the template text.
  • docs/PLAN.md: decisions D11 to D14 (layout, functional settings, mobile shell, advisory and release policy), P1 marked complete with the shipped v0.1.x, P2 status, and a roadmap section (what changed against the plan, now, next, later).

Security / CI

  • GitHub Actions moved off the deprecated Node 20 runtime: actions/checkout v7, setup-node v7, setup-java v6, pnpm/action-setup v6, upload-artifact v7.
  • The daily audit runs cargo audit and cargo deny directly instead of rustsec/audit-check, which opened one GitHub issue per advisory (including ones deliberately accepted in deny.toml / .cargo/audit.toml). A new or unaccepted advisory now fails the job instead.

Fixed

  • Rooms now load their older history by themselves when the newest messages do not fill the screen (and when the window grows), instead of showing only the latest few messages until you could scroll.
  • The unread badge clears once a room is read: the newest message counts as read as soon as it is on screen (opening the room, a message arriving while you are at the bottom, returning to the window), and the room list uses the client-computed unread counts, which drop the moment the read receipt is sent, instead of homeserver counters that can stay stale.

What's changed

Bug Fixes

  • ui: Load room history automatically and clear unread once read (687159b)

Documentation

  • Bring readme and plan up to date with v0.1.4 and the roadmap (13f98fb)

Miscellaneous Tasks

  • Fix the mobile e2e step name so the workflow parses (eb64039)
  • Move to current action majors and fail audits instead of filing issues (6060670)

Full changelog: v0.1.4...v0.1.5


Install

Unsigned pre-release build. See CHANGELOG.md for what is included and the known gaps.

macOS: the app is not notarized yet, so the first launch needs one extra step. Drag Alloy to Applications, then right-click it and choose Open, or allow it under System Settings > Privacy & Security > Open Anyway. From a terminal: xattr -dr com.apple.quarantine /Applications/Alloy.app

Windows: SmartScreen may warn; choose More info > Run anyway.

Android: signed with a throwaway key; uninstall the previous version before installing a new one.

Alloy v0.1.4

Alloy v0.1.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Oct 17:00

Highlights

Changed

  • Phones get a real mobile UI (ADR 0005): bottom tab bar, one screen at a time, full-screen room info/members/thread/settings pages, bottom sheets for dialogs and menus, long-press message actions, a Send button, 44px touch targets, bubbles by default.

Fixed

  • The page no longer scrolls or bounces on phones; only lists scroll.
  • Long room names no longer run under the header buttons; the composer placeholder stays on one line.

What's changed

Features

  • ui: A real mobile UI with tab bar, sheets and full-screen pages (713f681)

Full changelog: v0.1.3...v0.1.4


Install

Unsigned pre-release build. See CHANGELOG.md for what is included and the known gaps.

macOS: the app is not notarized yet, so the first launch needs one extra step. Drag Alloy to Applications, then right-click it and choose Open, or allow it under System Settings > Privacy & Security > Open Anyway. From a terminal: xattr -dr com.apple.quarantine /Applications/Alloy.app

Windows: SmartScreen may warn; choose More info > Run anyway.

Android: signed with a throwaway key; uninstall the previous version before installing a new one.