Re-Release Pre-release 3
Pre-releaseFilaBridge v0.9.3
This is a release candidate for the first release of FilaBridge under new maintenance. The original project was archived by its author, needo37, whose hard work brought us this tool in the first place. I rely on FilaBridge daily to keep my printers and Spoolman in sync, so rather than let it fade away I've picked it up here and intend to keep it alive. Bug reports, feature requests, and PRs are all welcome.
This release focuses on making filament tracking more accurate, the deployment and operation simpler, and the day-to day experience quieter and more informative.
As the old developer's last release was v0.2.3, i have opted to make my initial release 1.0.0, once I get through some teething pains via RCs
Highlights
Cancelled and failed prints are now tracked
Previously, only prints that finished cleanly counted against your spools. A print cancelled at 80% quietly used 80% of the filament without Spoolman ever hearing about it. FilaBridge now detects cancelled and failed prints (STOPPED and ERROR states) and bills the slicer's filament estimate scaled by how far the print actually got. (This is obviously an imperfect science, but the precentage method is certainly better than nothing!)
Billing is idempotent and survives restarts
In-flight print state is persisted to the database, so restarting FilaBridge mid-print no longer loses track of the job. A billing ledger guarantees each job is only ever counted once, even across restarts or duplicate detections.
Print History tab
At risk of needless feature creep or bloat, a new dashboard tab lists your recent prints: job name, printer, completed or cancelled status, which spool was used, grams of filament billed, finish time, and run time. All of this data was already being logged and kept for tracking usage, so I figured no harm in surfacing this to users via a new tab.
Quick-Assign NFC tags for single-printer setups
If you have exactly one printer with one toolhead configured, the Spool Tags screen now also generates a Quick-Assign tag for each spool: one scan assigns the spool straight to your printer, with no second location tag needed.
Multi-toolhead or multi-printer setups keep the standard two-scan workflow.
Much quieter docker logs, with more useful info
Informational output goes to stdout and warnings/errors to stderr, so you can route them separately. Steady-state logging is now edge-triggered: instead of several lines per printer every poll cycle, you get one line when something
actually changes ("Printer MK4: IDLE -> PRINTING (job: benchy)"), one line when a printer goes offline, and one when it comes back, vs a failure poll every ~30 seconds.
AI cleanup
No shade to the original developer, but it was very clear they leaned heavily on AI in the initial development of the tool, which led to some idiosyncrasies and quirks in how some of the code and documentation was written. I've gone through as much of that as I could for some formatting changes and clean-up (such as removing emojis from the log outputs).
Added
- Print History tab and
GET /api/print-historyAPI - Quick-Assign (single-scan) NFC tag/QR code generation for single-toolhead setups
- Version reporting:
--versionflag, version in the dashboard footer, the
startup log line, and release binaries/images built with the release version /healthzendpoint, plus container healthchecks in the Dockerfile and
docker-compose.yml- Print status (completed vs cancelled) recorded in print history
Changed
- FilaBridge now targets Docker and Linux only (see Removed below)
- SQLite now runs in WAL mode with a busy timeout: much more robust against
power loss (relevant to a Raspberry Pi user) and better under concurrent access.
Note: keep the database on local disk or a Docker volume, not a network share! - Archived spools in Spoolman are now hidden from FilaBridge, matching the
existing behavior for empty spools and archived filaments - Logging is dramatically quieter in steady state; HTTP request logging skips
healthchecks and static assets - The Docker image and docs now live at
ghcr.io/sargonas/filabridge
Fixed
- The auto-assign-previous-spool feature, once enabled, could never be disabled
(the API rejectedenabled: falseas a missing field) - Ctrl+C / SIGTERM could be swallowed by a background task, leaving the
process running; shutdown is now reliable - A data race in the WebSocket hub could crash the server when a slow client
was dropped during a broadcast - Config reloads raced against the monitoring loop and web handlers reading
the configuration - The dashboard error page referenced a template that didn't exist, producing
a blank 500 instead of an error message - A spool with no filament data could potentially crash the Spoolman debug endpoint
Removed
- macOS and Windows builds removed. FilaBridge is designed to run next to Spoolman,
which typically means Docker or a small Linux box. Additionally, the previous macOS
release binaries were built without CGO and could not actually run at all.
Linux binaries (amd64, arm64) are still published for bare-metal installs. - Legacy no-op location "migration" routines that made pointless Spoolman API
calls at every startup
Upgrading from v0.2.x
Your existing database works as-is: schema updates (the new print status
column) are applied automatically on first start, and you'll see new
.db-wal / .db-shm files appear next to the database once WAL mode kicks in.
If you run via Docker or docker-compose, update your image reference to
ghcr.io/sargonas/filabridge:latest. Configuration, toolhead mappings, and
print history all carry over. Existing history entries predate cancelled-print
tracking and will show as completed.
Thanks
To needo37 for building FilaBridge and open-sourcing it under GPLv3, and to
the Spoolman project for the inventory system this bridges into.
Enjoyed this release? You can Buy Me a Coffee to support my side passion!