-
KX-Bridge 0.9.27-nightly9 Nightly
Pre-ReleaseAll checks were successfulNightly Build / build (push) Successful in 3m41sreleased this
2026-06-26 23:19:02 +02:00 | 1 commits to nightly since this releaseKX-Bridge 0.9.27-nightly9 — Nightly Build
[experimental] May be unstable — for testers and early adopters only.
Changes since
nightly-0.9.27-nightly8- fix(spoolman): initialize status dot on page load
- fix(spoolman): clear SPOOLMAN_* env cache on restart, refresh status dot after save
Update Docker image
docker compose pull && docker compose up -dImage tag:
gitea.it-drui.de/viewit/kx-bridge:nightlyDownloads
-
KX-Bridge 0.9.27-nightly8 Nightly Pre-Release
released this
2026-06-26 23:10:27 +02:00 | 2 commits to nightly since this releaseKX-Bridge 0.9.27-nightly8 — Nightly Build
[experimental] May be unstable — for testers and early adopters only.
Changes since
v0.9.26- fix(spoolman): clear SPOOLMAN_* env cache on restart, refresh status dot after save
- chore: include README.es.md + CONTRIBUTING.md in release.sh sync
- docs: nightly section, maintenance notice + CONTRIBUTING.md, FR/IT languages, downloads badge
- fix(update): compare nightly by version string instead of date
- feat(update): separate nightly track from stable track
- fix(release): always push nightly to nightly branch, no master push
- fix(camera): exponential backoff on ffmpeg error + /api/camera/reset + reset button
- fix(release): allow nightly release from nightly branch
- feat(i18n): add missing UI translations + sort keys alphabetically (PR #70 @fenopy)
- fix: sync config/config.ini.example in release (Issue #72)
- feat(ui): integrations tab in settings (Spoolman + Obico hint)
- feat(stack): KobraX full stack compose for Portainer (KX-Bridge + Obico + Spoolman)
- feat(release): nightly/stable release workflow with separate Docker tag
- feat(spoolman): optional Spoolman filament usage integration (PR #65, @p2l)
- fix(release): download artifacts via HTTP instead of local path
Update Docker image
docker compose pull && docker compose up -dImage tag:
gitea.it-drui.de/viewit/kx-bridge:nightlyDownloads
-
KX-Bridge 0.9.27-nightly7 Nightly
Pre-ReleaseAll checks were successfulNightly Build / build (push) Successful in 4m4sreleased this
2026-06-26 22:51:32 +02:00 | 4 commits to nightly since this releaseKX-Bridge 0.9.27-nightly7 -- Nightly Build
[experimentell] Ungetestete Features, nur fuer Tester geeignet.
Aenderungen seit
v0.9.26- nightly: 0.9.27-nightly7
Docker-Image aktualisieren
docker compose pull && docker compose up -dImage-Tag:
gitea.it-drui.de/viewit/kx-bridge:nightlyDownloads
-
KX-Bridge 0.9.27-nightly6 Nightly
Pre-ReleaseAll checks were successfulNightly Build / build (push) Successful in 3m23sreleased this
2026-06-25 23:47:34 +02:00 | 5 commits to nightly since this releaseKX-Bridge 0.9.27-nightly6 -- Nightly Build
[experimentell] Ungetestete Features, nur fuer Tester geeignet.
Aenderungen seit
nightly-20260625- ci: apk/wget-Fallback für curl korrekt klammern
Docker-Image aktualisieren
docker compose pull && docker compose up -dImage-Tag:
gitea.it-drui.de/viewit/kx-bridge:nightlyDownloads
-
v0.9.26 Stable
released this
2026-06-21 21:54:13 +02:00 | 1 commits to master since this releaseWhat's new in 0.9.26
New
Fixed
- Camera always started at print begin (issue #50).
camera_on_printwas missing from the/api/stateresponse. - Auto-leveling setting ignored in Moonraker print path (issue #57).
- Filament mapping free-text fields replaced by dropdowns (issue #57).
- Dashboard showed generic material type instead of profile name (issue #57).
- Ghost profile shown on empty slot (issue #57).
- Skip-Objects panel missing in Orca upload flow (issue #57).
- Banner and dialog appeared simultaneously (issue #57).
- "Clear" reloaded idle file on next poll (issue #57). Preview image and buttons disappear instantly.
- Material matching for "PLA Silk", "Matte PLA" etc. (PR #64, @p2l).
See CHANGELOG for full details.
Downloads
- Camera always started at print begin (issue #50).
-
v0.9.25 Stable
released this
2026-06-17 07:21:56 +02:00 | 2 commits to master since this releaseFixed
- Random crashes / container restarts — segfault in
libcrypto.so.3(issue #53).
The MQTT-over-TLS client shared a single SSL socket between the reader thread
(recv) and the sender threads (sendall) without serializing them. CPython's
sslmodule does not allow concurrent read and write on the same socket — the
overlap corrupted OpenSSL's internal state, causing a heap corruption and a
segfault that manifested reliably on some hosts (timing-dependent). All socket
access (recv / sendall / close / reconnect) is now serialized under a single
lock; the reader probes readiness withselect()outside the lock so senders
are never starved. Reconnect and disconnect now swap the socket atomically.
Thanks to @BasK for the detailed fault-handler trace that pinpointed this. - File browser accepted non-GCode uploads (issue #59). Drag & drop bypassed
the file picker'sacceptfilter, so e.g. a JPG could be uploaded. Uploads are
now validated both client- and server-side; only.gcode,.gcode.3mf,.3mf
and.bgcodeare accepted. Thanks @gangoke.
Downloads
- Random crashes / container restarts — segfault in
-
v0.9.24 Stable
released this
2026-06-16 21:51:36 +02:00 | 3 commits to master since this releaseNew
- Skip Objects available in every print flow (issue #57). The "Skip objects" panel in the Slot Mapper used to appear only when printing from the Browser tab. It now shows in all flows (upload / print bar included), collapsed by default behind a
✂ Skip objects (N)header to keep the dialog compact, expanding on click with the object preview and checklist. - Slot Mapper shows the specific profile name (issue #57). Each slot now displays its mapped filament profile (e.g. "PolyTerra PLA — Polymaker") in the dropdown options and as a hover tooltip on the slot marker, instead of just the generic type. Falls back to the generic type when no profile is mapped.
Thanks to @Alex_M for the detailed UX feedback in issue #57.
Downloads
- Skip Objects available in every print flow (issue #57). The "Skip objects" panel in the Slot Mapper used to appear only when printing from the Browser tab. It now shows in all flows (upload / print bar included), collapsed by default behind a
-
v0.9.23 Stable
released this
2026-06-16 15:22:27 +02:00 | 46 commits to nightly since this releaseNew
- Auto-open print dialog after upload. A new
print_start_dialogsetting (Settings → Printer → "Start Print Behavior") controls what happens after a file is uploaded while the printer is idle:Print Dialogopens the slot-assignment dialog automatically,Print Barkeeps the previous banner behaviour. Based on PR #56 by @gangoke. - Per-print auto-leveling toggle. The print dialog now has its own auto-leveling checkbox that overrides the global default for a single print.
Fixed
- Object skip was silently ignored at print start (PR #56, @gangoke). The skip command was sent before the printer entered the
printingstate, so it was dropped. The skip is now re-applied in a retry loop once the print is confirmed running, with a pending-lock so the UI doesn't reset the skip state prematurely. - Upload during an active print overwrote the running job's preview. Uploading a new file while printing no longer replaces the thumbnail / file_ready of the job currently on the bed.
Downloads
- Auto-open print dialog after upload. A new
-
v0.9.22 Stable
released this
2026-06-16 13:24:08 +02:00 | 5 commits to master since this releaseNew
- Restructured Settings panel. The settings modal has been replaced by a persistent Master-Detail panel with five categories: Connection, Printer, Appearance, Filament, and System. Poll interval is now adjustable live.
- Vendor visibility filter (issue #41). A new checklist in the Filament settings lets you restrict the slot profile dropdown to specific manufacturers. "Generic" and your own imported profiles are always visible. The list updates automatically after a profile import.
- Idle file actions in the progress card (issue #55). After uploading a file while the printer is idle, three quick-action buttons appear directly in the progress card: ▶ Print, ⚙ Map Slots, and ✕ Clear — matching the file browser workflow without navigating away.
Fixed
- Mobileraker: app crashed with
Null is not a subtype of ObjectinConfigExtruder.fromJson(issue #48).configfile.configwas returned as an empty object{}. Mobileraker parses bothconfigfile.settingsandconfigfile.configthrough the same strict Dart parser — both are now populated with the same extruder/bed/stepper stub. - Mobileraker: app hung indefinitely on refresh (issue #48). The WebSocket
server.files.metadatahandler called a non-existent store method, returning empty metadata. Mobileraker retried this thousands of times per second. Both the HTTP and WS paths now share a single_build_file_metadata()method. - Mobileraker: ETA / remaining time not shown (issue #48). Side effect of the metadata loop fix — once
currentFileresolves, Mobileraker can calculate ETA fromestimated_time. - Mobileraker:
notify_status_updatetriggered repeatedConfigFile.parse(issue #48). Static objects (configfile,webhooks,heaters,history) were included in every live status push. They are now filtered out; only live telemetry is broadcast. motion_report(live_position,live_velocity) added to printer objects for Mobileraker motion display.- Saving filament slot profiles no longer silently drops the
visible_vendorssetting fromconfig.ini.
Downloads
-
v0.9.21 Stable
released this
2026-06-14 11:11:11 +02:00 | 6 commits to master since this releaseFixed
- Camera stream not visible on Android (Chrome / Firefox). Android
browsers do not supportmultipart/x-mixed-replace(MJPEG). The UI
now detects Android and falls back to snapshot-polling at 5 fps
(/api/camera/snapshotevery 200 ms) — no server-side change needed.
Changed
- Docker image now pinned to Debian 12 (Bookworm) (
python:3.11-slim-bookworm)
to avoid glibc 2.41 compatibility issues introduced by the Debian 13
base image thatpython:3.11-slimrecently started pulling. - MQTT and HTTP connections now force IPv4 (
AF_INET) to prevent
connection failures on hosts where the printer is only reachable via
IPv4 but the OS prefers IPv6. - Extruder stub in the Moonraker
configfileresponse now includes
sensor_typeandfilament_diameter— fixes a Mobileraker crash
(Null is not a subtype of Object, issue #48).
Downloads
- Camera stream not visible on Android (Chrome / Firefox). Android