Repository navigation
Releases: UberMetroid/thrall
Release list
THRALL v0.5.4 — Tool for Hierarchical Replication And Identity Linking
The Admin tab gained two sections, and the daemon gained the state they change.
Portal Appearance — how the portal looks, for everyone:
- The five footer data boxes, turned on or off wholesale or one at a time.
- The accent palette, the default colour a new browser gets, and a monochrome mode.
- A separate background for the sign-in page and for the dashboard: off, random, or pinned.
- A fleet-wide reduce-motion switch.
Hiding the palette locks the theme: the administrator's colour then wins over a browser's saved choice.
Operations — how the daemon behaves:
- Maintenance mode pauses the reconciler. Peers are still polled so the fleet view stays live, but nothing is pushed to them.
- The reconciliation interval, configurable between 15 and 3600 seconds.
- Peer API key rotation and session secret rotation, without hand-editing
fleet.yaml. - An audit log beside the roster: owner-only, who changed what and when, trimmed to the last 500 records.
Appearance and posture persist in the roster as @ui records, so they travel with the state the daemon owns and come back on a restart.
Co-Authored-By: mavis noreply@minimax.ai
THRALL v0.5.3 — Tool for Hierarchical Replication And Identity Linking
THRALL is a control plane. This release removes the last places where the project looked like it also shipped a peer.
The peer is now entirely yours to run
- Deleted
Containerfile.syncthingandquadlet/syncthing.container. - The pipeline no longer builds or pushes a peer image.
- The control-plane unit no longer depends on
syncthing.service. - Added
tests/no_peer_artifacts.rs: the build fails if a peer image, a peer unit, or a peer publish step ever reappears.
A peer is stock Syncthing that you run on every hub. The README documents the deployment recipe, and CI checks that recipe against the upstream image so the documentation cannot drift from what actually works.
Naming
- Removed the
st-mesh-mgrname from the sources, the quadlet unit, the repository description, and the historical commit message. - Renamed the roster file from
mesh-mgr.dbtoroster.db, in the daemon, the default fleet template, and the documentation.
Docs
README.md and the landing page are rebuilt around what a visitor actually cares about: the outcome, the guarantee, and how to get it running. Every claim in the trust table is enforced by a failing test.
Note for operators
Existing deployments are unaffected: a fleet that sets portal.database_path explicitly keeps using the file it names. Rename the file at your convenience.
THRALL v0.4.1 — Tool for Hierarchical Replication And Identity Linking
Patch release: the thrall-syncthing peer image now declares /var/syncthing as a volume, so Syncthing can create its XDG dirs (~/.local) under the hardened --read-only Quadlet runtime. Without it, the peer node crashed on startup with mkdir /var/syncthing/.local: read-only file system. The persistent index database and config remain in the bind-mounted /var/syncthing/config.
THRALL v0.4.0 — Tool for Hierarchical Replication And Identity Linking
Container & Supply Chain
- Fedora-minimal 44 OCI images replace Alpine + Guix — signed Fedora packages only, matching Fedora fleet servers
- Syncthing peer node split into a dedicated
thrall-syncthingimage (replacesdocker.io/syncthing/syncthing); the quadlet peer unit pullsghcr.io/ubermetroid/thrall-syncthingwith a curl-based healthcheck - Control-plane image stripped: no package manager (dnf5/libdnf5), no Syncthing binary — 155 MB portal-only runtime
CI/CD
- GitHub Actions Verification Ladder (test → clippy → fmt → release build) gates every push and PR
- Multi-arch (amd64 + arm64) images published to
ghcr.io/ubermetroid/thrallandghcr.io/ubermetroid/thrall-syncthing(main→:main,v*tags →:X.Y.Z+:latest)
Portal (since v0.3.0)
- 6 new 8-bit footer widgets, clickable About brand, top body tabs, and a consolidated Admin view
- READ-ONLY shared folders, selective sync with per-folder exclusions, and offline-hub filtering on the mesh stage
- Footer telemetry dock refinements and READ-ONLY explorer UI controls
THRALL v0.3.0 — Tool for Hierarchical Replication And Identity Linking
THRALL v0.3.0
Tool for Hierarchical Replication And Identity Linking (thrall / st-mesh-mgr)
Highlights
- Symmetric 54px Header & Footer Dock + 8-Bit Rainbow Palette:
- Unified 54px header and footer dock with pixel-art
THRALLcanvas wordmark and 8-Bit Rainbow Palette (Coral,Orange,Amber,Yellow,Emerald,Cyan,Blue,Violet). - Always-visible real-time browser ↔ server 8-Bit Data Flow Graph (
#footer-upload-graph) measuring live HTTP TX/RX throughput and upload progress. - Rotating cached Hive Thrall backgrounds (
/bg-1.jpg../bg-5.jpg) on login/logout alongside the Bayer-dithered interactive mesh physics canvas.
- Unified 54px header and footer dock with pixel-art
- 5 Flat Boxless Explorer Tabs with Flash-Free SPA Navigation:
- Located in the Footer Dock:
Personal folders | Shared folders || Device setup || Global folders || Mesh setup. - Split
+ Standard Folder&+ Custom FolderModals: Pick-and-choose standard XDG folders (Desktop,Documents,Downloads,Music,Pictures,Videos,Public,Templates) with~/<Folder>vs~/Thrall/<Folder>sync target, or open a dedicated modal to create custom folders synced to~/Thrall/<Folder>. - Customizable Per-Folder Local Sync Paths: Override local workstation sync paths per personal or shared folder in
Device setup. - Expandable
+/−Inline Folder Trees: Recursive inline directory, device, ACL, and hub tree expansion across all 5 tabs.
- Located in the Footer Dock:
- Chunked Binary & Recursive Drag-and-Drop Directory Uploads:
- Streamed
File.slicechunked uploads (POST /files/upload) and recursive folder drag-and-drop with strict ancestor symlink-jail verification and dotfile rejection.
- Streamed
- Safety & Admin UX:
- GitHub-style type-to-confirm deletion modals for folders, files, and devices.
- Pulsing
Save Access *unsaved-changes indicator inGlobal folders.