Skip to content

Re-Release Pre-release 3

Pre-release
Pre-release

Choose a tag to compare

@sargonas sargonas released this 14 Jul 19:34
2b665fd

FilaBridge 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-history API
  • Quick-Assign (single-scan) NFC tag/QR code generation for single-toolhead setups
  • Version reporting: --version flag, version in the dashboard footer, the
      startup log line, and release binaries/images built with the release version
  • /healthz endpoint, 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 rejected enabled: false as 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!