v0.1.8
Bambuddy v0.1.8 Release Notes
Highlights
This release focuses on security hardening, FTP reliability, and print accuracy improvements, alongside several community-contributed enhancements.
Enhancements
Per-Filament Spoolman Usage Tracking (PR #277)
- Reports exact filament consumption per spool to Spoolman after each print
- Parses G-code from 3MF files for layer-by-layer extrusion data (multi-material support)
- New settings: "Disable AMS Estimated Weight Sync" and "Report Partial Usage for Failed Prints"
- Persists tracking data in SQLite for reliability across restarts
3D Model Viewer Improvements (PR #262)
- Plate selector for multi-plate 3MF files with thumbnail previews
- Object count display per plate and total
- Fullscreen toggle with resizable split view
- Pagination for files with many plates (50+)
Virtual Printer Proxy Mode Improvements
- SSDP proxy for cross-network setups with slicer network interface selection
- FTP proxy now listens on port 990 (matching Bambu Studio expectations)
- Automatic directory permission checking at startup
Pushover Image Attachments (PR #253)
- Camera finish photo images now attached directly to Pushover notifications
File Manager Print/Schedule Consistency (PR #258)
- File Manager print and schedule actions now match Archives page behavior
Bug Fixes
- Authentication Required Error After Initial Setup (#257) — Token clearing on 401 responses is now more selective
- Filament Hover Card Overlapping Nav Bar (#259) — Hover card positioning accounts for the fixed header
- Filament Statistics Incorrectly Multiplied by Quantity (#229) — Removed incorrect * quantity multiplication
- Print Queue Status Does Not Match Printer Status (#249) — Queue shows "Paused" when printer is paused
- Queue Scheduled Time Wrong Timezone (#233) — Datetime picker now correctly uses local timezone
- Mobile Layout Issues (#255) — Fixed header buttons overflowing on mobile devices
- AMS Auto-Matching Selects Wrong Slot (#245) — Uses color as tiebreaker when multiple trays share the same filament type
- A1/A1 Mini FTP Upload Failures (#271) — Replaced storbinary() with manual chunked transfer
- P1S/P1P FTP Upload Failures — Restored SSL session reuse for vsFTPd-based printers
- FTP Auto-Detection for A1 Printers — Tries encrypted data channel first, falls back automatically
- Queue Print Time for Multi-Plate Files (PR #274) — Shows per-plate time instead of total
- Safari Camera Stream Failing — Fixed Service Worker scope issue in Safari
- Virtual Printer Proxy Error (PR #260) — Fixed proxy connection handling
- Docker Permissions — Added PUID/PGID support to docker-compose.yml
Security
- CodeQL Zero-Finding Baseline — Reduced findings from 591 to 0 with custom query suites
- Log Injection Prevention — Converted ~700 f-string log calls to parameterized %s style
- Exception Handling Hardened — Narrowed ~265 bare except blocks to specific exception types
- SSRF Mitigations — URL validation for Home Assistant and IP validation for Tasmota integrations
- Stack Trace Exposure Fixed — Generic error messages in HTTP responses
- XXE Prevention — Replaced xml.etree with defusedxml across all 3MF parsing
- Path Injection Fixed — Added path traversal validation to attachment and timelapse endpoints
- Security Scanning in CI/CD — Added Bandit, Trivy, pip-audit, and npm-audit with GitHub Security integration
- Hashlib Security Annotations — Added usedforsecurity=False to non-security hashes
- Unused Code Removal — Removed ~30 redundant imports, variables, and dead code paths
Added
- Windows Portable Launcher — start_bambuddy.bat for double-click-to-run on Windows, auto-downloads Python and Node.js
Community Contributors
Thank you to everyone who contributed to this release!
- @MisterBeardy — 3D model viewer plate selector improvements (PR #262) and per-plate print time fix for queue (PR #274)
- @bambuman — Per-filament Spoolman usage tracking with G-code parsing (PR #277)
- @sbcrumb — Pushover notification image attachments (PR #253)
- @cadtoolbox — File Manager print/schedule consistency with Archives page (PR #258)
- @karaktaka — Virtual printer proxy error fix (PR #260)
- @nmori — Windows portable launcher (start_bambuddy.bat)