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