Commit Graph
337 Commits
Author SHA1 Message Date
MartinNYHC 63dee1c2ef Merge pull request #54 from maziggy/0.1.6b7
v0.1.6b6

  ### FEATURES

  - Resizable printer cards - Four sizes (Small, Medium, Large, XL) with persistent preference
  - Queue Only mode - Stage prints without automatic scheduling, manual release with play button
  - Virtual printer model selection - Choose from X1, P, A1, H2 series models with auto-restart on change
  - Pending upload delete confirmation - Confirmation modal when discarding pending uploads

  ### Fixes

  - Camera stream reconnection - Improved stuck stream detection with automatic reconnection
  - Virtual printer SSDP model codes - Corrected C11=P1P, C12=P1S, N7=P2S
  - Virtual printer serial prefixes - Fixed to match actual Bambu Lab format
  - Virtual printer startup model - Now correctly loads saved model from database on restart
  - Virtual printer model change - Model changes auto-restart (no manual disable/enable needed)
  - Docker certificate persistence - Certificates correctly persist in bambuddy_data volume
v0.1.6b6
2026-01-04 15:23:49 +01:00
maziggy d241c5e4db Fixed backend tests for virtual printer 2026-01-04 15:17:34 +01:00
maziggy a1f6d648dc Fixed bug in virtual printer 2026-01-04 14:57:12 +01:00
maziggy cd5be4b842 Fixed bug in virtual printer 2026-01-04 14:54:27 +01:00
maziggy 505bad1f80 Fixed bug in virtual printer 2026-01-04 14:47:57 +01:00
maziggy bb37a8c8a8 Fix virtual printer model codes and serial prefixes
- Correct SSDP model codes: C11=P1P, C12=P1S, N7=P2S, C13=X1E
  - Fix serial prefixes based on actual Bambu serial format
  - Add confirmation modal for pending upload discard
  - Sort model dropdown alphabetically, remove internal codes
  - Add "Setup Required" warning with link to wiki documentation
  - Update wiki with certificate installation and platform setup guides
2026-01-04 14:05:08 +01:00
maziggy 81c8dd7d0c Add virtual printer model selection
Features:
  - Configurable printer model for virtual printer emulation
  - Supports X1 series (X1C, X1, X1E), P series (P1S, P1P, P2S),
    A1 series (A1, A1 Mini), and H2 series (H2D, H2C, H2S)
  - Dropdown in Settings > Virtual Printer to select model
  - Model affects SSDP discovery and slicer compatibility
  - Model change restarts virtual printer services automatically

  Backend:
  - Added VIRTUAL_PRINTER_MODELS mapping in manager.py
  - Added virtual_printer_model setting in database
  - New GET /api/v1/settings/virtual-printer/models endpoint
  - Updated PUT /api/v1/settings/virtual-printer to accept model

  Frontend:
  - Added model dropdown to VirtualPrinterSettings component
  - Status display shows selected model name
  - Model change disabled while virtual printer is running

  Tests:
  - Added 3 unit tests for model configuration
  - Updated frontend test mocks for getModels API
2026-01-04 09:39:06 +01:00
maziggy 8639f39028 Add resizable printer cards and Queue Only mode
Features:
  - Resizable printer cards (S/M/L/XL) with toolbar controls on Printers page
  - Queue Only mode for staging prints without automatic scheduling
    - "Queue Only" option in add/edit queue modals
    - Purple "Staged" badge and Play button to release to queue
    - manual_start field in database with migration

  Fixes:
  - Improved camera stream stuck detection with automatic reconnection

  Tests:
  - Added 16 integration tests for print queue API endpoints
2026-01-04 09:10:06 +01:00
maziggy 4a80888d95 Printer card size can now be choosen by user 2026-01-04 08:34:03 +01:00
maziggy 53eff03fb5 Added debug logging for printer's hour counter and current active AMS slot mapping 2026-01-04 08:08:10 +01:00
maziggy 815866c364 Demo video 2026-01-03 13:00:02 +01:00
maziggy 3c336b0da2 Fixed bug in camera stream stuck detection 2026-01-03 11:03:00 +01:00
maziggy 02f437b349 Added admin link to Tasmota power plugs card 2026-01-03 10:59:27 +01:00
maziggy a308248880 Camera stream is now reconnecting if stream stucks 2026-01-03 10:51:37 +01:00
maziggy 0f229889fb Improved printer's slot card detail modal "link to spoolman" function 2026-01-03 10:44:06 +01:00
maziggy 226094982d Fixed active AMS slot display 2026-01-03 10:38:26 +01:00
maziggy 5dae3d3021 Fixed bug in skip objects modal, where the object ID markers are not correctly positioned over their corresponding objects in the build plate preview 2026-01-03 10:26:06 +01:00
maziggy 55ec08d4d1 Improved cover image retrieval 2026-01-03 10:02:00 +01:00
maziggy c9ad09864d Minor GCode viewer improvements 2026-01-03 09:59:17 +01:00
maziggy 410924a94f Fixed bug where printer card was showing wrong cover image, if print file has multiple plates 2026-01-03 08:36:59 +01:00
maziggy 62a0b8671b Fixed bug in archive card's context menu #46 2026-01-03 08:16:29 +01:00
maziggy d03fe7598f Fixed bug in Spoolman sync 2026-01-03 08:11:55 +01:00
maziggy 74e2d95ea8 Changed version to 0.1.6b6 2026-01-02 17:22:05 +01:00
maziggy 94c961dbaf Add real-time fan status monitoring to printer cards
- Controls section: New section before Filaments with fan status and printer controls
  - Part cooling fan (Fan icon, cyan)
  - Auxiliary fan (Wind icon, blue)
  - Chamber fan (AirVent icon, green)
  - Stop/Pause/Resume buttons moved from Temperature section
- Real-time updates: Fan speeds now broadcast via WebSocket
- Backend: Parse MQTT fan data (cooling_fan_speed, big_fan1_speed, big_fan2_speed)
  - Convert 0-15 scale to 0-100%
- Always-visible badges with dynamic coloring based on fan state
- Removed horizontal dividers before Controls and Filaments sections
2026-01-02 16:05:20 +01:00
maziggy 83cbac04b7 - Add interactive API Browser to Settings > API Keys
- New APIBrowser component with full OpenAPI schema integration
    - Fetches and parses /openapi.json automatically
    - Groups endpoints by API tags (printers, archives, settings, etc.)
    - Expandable endpoint sections with color-coded method badges
    - Path parameter, query parameter, and JSON body editors
    - Auto-populates request body with schema examples
    - Live API request execution with response display
    - Response shows status code, timing, and formatted JSON
    - Copy response button with clipboard fallback
    - Search to filter endpoints across all categories
    - Expand All / Collapse All buttons
    - Link to Swagger UI (/docs)

  - Two-column layout for API Keys tab
    - Left: API key management + webhook documentation
    - Right: API Browser with dedicated test key input

  - Parameter validation
    - Shows warning for missing required parameters
    - Validates before sending requests to avoid 422 errors

  - UX improvements
    - "Use in API Browser" button on newly created keys
    - Responsive layout (stacked on mobile, side-by-side on xl+)
2026-01-02 15:00:21 +01:00
maziggy 61c8682fa9 Fixed dark theme's logo 2026-01-02 14:22:31 +01:00
maziggy cfbae8a968 Updated screenshots 2026-01-02 14:13:28 +01:00
maziggy 021318437d Updated screenshots 2026-01-02 14:12:36 +01:00
maziggy 0f65fb9484 - Bugfixes
- AMS "Unexpected format" warnings fixed - P1S/P1P send partial updates without full tray list (per https://github.com/Doridian/OpenBambuAPI/blob/main/mqtt.md). Now handled correctly.
  - FTP improvements:
    - Added timeouts (60s download, 30s listing)
    - Better logging at INFO level
    - Shows what files exist in /cache
  - Fallback archive - When 3MF can't be downloaded, creates minimal archive so prints are tracked
2026-01-02 13:21:57 +01:00
maziggy ad40dfa67f - Minor fixes 2026-01-02 12:36:16 +01:00
maziggy 29f1fa9732 - Improved Docker environment 2026-01-02 12:28:32 +01:00
maziggy e356d03ee1 - Added new settings tab Filament and moved Spoolman Sync card 2026-01-02 12:00:57 +01:00
MartinNYHC 2e6d8c5ab8 Merge pull request #48 from maziggy/0.1.6b5
- Fixed bug in update module for Docker based installations
2026-01-02 11:45:27 +01:00
maziggy 32bd11ad82 - Fixed bug in update module for Docker based installations 2026-01-02 11:43:48 +01:00
MartinNYHC 4b5d88436e Merge pull request #47 from maziggy/0.1.6b5
v0.1.6b5

###  🚀 Highlights

  ## Pre-built Docker Images

  No more building from source! Pull directly from GitHub Container Registry:
  docker pull ghcr.io/maziggy/bambuddy:latest
  - Multi-architecture: linux/amd64 and linux/arm64 (Raspberry Pi 4/5)
  - Docker automatically pulls the correct image for your system
  - Just docker compose up -d — no --build required

  ## Printer Controls

  New stop and pause/resume buttons on printer cards while printing. Includes confirmation modals to prevent accidental clicks.

  ## Skip Objects

  Skip individual objects during a print without canceling the entire job:
  - Skip button appears when printing with 2+ objects
  - Preview image with object ID markers to match your printer display
  - Requires "Exclude Objects" enabled in slicer

  ## Spoolman Improvements

  - Link Spool: Manually link existing Spoolman spools to AMS trays
  - UUID Display: View and copy Bambu Lab spool UUID from AMS hover card
  - Sync Feedback: See which spools synced and which were skipped (with reasons)

  
  ### ✨ What's New

  ## Added

  - Pre-built Docker images on GitHub Container Registry (ghcr.io)
  - Printer control buttons — Stop and Pause/Resume on printer cards
  - Skip objects — Skip individual objects mid-print
  - AMS slot RFID re-read — Re-read filament info via hover menu
  - Spoolman Link Spool — Connect existing Spoolman spools to AMS trays
  - Spool UUID display — View/copy Bambu spool UUID in AMS hover card
  - Spoolman sync feedback — Shows synced count and skipped spools with reasons
  - Print quantity tracking — Track items per print for project progress

  ## Changed

  - Temperature cards layout refactored for control buttons
  - Cover image now shown when paused (for skip objects modal)
  - Spoolman info banner updated with clearer documentation

  ## Fixed

  - Spoolman 400 Bad Request when creating spools (extra field JSON encoding)


 ### 📦 Installation

  Docker (Recommended):
  mkdir bambuddy && cd bambuddy
  curl -O https://raw.githubusercontent.com/maziggy/bambuddy/main/docker-compose.yml
  docker compose up -d

  Updating from 0.1.6b4:
  docker compose pull && docker compose up -d

  ---
  
  Full Changelog: https://github.com/maziggy/bambuddy/compare/0.1.6b4...0.1.6b5
v0.1.6b5
2026-01-02 11:28:26 +01:00
maziggy 5e5eb572b3 - Pre-built Docker images on GitHub Container Registry
- Add multi-architecture support: linux/amd64 and linux/arm64 (Raspberry Pi 4/5)
  - Add docker-publish.sh script for building and pushing images
    - Supports --parallel flag for simultaneous architecture builds
    - Uses Docker Buildx with QEMU emulation
  - Update docker-compose.yml to support both pre-built and source builds
    - `docker compose up -d` pulls pre-built image
    - `docker compose up -d --build` builds from source
2026-01-02 11:21:35 +01:00
maziggyandClaude Opus 4.5 a1c12331db Add Spoolman integration tests and update spool comment
Backend tests:
- 21 integration tests for all Spoolman API endpoints
- Status, connect/disconnect, spools, filaments, link, sync

Frontend tests:
- 20 component tests for SpoolmanSettings
- Rendering, disabled/enabled states, connection status, sync UI

Also changed auto-created spool comment to "Created by Bambuddy"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 10:42:43 +01:00
maziggy ea0bf5f932 - Add print quantity tracking for project progress
- Track number of items per print job (default: 1)
  - Project stats now show total items vs print jobs
  - Progress bar counts items toward target, not just archives
  - "Items Printed" field in archive edit modal

  Backend:
  - Added quantity field to PrintArchive model
  - Database migration for quantity column
  - Updated project stats to use SUM(quantity)
  - Updated backup/restore to include quantity
  - Updated CSV/Excel export with quantity field

  Frontend:
  - Added quantity input to EditArchiveModal
  - Updated ProjectsPage to display total_items
  - Updated ProjectDetailPage stats
  - Fixed project delete not refreshing the list
2026-01-02 10:24:31 +01:00
maziggy 4e25377e5b Updated website 2026-01-02 10:17:21 +01:00
maziggy 019a9822a0 - Fixed bug, where Bambu Lab filament colors not showed correctly
- Added all Bambu Lab filament color tags
2026-01-02 09:41:26 +01:00
maziggy 5b8d24f2ce - Spoolman: Add link spool feature, UUID display, and sync feedback
- Link to Spoolman: Manually link existing Spoolman spools to AMS trays
    - Hover over AMS slot to see "Link to Spoolman" button
    - Select from list of unlinked Spoolman spools
    - Automatically sets extra.tag field in Spoolman
  - Spool UUID display: View and copy Bambu Lab spool UUID in AMS hover card
    - Shows first 8 chars with copy button (full UUID to clipboard)
    - Fallback copy method for HTTP contexts
  - Sync feedback: Shows synced count and skipped spools with reasons
    - Expandable list when more than 5 skipped
    - Color swatches for identification
  - Fixed Spoolman 400 Bad Request: extra field values must be valid JSON
  - Updated documentation (wiki, website)
2026-01-02 09:20:24 +01:00
maziggy fd3919574b - Major fixes for skip objects feature 2026-01-01 18:31:59 +01:00
maziggy 2dcd1a2ef2 - Enhanced skip objects feature with visual improvements and better UX
- Skip Objects Modal:
    - Object ID markers overlaid on preview image (grid layout)
    - Large prominent ID badges to match printer display
    - Info banner explaining to match IDs with printer screen
    - Layer warning when skip unavailable (layer <= 1)
    - Red badge on button showing skipped count
    - Preview image now shown when paused (not just running)
    - Close with ESC key or click outside modal
    - Full light/dark theme support

  - Backend:
    - Extract object positions from 3MF (include_positions=True)
    - API returns x/y coordinates for objects (when available)
    - Parse s_obj from printer MQTT for skipped state persistence
    - Cover URL available in PAUSE/PAUSED states

  - Tests:
    - Added test for objects with position data
2026-01-01 18:01:41 +01:00
maziggy fe250b9b7f - Added frontnend/backend tests for printer controls 2026-01-01 16:02:25 +01:00
maziggy f7994df84f - Added basic printer controls
- Reprint/Stop
  - Pause/Resume
  - AMS slot re-read
2026-01-01 15:52:43 +01:00
MartinNYHC bae287baa7 Merge pull request #43 from maziggy/0.1.6b4
**v0.1.6b4**

### New Features

    ## Printer Cards
    - Refactored AMS section for better visual grouping and spacing

### Bugfixes

    ## Printer Hour Counter
    - Fixed runtime_seconds not incrementing during prints
    - first timestamp was set but never committed

    ## Slicer Protocol
    - Add OS detection for slicer protocol handler
    - Windows: bambustudio://, macOS/Linux: bambustudioopen://
    - Updated all usages in Archives and Model Viewer

    ## Camera Popup Window
    - Auto-resize to fit video resolution on first open
    - Persist window size and position to localStorage
    - Restore saved window state for subsequent opens

    ## Maintenance Page
    - Improved duration display with better precision (weeks instead of imprecise months)
    - Large print hours now show readable units (e.g., 478h → 3w, 100h → 4d)

    ## Docker
    - Docker update detection for in-app updates
      - Added _is_docker_environment() function
      - Check endpoint returns is_docker and update_method fields
      - Apply endpoint rejects Docker with helpful instructions
      - Added updates API tests
2026-01-01 14:16:30 +01:00
maziggy 2c61ba930a Updated version to 0.1.6b4 2026-01-01 14:10:41 +01:00
maziggyandClaude Opus 4.5 1234e44eb2 - Docker update detection for in-app updates
- Added _is_docker_environment() function
  - Check endpoint returns is_docker and update_method fields
  - Apply endpoint rejects Docker with helpful instructions
- Added updates API tests
- Updated CHANGELOG

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 14:06:06 +01:00
MartinNYHC 7e3fcec02d Merge pull request #42 from maziggy/0.1.6b4
v0.1.6b4

### New Features

  # Printer Cards
  - Refactored AMS section for better visual grouping and spacing

### Bugfixes

  ### Printer Hour Counter
  - Fixed runtime_seconds not incrementing during prints
  - Bug fix: first timestamp was set but never committed

  ### Slicer Protocol
  - Add OS detection for slicer protocol handler
  - Windows: `bambustudio://`, macOS/Linux: `bambustudioopen://`
  - Updated all usages in Archives and Model Viewer
  - 
  ### Camera Popup Window
  - Auto-resize to fit video resolution on first open
  - Persist window size and position to localStorage
  - Restore saved window state for subsequent opens

  ### Maintenance Page
  - Improved duration display with better precision (weeks instead of imprecise months)
  - Large print hours now show readable units (e.g., 478h → 3w, 100h → 4d)
v0.1.6b4
2026-01-01 12:38:59 +01:00
maziggy 865f3d78fb Updated CHANGELOG 2026-01-01 12:36:32 +01:00