Skip to content

Releases: sargonas/filabridge

1.1.0 - Colors and Syncing

Choose a tag to compare

@sargonas sargonas released this 19 Jul 23:36
7bc384c

Quick QoL update to V1 that I thought would need to be parked for a week or so until I could get to it, but found time much sooner than expected!

  • Added Filament swatches to history and multi-color filament support
  • Added a per-printer "Refresh from Spoolman" button in each printer's Toolhead Mappings. It:
    • Reads Spoolman's spool locations and, for each of that printer's toolheads, maps the spool Spoolman shows at "Printer - Toolhead" and is scoped to that printer only (other printers' locations ignored).
    • Is additive, so a spool with no match keeps its current mapping and the toolhead is reported.
    • Moves a spool off any stale toolhead it was on (keeps one-spool-one-toolhead).
    • Pull-only, does not write to Spoolman to avoid unexpected overwritings.
    • Popup summary listing imported count, any conflicts (a location with 2+ spools, skipped), and a clear warning of the toolhead locations Spoolman has no entry for, telling you to go assign them in Spoolman and Refresh again.

1.0.0 - The official re-release!

Choose a tag to compare

@sargonas sargonas released this 18 Jul 22:48
0820e0a

FilaBridge v1.0.0

FilaBridge keeps your Spoolman filament inventory automatically in sync with your PrusaLink printers... no more manual weight updates after every print!

This is 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 to set a bseline for my continuing support of it.

As the old developer's last release was v0.2.3, i have opted to make my initial release 1.0.0

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!)

Filament estimates are captured at print start
FilaBridge now reads the slicer's filament estimate from the print file's header within moments of a print starting, using a streaming scan that reads a few kilobytes regardless of file size. Previously, printers that don't serve slicer metadata over the API (including the CORE One) forced a full G-code download at print end, which could never complete for large files at PrusaLink's transfer speeds. A multi-day print now records in seconds, and cancelled prints record accurately even when the printer is unreachable afterward.

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.

Low filament warnings
When a print starts, FilaBridge compares what the print needs against what's left on the mapped spool. If the spool will run short, a warning appears on the dashboard with the exact numbers. Optionally, FilaBridge can pause the print when the warning fires, acknowledging the warning resumes it (or, if you already resumed at the printer, simply dismisses). Both behaviors are toggles in Basic Configuration.

Webhook notifications
FilaBridge can now push a notification to any webhook-based service when something needs your attention: a low-filament warning (including when it auto-pauses a print) or an unexpected printer disconnect mid-print. Point it at ntfy, Gotify, Home Assistant, Discord or Slack, Apprise, or anything else that accepts a webhook.

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), as well as manual human review.

CI Testing
There is now proper CI testing for just about everyting in GH to avoid regressions and surprises.

Cruft and DRY Cleanup
The original codebase had a lot of unused code from either improved/replaced sections or as of yet unused future planning. I've removed all of that as well as cleaned up duplicative functions into singular loops.

Added

  • Print History tab and corresponding 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
  • Low filament warning with optional pause-on-warning (toggles in settings)
  • Print history can be disabled entirely for a leaner setup, with a button to clear stored history (Spoolman recording is unaffected either way)
  • A Spoolman link in the dashboard tab bar for quick access to filaments and locations
  • CI test suite covering print lifecycles, migrations, and the REST API
  • Webhook notifications for low-filament warnings (including auto-pause) and unexpected printer disconnects during a print, compatible with ntfy, Gotify, Home Assistant, Discord/Slack, Apprise, or any webhook-based service
  • Mobile-optimized dashboard UI
  • Spool conflict detection: the same spool can't be assigned to two printers at the same time
  • Custom toolhead display names
  • Spoolman location sync: a spool's location follows its toolhead assignment (dropdown, NFC, or QR), and displaced spools move to a configured default storage location or are cleared
  • Toolhead mapping with smart search by ID, material, brand, or name, plus auto-mapping from the dropdown
  • Configurable timeouts for the PrusaLink API, Spoolman API, and file downloads
  • Hostnames or IP addresses accepted for printers and Spoolman
  • Input hardening (HTML escaping, error-ID sanitization)

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
  • Stored credentials (PrusaLink API keys, Spoolman password) are now write-only: the API and UI never return them once saved. Leave a credential field blank when editing to keep the current value
  • Switched to a pure-Go SQLite driver; building from source now requires Go 1.25 and no C toolchain
  • Docker images now build natively for both architectures, cutting release build times from about thirty minutes to under five (mostly thanks to the SQLite driver change)
  • The printer model field is gone: it was display-only, and removing it also removes the model-detection step when adding a printer (adding a printer is now instant, even for offline printers)

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
  • Prints on printers that need user attention mid-print (filament runout, crash detection) are now tracked through the ATTENTION state instead of being ignored until they resume
  • Large print files no longer fail usage recording with download timeouts due to mid-stream reading

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

Install

docker run -d --name filabridge -p 5000:5000 -v "$(pwd)/data:/app/data" ghcr.io/sargonas/filabridge:latest

Or grab a Linux binary from the assets below. Full setup is in the README.

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.

One new caveat: printer names must now be unique. If two p...

Read more

Re-Release RC-5

Choose a tag to compare

@sargonas sargonas released this 16 Jul 05:46

Ideally this is the last RC for v1!

FilaBridge v0.9.5

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!)

Filament estimates are captured at print start

FilaBridge now reads the slicer's filament estimate from the print file's header within moments of a print starting, using a streaming scan that reads a few kilobytes regardless of file size. Previously, printers that don't serve slicer metadata over the API (including the CORE One) forced a full G-code download at print end, which could never complete for large files at PrusaLink's transfer speeds. A multi-day print now records in seconds, and cancelled prints record accurately even when the printer is unreachable afterward.

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.

Low filament warnings

When a print starts, FilaBridge compares what the print needs against what's left on the mapped spool. If the spool will run short, a warning appears on the dashboard with the exact numbers. Optionally, FilaBridge can pause the print when the warning fires, acknowledging the warning resumes it (or, if you already resumed at the printer, simply dismisses). Both behaviors are toggles in Basic Configuration.

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
  • Low filament warning with optional pause-on-warning (toggles in settings)
  • Print history can be disabled entirely for a leaner setup, with a button
    to clear stored history (Spoolman recording is unaffected either way)
  • A Spoolman link in the dashboard tab bar for quick access to filaments
    and locations
  • CI test suite covering print lifecycles, migrations, and the REST API

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
  • Stored credentials (PrusaLink API keys, Spoolman password) are now write-only: the API and UI never return them once saved. Leave a credential field blank when editing to keep the current value
  • Switched to a pure-Go SQLite driver; building from source now requires Go 1.25 and no C toolchain
  • Docker images now build natively for both architectures, cutting release build times from about thirty minutes to under five (mostly thanks to the SQLite driver change)
  • The printer model field is gone: it was display-only, and removing it
    also removes the model-detection step when adding a printer (adding a
    printer is now instant, even for offline printers)

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
  • Prints on printers that need user attention mid-print (filament runout,
    crash detection) are now tracked through the ATTENTION state instead of
    being ignored until they resume
  • Large print files no longer fail usage recording with download timeouts due to mid-stream reading

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.

Housekeeping

A real test suite and CI

Every pull request now runs a suite of end-to-end tests against simulated printers and Spoolman instances: full print lifecycles, cancellations, restart recovery, database migrations, and the API surface.

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!

Re-release Pre-release RC-4 with bugfix

Pre-release

Choose a tag to compare

@sargonas sargonas released this 15 Jul 20:37
6fe3af9

Only one minor change from the current RC tree: fixed a bug where gcode files that are too large (multi day prints) failed to download in time before the timout, failing to log filament count.

Bonus: front loading the projected filament count to print start means 50% of the work for the new "not enough filament on the spool warning" is already done for me!

Re-Release Pre-release 3

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!

The Re-release pre-release!

Pre-release

Choose a tag to compare

@sargonas sargonas released this 14 Jul 08:22
028b94e

FilaBridge v0.9.2

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 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!