Releases: aquariusnetwork9/Aquarius-Bot-Manager
Release list
v3.21.1 — Client theme (beta) + fleet appearance sync
Client theme (beta) — a tab-based dashboard layout, opt-in
A second visual theme alongside today's dashboard (now labeled Graphite). Pick it in Settings → Appearance:
- A top tab bar (Dashboard / Fleet / Activity / Automation) replaces the sidebar, and the rest of the toolbar collapses into a ⋯ overflow menu.
- A themed box switcher appears next to the brand for owners/admins managing more than one box.
- The Console tab gets its own visual style under Client — Threaded Log, Message Feed (Discord-like grouping), or Status Deck — picked from the same Appearance panel, rendered over the same real console output (best-effort line classification: a misclassified line only changes which visual lane it lands in, never the text).
- Accent color, font pairing, and background image are shared between both themes.
- Defaults to Graphite on every box — nothing changes until you switch it on.
- The 48-module Control Surface keeps its existing v1/v2/v3 styles for now; a matching Client style is a fast-follow.
Fleet-wide appearance sync
Saving a theme/layout change on the controller now pushes it to every registered node in the background, so the whole fleet renders the same look instead of each box needing to be set individually.
v3.8.0 — ZenithProxy live dashboard via plugin
ZenithProxy bots get the full live dashboard, via a plugin
AquariusProxy bots already get the live map, POV viewer, inventory/vitals, module toggles, command runner, and live config editing built in. Now ZenithProxy bots can get the same surface by dropping in the new zenith-abm-bridge plugin — no fork switch required.
- Install the plugin jar, run
abmBridge on(andabmBridge control onto allow command/config writes), and the bot's Live Map / control surface light up in ABM exactly like an AquariusProxy bot. - The bridge is loopback-bound, disabled by default, and write-gated; ABM relays it over its own authenticated tunnel.
- ABM auto-detects the bridge port from
plugins/config/abm-bridge.json(defaults to 2998), so a fresh install is found with zero config. The viewer 'offline' hint now covers both forks.
v3.7.1 - Tailscale Funnel guidance + private invite-link warning
Fixes
- Tailscale Funnel: no more "command timed-out." Tailscale Funnel needs a one-time tailnet enablement beyond signing in. ABM now runs the funnel attempt detached (so the slow first HTTPS-cert provisioning never blocks or leaves stuck processes) and, when the tailnet hasn't enabled Funnel, the Share panel shows a direct "Enable Funnel" link — click it once and the address goes live automatically. (The Cloudflare Quick Tunnel remains the zero-setup option for an instant public link.)
- Invite links warn when private. The one-time invite link now warns if it points at a
localhost/private address — turn on Public sharing first so the invitee can open it.
Update with abm selfupdate.
v3.7.0 - one-click ZenithProxy to AquariusProxy migration
Migrate ZenithProxy bots to AquariusProxy in one click
Any bot detected as ZenithProxy now has an ⇪ Aquarius button on its card (owner/admin). It converts the bot to AquariusProxy in place, keeping its config.json and Minecraft account:
- Stops the bot and backs up
config.json/mc_auth_cache.json/launch_config.json/launch/ the jar to apremigrate-…folder. - Repoints the launcher to
aquariusnetwork9/AquariusProxy(keeping the valid version) and swaps thelaunchbinary for the Aquarius launcher — the step that makes it actually stick. - Restarts on AquariusProxy. A dialog shows the steps + a live log and warns that external plugin jars won't load (many have baked-in equivalents).
- A Roll back button restores the backup if anything looks off. Works on remote-box bots too.
Existing boxes update with abm selfupdate. See Security before exposing the dashboard.
v3.6.0 - fine-grained per-user permissions (first 3.x release)
First GitHub release of the 3.x line — the single-host manager grew into a front-facing control plane with real access control. Both VPSes track main and self-update; these tagged releases are for downloaders. Full history: Changelog.
Headlines of 3.x
- Live Control Surface — a per-bot cockpit (
/control?inst=<name>): every module, a world map, vitals, and a command runner, in three themes. - Access control — shareable scoped guest links; named user accounts with roles (view / operate / config / admin) + per-bot scopes and one-time invite links; and fine-grained per-user permissions (which modules they can use/configure, the free-form console, bot start/stop) enforced server-side.
- Public sharing — give the dashboard a public HTTPS address from a menu of providers ABM installs for you: Cloudflare Quick Tunnel (no account), Tailscale Funnel (userspace, no root), ngrok, a named Cloudflare tunnel, or your own reverse proxy.
In v3.6.0
- Fine-grained per-user permissions (Users -> Permissions): per-module use/config, the free-form console, and start/stop/restart — owner-controlled, enforced on the server, applied live. Restricts within a role; admins/owner bypass.
- Fix: bot Start / Stop / Restart buttons (per-bot + "all") had thrown a 500 since v3.4.0 (a shadowed
restart); fixed. Bots themselves were never affected.
Install / upgrade: see the Installation wiki (existing boxes: abm selfupdate). Read Security before exposing the dashboard.
v1.15.0 — upload/download files & folders + cross-box transfer
The Files manager can now move files to and from your computer, and between boxes.
From your computer (Files modal)
- 📤 Upload and 📤 Folder — send one or many files, or a whole folder (its structure rebuilds on the box).
- Per-row ⬇ download — a file streams to your browser; a folder comes back as a
.zip. - Everything stays jailed to the manager's allowed roots; 2 GB/file cap. Works for the controller and any remote box through the SSH tunnel.
Between boxes (SCP over SSH)
- Per-row ↗ "send to another box" (shown when you have boxes registered). Pick a destination box and folder; the controller copies it with
scpover its stored SSH credentials. - Handles controller↔box and box→box (relayed through the controller). Each side is jailed to that box's roots.
No new dependencies — pure stdlib + the system scp/ssh already used for tunnels.
v1.14.4 — cleaner bot cards (drop the folder path)
Each dashboard bot card no longer shows the bot's directory path under its name, for a cleaner card. No functional change — the path is still available in the bot's drawer/details. The .path style remains in use by the Fleet view's box headers.
v1.14.3
Fix bot-card action buttons (Start/Restart/Stop) shrinking to an unusable size when crowded by the utility buttons; utility icons (⋯ ✎ 🗑) are now compact, and action-button labels are centered via a grid track regardless of icon glyph width.
v1.14.2 — restarting state works for any restart trigger
"Restarting" now shows for any restart — on any channel
Previously the Restarting state only appeared when you restarted a bot from the manager. A bot restarting from its own console or the launcher (e.g. while on a pre-release channel) would skip straight to offline. Now the boot banner is time-gated by its log timestamp: a fresh banner (under 30s) reads Restarting, an old one reads Offline. So all four states — Online / Offline / Restarting / Updating — show correctly regardless of how the restart was triggered or which release channel the bot is on.
Update an existing box with the 🔄 self-update button (or abm selfupdate).
v1.14.1 — accurate bot connection state + centered card buttons
Bot connection state now reads correctly
The status line was sticking on Restarting and reading wrong for most bots. Recalibrated against real proxy logs:
- A lingering boot banner now reads Offline (booted but not connected) instead of a permanent Restarting.
[Discord]lines are ignored — their "Session disconnected/resumed" was being mistaken for a server disconnect (this is what made most bots read offline/stuck).- World
[Chat]activity counts as Online (a long-connected bot only shows chat). - Queue parsed from the real
Position in queue: N/[QueueWarning]format (with position). [Client]connect/disconnect are the authoritative connection events.- Restarting is now a brief transient shown right after you (re)start a bot, cleared the moment it connects — it can't stick anymore.
Centered card buttons
The ▶/⟳/■ action buttons now center their label properly (the icon no longer pushes the word a couple pixels off-centre).
Update an existing box with the 🔄 self-update button (or abm selfupdate).