1
0
Fork 0
mirror of https://github.com/maziggy/bambuddy.git synced 2026-05-09 08:25:54 +02:00

[PR #81] [MERGED] v0.1.6b7 #928

Closed
opened 2026-05-07 00:15:00 +02:00 by BreizhHardware · 0 comments

📋 Pull Request Information

Original PR: https://github.com/maziggy/bambuddy/pull/81
Author: @maziggy
Created: 1/12/2026
Status: Merged
Merged: 1/12/2026
Merged by: @maziggy

Base: mainHead: 0.1.6b7


📝 Commits (10+)

  • 5f989c3 Changed version to 0.1.6b7
  • b0c576c Improved duplicate archive check
  • 6fb71de Add firmware update helper for LAN-only printers
  • a18d0c0 Fixed datetime import bug
  • ffd0c8b Fixed bug where print cover could not be fetched in Docker environments
  • 19dfbf1 Excluded virtual printer from printer discovery
  • eddee5b Improved printer card size selector
  • 59fe2a6 Improved camera window stream management
  • 4f2fa76 Minor fixes
  • 50fd0c0 Add support bundle feature for issue reporting

📊 Changes

80 files changed (+15299 additions, -9502 deletions)

View changed files

📝 .gitignore (+3 -0)
📝 CHANGELOG.md (+110 -0)
📝 README.md (+7 -4)
📝 backend/app/api/routes/archives.py (+128 -20)
📝 backend/app/api/routes/cloud.py (+78 -0)
backend/app/api/routes/firmware.py (+298 -0)
📝 backend/app/api/routes/maintenance.py (+15 -1)
📝 backend/app/api/routes/print_queue.py (+32 -1)
📝 backend/app/api/routes/printers.py (+45 -1)
📝 backend/app/api/routes/settings.py (+8 -1)
📝 backend/app/api/routes/spoolman.py (+30 -0)
backend/app/api/routes/support.py (+347 -0)
📝 backend/app/core/config.py (+1 -1)
📝 backend/app/core/database.py (+12 -0)
📝 backend/app/main.py (+102 -49)
📝 backend/app/models/maintenance.py (+1 -0)
📝 backend/app/models/print_queue.py (+4 -0)
📝 backend/app/schemas/archive.py (+29 -1)
📝 backend/app/schemas/cloud.py (+18 -0)
📝 backend/app/schemas/maintenance.py (+5 -0)

...and 60 more files

📄 Description

v0.1.6b7

AMS Color Mapping (#76)

  • Manual AMS slot selection in ReprintModal, AddToQueueModal, EditQueueItemModal
  • Dropdown to override auto-matched AMS slots with any loaded filament
  • Blue ring indicator distinguishes manual selections from auto-matches
  • Status indicators: green (match), yellow (type only), orange (not found)
  • Shared color utility (utils/colors.ts) with ~200 Bambu color mappings
  • Widened modals (max-w-md → max-w-lg) to fit long color names
  • Fixed AMS mapping format to match Bambu Studio exactly:
    • Use slot_id from 3MF to position tray IDs correctly
    • Fill unused slots with -1 placeholder
    • Add ams_mapping2 with detailed {ams_id, slot_id} pairs
  • Resolves "stuck at filament change" on multi-color reprints

Print Options in Reprint Modal

  • Bed leveling, flow calibration, vibration calibration toggles
  • First layer inspection, timelapse toggles
  • Collapsible "Print Options" section
  • Fixed print command format for proper printer recognition

Time Format Setting (#75)

  • New date utilities (utils/date.ts): parseUTCDate, formatDate, formatDateTime
  • Applied to 12 components: PrintersPage, ArchivesPage, QueuePage,
    ProjectDetailPage, SystemInfoPage, AMSHistoryModal, NotificationLogViewer,
    CalendarView, FilamentTrends, PrinterQueueWidget, ProfilesPage
  • Fixes archive times showing in UTC instead of local timezone

Statistics Dashboard (#72)

  • Size-aware rendering passes widget size (1/4, 1/2, full) to components
  • PrintCalendar: Dynamic cell sizing via ResizeObserver, 3/6/12 months
  • SuccessRateWidget: Per-printer breakdown at larger sizes
  • TimeAccuracyWidget: Per-printer breakdown at larger sizes
  • FilamentTypesWidget: Grid layout at larger sizes
  • FailureAnalysisWidget: More failure reasons at larger sizes

Firmware Update Helper

  • Check firmware versions against Bambu Lab servers for LAN-only printers
  • Orange "Update" badge on printer cards when updates available
  • Firmware modal with version info, release notes, upload progress
  • One-click upload to printer SD card via FTP with progress callback
  • Local firmware caching for faster re-uploads
  • New services: firmware_check.py, firmware_update.py
  • New routes: /api/v1/firmware/*

FTP Reliability

  • Configurable retry (1-10 attempts, 1-30s delay) in Settings > General
  • Applies to: 3MF archiving, print uploads, timelapse downloads,
    reprint uploads, firmware updates
  • A1/A1 Mini SSL fix: skip SSL on data channel entirely (control encrypted)
  • X1C/P1S: SSL with session reuse on data channel (required by vsFTPd)
  • Configurable FTP timeout (10-120s, default 30s) for slow WiFi

Bulk Operations

  • Bulk project assignment from multi-select toolbar (#70)
  • BatchProjectModal for assigning archives to projects
  • "Remove from project" option for bulk clearing

Chamber Light Control (#67)

  • Light toggle button on printer cards (next to camera)
  • Custom ChamberLight SVG icon with on/off states
  • Backend: POST /printers/{id}/chamber-light?on=true|false
  • H2D dual chamber lights controlled together

Support Bundle Feature

  • Debug logging toggle with real-time duration timer in Layout
  • /api/v1/support/bundle generates ZIP with system info and logs
  • Privacy protection: filters secrets, sanitizes paths, removes IPs/emails
  • Requires debug logging enabled before download

Archive Improvements

  • List view: edit/delete buttons and context menu with full parity
  • Object count display on cards (extracted from 3MF metadata)
  • Cross-view highlighting: click calendar/project to highlight in cards
  • Context menu button (⋮) on cards and list rows

Maintenance Improvements (#59)

  • wiki_url field for custom type documentation links
  • Model-specific Bambu Lab wiki URLs for system types
  • External link icon next to maintenance item names
  • Fix: deleted printer now removed from maintenance

Spoolman Integration

  • Clear location when spools removed from AMS during sync
  • find_spools_by_location_prefix() to find spools at a printer
  • clear_location_for_removed_spools() clears stale locations

Bug Fixes

  • Browser freeze from CameraPage WebSocket (removed duplicate connection)
  • Project card filament badges showing duplicates and raw color codes
  • Print object label positioning in skip objects modal
  • Printer hour counter not updated on backend restart
  • Virtual printer excluded from discovery
  • Print cover fetch in Docker environments
  • Critical: Archive delete safety checks prevent deleting parent dirs

🔄 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/81 **Author:** [@maziggy](https://github.com/maziggy) **Created:** 1/12/2026 **Status:** ✅ Merged **Merged:** 1/12/2026 **Merged by:** [@maziggy](https://github.com/maziggy) **Base:** `main` ← **Head:** `0.1.6b7` --- ### 📝 Commits (10+) - [`5f989c3`](https://github.com/maziggy/bambuddy/commit/5f989c34f1c9ab10f38acf23fbceb0c012251ae8) Changed version to 0.1.6b7 - [`b0c576c`](https://github.com/maziggy/bambuddy/commit/b0c576c8a89396126badc03d7326ba6e0351f9de) Improved duplicate archive check - [`6fb71de`](https://github.com/maziggy/bambuddy/commit/6fb71de6a2814285c166355144b842e0714df855) Add firmware update helper for LAN-only printers - [`a18d0c0`](https://github.com/maziggy/bambuddy/commit/a18d0c09399f019591d90b4e7d997d71de4d5e55) Fixed datetime import bug - [`ffd0c8b`](https://github.com/maziggy/bambuddy/commit/ffd0c8bddfdb061483671c017ad88c16c68eec57) Fixed bug where print cover could not be fetched in Docker environments - [`19dfbf1`](https://github.com/maziggy/bambuddy/commit/19dfbf1c966dadc68876ad02259f8f75751715b5) Excluded virtual printer from printer discovery - [`eddee5b`](https://github.com/maziggy/bambuddy/commit/eddee5b6e9d042cff0ffb73eecdbb80e35003060) Improved printer card size selector - [`59fe2a6`](https://github.com/maziggy/bambuddy/commit/59fe2a6ec785f8c56201b658dbc2d83805c8a065) Improved camera window stream management - [`4f2fa76`](https://github.com/maziggy/bambuddy/commit/4f2fa7685a9b5295501de4b3f4d92412070a6c0d) Minor fixes - [`50fd0c0`](https://github.com/maziggy/bambuddy/commit/50fd0c018bd6a57d0d79edc15f2f5b4e85a7196e) Add support bundle feature for issue reporting ### 📊 Changes **80 files changed** (+15299 additions, -9502 deletions) <details> <summary>View changed files</summary> 📝 `.gitignore` (+3 -0) 📝 `CHANGELOG.md` (+110 -0) 📝 `README.md` (+7 -4) 📝 `backend/app/api/routes/archives.py` (+128 -20) 📝 `backend/app/api/routes/cloud.py` (+78 -0) ➕ `backend/app/api/routes/firmware.py` (+298 -0) 📝 `backend/app/api/routes/maintenance.py` (+15 -1) 📝 `backend/app/api/routes/print_queue.py` (+32 -1) 📝 `backend/app/api/routes/printers.py` (+45 -1) 📝 `backend/app/api/routes/settings.py` (+8 -1) 📝 `backend/app/api/routes/spoolman.py` (+30 -0) ➕ `backend/app/api/routes/support.py` (+347 -0) 📝 `backend/app/core/config.py` (+1 -1) 📝 `backend/app/core/database.py` (+12 -0) 📝 `backend/app/main.py` (+102 -49) 📝 `backend/app/models/maintenance.py` (+1 -0) 📝 `backend/app/models/print_queue.py` (+4 -0) 📝 `backend/app/schemas/archive.py` (+29 -1) 📝 `backend/app/schemas/cloud.py` (+18 -0) 📝 `backend/app/schemas/maintenance.py` (+5 -0) _...and 60 more files_ </details> ### 📄 Description v0.1.6b7 ## AMS Color Mapping (#76) - Manual AMS slot selection in ReprintModal, AddToQueueModal, EditQueueItemModal - Dropdown to override auto-matched AMS slots with any loaded filament - Blue ring indicator distinguishes manual selections from auto-matches - Status indicators: green (match), yellow (type only), orange (not found) - Shared color utility (utils/colors.ts) with ~200 Bambu color mappings - Widened modals (max-w-md → max-w-lg) to fit long color names - Fixed AMS mapping format to match Bambu Studio exactly: - Use slot_id from 3MF to position tray IDs correctly - Fill unused slots with -1 placeholder - Add ams_mapping2 with detailed {ams_id, slot_id} pairs - Resolves "stuck at filament change" on multi-color reprints ## Print Options in Reprint Modal - Bed leveling, flow calibration, vibration calibration toggles - First layer inspection, timelapse toggles - Collapsible "Print Options" section - Fixed print command format for proper printer recognition ## Time Format Setting (#75) - New date utilities (utils/date.ts): parseUTCDate, formatDate, formatDateTime - Applied to 12 components: PrintersPage, ArchivesPage, QueuePage, ProjectDetailPage, SystemInfoPage, AMSHistoryModal, NotificationLogViewer, CalendarView, FilamentTrends, PrinterQueueWidget, ProfilesPage - Fixes archive times showing in UTC instead of local timezone ## Statistics Dashboard (#72) - Size-aware rendering passes widget size (1/4, 1/2, full) to components - PrintCalendar: Dynamic cell sizing via ResizeObserver, 3/6/12 months - SuccessRateWidget: Per-printer breakdown at larger sizes - TimeAccuracyWidget: Per-printer breakdown at larger sizes - FilamentTypesWidget: Grid layout at larger sizes - FailureAnalysisWidget: More failure reasons at larger sizes ## Firmware Update Helper - Check firmware versions against Bambu Lab servers for LAN-only printers - Orange "Update" badge on printer cards when updates available - Firmware modal with version info, release notes, upload progress - One-click upload to printer SD card via FTP with progress callback - Local firmware caching for faster re-uploads - New services: firmware_check.py, firmware_update.py - New routes: /api/v1/firmware/* ## FTP Reliability - Configurable retry (1-10 attempts, 1-30s delay) in Settings > General - Applies to: 3MF archiving, print uploads, timelapse downloads, reprint uploads, firmware updates - A1/A1 Mini SSL fix: skip SSL on data channel entirely (control encrypted) - X1C/P1S: SSL with session reuse on data channel (required by vsFTPd) - Configurable FTP timeout (10-120s, default 30s) for slow WiFi ## Bulk Operations - Bulk project assignment from multi-select toolbar (#70) - BatchProjectModal for assigning archives to projects - "Remove from project" option for bulk clearing ## Chamber Light Control (#67) - Light toggle button on printer cards (next to camera) - Custom ChamberLight SVG icon with on/off states - Backend: POST /printers/{id}/chamber-light?on=true|false - H2D dual chamber lights controlled together ## Support Bundle Feature - Debug logging toggle with real-time duration timer in Layout - /api/v1/support/bundle generates ZIP with system info and logs - Privacy protection: filters secrets, sanitizes paths, removes IPs/emails - Requires debug logging enabled before download ## Archive Improvements - List view: edit/delete buttons and context menu with full parity - Object count display on cards (extracted from 3MF metadata) - Cross-view highlighting: click calendar/project to highlight in cards - Context menu button (⋮) on cards and list rows ## Maintenance Improvements (#59) - wiki_url field for custom type documentation links - Model-specific Bambu Lab wiki URLs for system types - External link icon next to maintenance item names - Fix: deleted printer now removed from maintenance ## Spoolman Integration - Clear location when spools removed from AMS during sync - find_spools_by_location_prefix() to find spools at a printer - clear_location_for_removed_spools() clears stale locations ## Bug Fixes - Browser freeze from CameraPage WebSocket (removed duplicate connection) - Project card filament badges showing duplicates and raw color codes - Print object label positioning in skip objects modal - Printer hour counter not updated on backend restart - Virtual printer excluded from discovery - Print cover fetch in Docker environments - Critical: Archive delete safety checks prevent deleting parent dirs --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
BreizhHardware 2026-05-07 00:15:00 +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-maziggy-1#928
No description provided.