[PR #24] [MERGED] 0.1.5 final #907

Closed
opened 2026-05-06 12:33:53 +02:00 by BreizhHardware · 0 comments

📋 Pull Request Information

Original PR: https://github.com/maziggy/bambuddy/pull/24
Author: @maziggy
Created: 12/14/2025
Status: Merged
Merged: 12/14/2025
Merged by: @maziggy

Base: mainHead: 0.1.5-final


📝 Commits (10+)

  • 3a08901 Fix unused variable in test file causing Docker build failure
  • ee2b674 Issue 1: Print Start Notification - Estimated Time Unknown
  • a14dcbc Frontend WebSocket Tests Summary
  • b6b83a6 Added a persistent loading toast with spinner for backup exports that include print archives:
  • 80c39df Fixed bug in Dockerfile
  • 7262896 Uodated Dockerfile
  • 9ba4ef6 Fix docker build
  • 3fe49f6 1. Timelapse Race Condition Fix (bambu_mqtt.py)
  • ae55884 1. ArchiveService import shadowing bug (main.py:978) - Local import was shadowing module-level import, causing "cannot access local variable" error
  • c317ff1 1. Pre-commit Hook Configuration (.pre-commit-config.yaml)

📊 Changes

38 files changed (+3870 additions, -835 deletions)

View changed files

.pre-commit-config.yaml (+43 -0)
📝 CHANGELOG.md (+31 -0)
📝 Dockerfile (+13 -2)
Dockerfile.test (+45 -0)
📝 README.md (+95 -0)
📝 backend/app/api/routes/archives.py (+124 -141)
📝 backend/app/main.py (+394 -148)
📝 backend/app/services/archive.py (+70 -62)
📝 backend/app/services/bambu_mqtt.py (+282 -216)
📝 backend/app/services/notification_service.py (+37 -6)
📝 backend/app/services/printer_manager.py (+50 -41)
📝 backend/tests/conftest.py (+79 -0)
backend/tests/integration/test_print_lifecycle.py (+387 -0)
backend/tests/unit/services/test_bambu_mqtt.py (+411 -0)
📝 backend/tests/unit/services/test_notification_service.py (+118 -0)
📝 backend/tests/unit/services/test_printer_manager.py (+62 -71)
backend/tests/unit/test_code_quality.py (+267 -0)
backend/tests/unit/test_log_error_detection.py (+313 -0)
📝 build_docker.sh (+1 -1)
docker-compose.test.yml (+64 -0)

...and 18 more files

📄 Description

This release focuses on stability improvements, particularly around timelapse handling and Docker support.

Bug Fixes

  • Timelapse auto-download - Complete rewrite with retry mechanism (5s, 10s, 20s delays) and support for multiple FTP paths. Now works reliably with printers in LAN-only mode that have incorrect clocks.
  • Browser tab crash - Fixed rapid re-render cascade that could crash the browser tab on print completion
  • Timelapse detection for H2D - Fixed detection for H2D printers which send timelapse status in ipcam.timelapse instead of xcam.timelapse
  • Reprint from archive - Fixed critical bug where the print button sent the slicer source file instead of the sliced gcode file
  • Import shadowing bugs - Fixed "cannot access local variable" errors in archive service

New Features

  • Automatic failure reason detection - Automatically detects and records failure reasons from HMS error codes (filament runout, layer shift, clogged nozzle)
  • Hide failed prints filter - New toggle to hide failed/aborted prints from the archive view (persists across sessions)
  • Docker test suite - Comprehensive automated tests for Docker builds

Improvements

  • Timelapse viewer default speed changed to 2x
  • Archive badges now show "cancelled" for user-stopped prints
  • WebSocket messages optimized (smaller payloads)
  • Pre-commit hooks added for code quality (ruff)

Docker

  • Added ffmpeg for video processing
  • Fixed build warnings
  • Comprehensive Docker documentation added to README

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/maziggy/bambuddy/pull/24 **Author:** [@maziggy](https://github.com/maziggy) **Created:** 12/14/2025 **Status:** ✅ Merged **Merged:** 12/14/2025 **Merged by:** [@maziggy](https://github.com/maziggy) **Base:** `main` ← **Head:** `0.1.5-final` --- ### 📝 Commits (10+) - [`3a08901`](https://github.com/maziggy/bambuddy/commit/3a0890145b9a91a2f22e13610760afdfd30781ad) Fix unused variable in test file causing Docker build failure - [`ee2b674`](https://github.com/maziggy/bambuddy/commit/ee2b67427887ba395f10a045e689aba429c3252a) Issue 1: Print Start Notification - Estimated Time Unknown - [`a14dcbc`](https://github.com/maziggy/bambuddy/commit/a14dcbc03494c1f418dded62418a67df437ee5ab) Frontend WebSocket Tests Summary - [`b6b83a6`](https://github.com/maziggy/bambuddy/commit/b6b83a6360f4e3a7c2006c631a59a2c51fdb023f) Added a persistent loading toast with spinner for backup exports that include print archives: - [`80c39df`](https://github.com/maziggy/bambuddy/commit/80c39df7e97b9c608ab6bc0ac79a01168216a27c) Fixed bug in Dockerfile - [`7262896`](https://github.com/maziggy/bambuddy/commit/7262896a2b15f0526ead4e98e24ad6f7c12fd276) Uodated Dockerfile - [`9ba4ef6`](https://github.com/maziggy/bambuddy/commit/9ba4ef6355ae96b5a1f00799456ec898d6a64e1c) Fix docker build - [`3fe49f6`](https://github.com/maziggy/bambuddy/commit/3fe49f6af5821a75dfbdb3794788510946e83fd9) 1. Timelapse Race Condition Fix (bambu_mqtt.py) - [`ae55884`](https://github.com/maziggy/bambuddy/commit/ae5588485825173eb0f24ab8e37c7a90ce418bf9) 1. ArchiveService import shadowing bug (main.py:978) - Local import was shadowing module-level import, causing "cannot access local variable" error - [`c317ff1`](https://github.com/maziggy/bambuddy/commit/c317ff108501aef6ed78739d590870415d6f2c49) 1. Pre-commit Hook Configuration (.pre-commit-config.yaml) ### 📊 Changes **38 files changed** (+3870 additions, -835 deletions) <details> <summary>View changed files</summary> ➕ `.pre-commit-config.yaml` (+43 -0) 📝 `CHANGELOG.md` (+31 -0) 📝 `Dockerfile` (+13 -2) ➕ `Dockerfile.test` (+45 -0) 📝 `README.md` (+95 -0) 📝 `backend/app/api/routes/archives.py` (+124 -141) 📝 `backend/app/main.py` (+394 -148) 📝 `backend/app/services/archive.py` (+70 -62) 📝 `backend/app/services/bambu_mqtt.py` (+282 -216) 📝 `backend/app/services/notification_service.py` (+37 -6) 📝 `backend/app/services/printer_manager.py` (+50 -41) 📝 `backend/tests/conftest.py` (+79 -0) ➕ `backend/tests/integration/test_print_lifecycle.py` (+387 -0) ➕ `backend/tests/unit/services/test_bambu_mqtt.py` (+411 -0) 📝 `backend/tests/unit/services/test_notification_service.py` (+118 -0) 📝 `backend/tests/unit/services/test_printer_manager.py` (+62 -71) ➕ `backend/tests/unit/test_code_quality.py` (+267 -0) ➕ `backend/tests/unit/test_log_error_detection.py` (+313 -0) 📝 `build_docker.sh` (+1 -1) ➕ `docker-compose.test.yml` (+64 -0) _...and 18 more files_ </details> ### 📄 Description This release focuses on stability improvements, particularly around timelapse handling and Docker support. Bug Fixes - Timelapse auto-download - Complete rewrite with retry mechanism (5s, 10s, 20s delays) and support for multiple FTP paths. Now works reliably with printers in LAN-only mode that have incorrect clocks. - Browser tab crash - Fixed rapid re-render cascade that could crash the browser tab on print completion - Timelapse detection for H2D - Fixed detection for H2D printers which send timelapse status in ipcam.timelapse instead of xcam.timelapse - Reprint from archive - Fixed critical bug where the print button sent the slicer source file instead of the sliced gcode file - Import shadowing bugs - Fixed "cannot access local variable" errors in archive service New Features - Automatic failure reason detection - Automatically detects and records failure reasons from HMS error codes (filament runout, layer shift, clogged nozzle) - Hide failed prints filter - New toggle to hide failed/aborted prints from the archive view (persists across sessions) - Docker test suite - Comprehensive automated tests for Docker builds Improvements - Timelapse viewer default speed changed to 2x - Archive badges now show "cancelled" for user-stopped prints - WebSocket messages optimized (smaller payloads) - Pre-commit hooks added for code quality (ruff) Docker - Added ffmpeg for video processing - Fixed build warnings - Comprehensive Docker documentation added to README --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
BreizhHardware 2026-05-06 12:33:53 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/bambuddy#907
No description provided.