v1.1.0 — Receive inspector, design unification, connection resilience
Downloads
| Platform | File | Size |
|---|---|---|
| 🍎 macOS (Intel + Apple Silicon universal) | AMQPush_1.1.0_universal.dmg |
9.4 MB |
| 🪟 Windows x64 — NSIS installer | AMQPush_1.1.0_x64-setup.exe |
3.1 MB |
| 🪟 Windows x64 — MSI installer | AMQPush_1.1.0_x64_en-US.msi |
4.7 MB |
| 🐧 Linux x64 — Debian/Ubuntu | AMQPush_1.1.0_amd64.deb |
6.1 MB |
| 🐧 Linux x64 — portable | AMQPush_1.1.0_amd64.AppImage |
81 MB |
Binaries are not code-signed. macOS Gatekeeper / Windows SmartScreen will warn on first launch.
- macOS: right-click
AMQPush.app→ Open → confirm.- Windows: click "More info" → "Run anyway" on the SmartScreen dialog.
- Linux (
.AppImage):chmod +x AMQPush_*.AppImage && ./AMQPush_*.AppImage.
[1.1.0] — 2026-05-08
Highlights
- Receive view rebuilt from a single-field log into a full message inspector — multi-queue subscribe, split-pane preview, highlight rules, format-aware body viewer, message diff, persistent log.
- Browser, Receive, and History now share a unified design system — same toolbar layout, same collapsible sections, same property list with hover-Copy on every value, same body view-mode toggle.
- Connection resilience — TLS skip-verify is now wired end-to-end; publishers transparently re-open the session on broker idle timeouts so you no longer have to manually reconnect.
Added — Receive view
Multi-queue
- Subscribe to several queues at once. Each subscription is its own background task with an independent reconnect loop. Per-queue chips show live / reconnecting status; click
×to stop one without affecting the others. - Mixed feed tags every message with its source queue (visible badge appears once you have 2+ subscriptions active).
- New Tauri commands:
start_subscriber(address)adds a sub,stop_subscriber(address?)stops one (or all),list_subscribers()lists active.
Message inspection
- Full AMQP metadata extraction for every received message —
message_id,correlation_id,reply_to,content_type,creation_time,priority,durable,ttl,delivery_count, plus all application properties. - Outlook-style split layout (list left / preview right). Preview has collapsible Properties / Application Properties / Body sections, each with hover-Copy on every value.
- Reply button on any message with a
reply-to— opens the Send view with target pre-filled and the originalcorrelation-idcarried over as a custom property. - Pause / Resume without dropping the link — UI freezes while broker delivery continues; counter shows how many were dropped during the pause.
Body viewer
- Segmented
AUTO | RAW | HEXtoggle in the Body section. - AUTO detects content-type / leading character and pretty-prints JSON or XML.
- HEX renders the classic 16-bytes-per-row hex+ASCII dump (capped at 4 KB for UI responsiveness).
Search, stats, export
- Filter input now matches across body / message-id / correlation-id / content-type / application-properties (regex with case-insensitive fallback).
- Session stats live in the status bar: total received, total bytes, average size, rolling rate (5 s window), session duration.
- Export received messages to JSON or CSV via a dropdown in the filter bar.
Highlight rules
- Define regex rules with a colour and name; matching messages get a coloured
border-l-2and dot on their list row. - Rules manager modal with add / edit / delete, live regex validation, six colours (red / amber / green / blue / purple / pink).
- Rules persist across restarts in
localStorage.
Persistent log (opt-in)
- Toggle
Persistin the filter bar — last 500 received messages are saved tolocalStorageand restored on next launch. - Off by default to avoid storing potentially sensitive payloads without consent.
Diff between messages
- Mark any message as the comparison reference, then select another and click Compare.
- Side-by-side modal showing standard properties + application properties (delta-highlighted on amber) plus a line-level body diff (LCS algorithm, JSON / XML pretty-printed before diffing for meaningful alignment).
Added — Browser view
- Property hover-Copy on every field in the message details pane (parity with Receive).
AUTO | RAW | HEXbody viewer for peeked messages.- Text selection in queue list and peeked-messages list (click no longer swallows drag selection).
Added — History view
- Outlook-style split with full preview pane, including all auto-set / custom properties captured at send time.
- Collapsible sections (Properties / Auto-set / Custom / Body) with chevron + uppercase tracking-wider labels matching the rest of the app.
- Hover-Copy on every property; previously read-only.
AUTO | RAW | HEXbody viewer with XML pretty-print and hex dump.- Search now covers body content too (full-text), not just metadata.
Added — Connection
- TLS skip-verify is now actually wired through
connect,start_subscriber,list_broker_queues,peek_messages,await_reply— previously the UI flag had no backend effect for self-signed certs. - Publisher auto-reopens the connection / session transparently on dead-session errors (
Illegal session state,Connection has stopped, idle timeout, etc.) and retries the send once before reporting failure. - Added
native-tlsandtokio-native-tlsdirect deps for the manual TLS handshake path.
Changed — design unification
- Browser, Receive, and History are now visually cohesive — same
px-3 py-1.5pane headers, sameborder-b border-t-line/40row borders, samehover:bg-t-hover/50, same 140 px property-list key column, same empty-state icon size. - BrowserView's native checkboxes (
<input type="checkbox">) replaced with pill-toggle buttons matching Receive's style. - HistoryView preview header collapsed from two rows (
px-4 py-2.5chunky) into one row at the standard padding; Resend is a ghost button instead of filled-blue. - Extracted shared primitives:
src/components/CollapsibleSection.tsxsrc/components/PropsList.tsxsrc/components/EmptyState.tsxsrc/utils/format.ts—fmtBytes,fmtDuration,csvEscapesrc/utils/bodyView.ts—tryPrettyJson,tryPrettyXml,hexDump,detectFormat
Fixed
- Username / password authentication path no longer breaks when the password contains URL-reserved characters (
@,:,/,#,?). The non-TLS connection path now uses an explicitSaslProfile::Plaininstead of embedding credentials in the URL, so passwords are passed as raw bytes. - Long-lived management channel reused across
list_broker_queuespolls — eliminates the stream ofSESSION_CLOSEDnotifications that Artemis would route to DLQ when polling churned sessions. - Removed leftover
msgCountplumbing and the green badge on the Receive sidebar item.
Backend
subscriber.rsrewritten around aHashMap<queue, SubscriberHandle>model.ReceivedMessageextended withqueuefield plus the fullMessageMetaextracted via the same helper Browser uses for peek (broker::extract_peekedis nowpub(crate)).- Per-queue lifecycle events carry a
SubEvent { queue, message? }payload so the UI can show per-queue reconnect indicators. AmqpClientstorescontainer_id,sasl_anonymous,heartbeat_secsso its newreopen()path can re-establish the connection with the same settings the user originally chose.