bambuddy/backend/app/models
maziggy 56accd24de fix(smart-plugs): don't blank printer state when an accessory plug switches off (#2629)
An end-of-print auto-off on a plug that powers a filter fan marked the linked
printer offline and forced its state to "unknown". The mark was unrecoverable:
connected heals on the next MQTT message but state does not (only frames
carrying gcode_state rewrite it, and steady-state push_status frames are
partial), so the printer stayed "unknown" until a manual Force Refresh and the
queue never dispatched to it again.

The offline mark is now an explicit presumption: mark_power_off records the
state it overwrites and _on_message undoes it as soon as the printer sends
another report on its own topic, since inbound traffic proves the power was
never cut. A reconnect discards the saved state, so a genuine power cut is
unaffected. Each plug also gains a controls_printer_power flag (default true,
backfilled) that gates all five power-off paths, and the queue's power-on step
now picks the flagged plug instead of whichever linked plug came first.
2026-07-22 09:57:27 +02:00
..
__init__.py feat(slicer): Pipelines — archive entry point + slicer progress toast (#1425 PR B follow-up) 2026-06-27 15:01:14 +02:00
active_print_spoolman.py feat(spoolman): remain%-delta fallback for no-3MF "Untitled" prints (#1820) 2026-06-25 10:46:57 +02:00
ams_history.py - Add interactive API Browser to Settings > API Keys 2026-01-02 15:00:21 +01:00
ams_label.py Feature AMS Info Card (#570) 2026-03-05 08:36:39 +01:00
api_key.py fix(auth): let API keys manage projects via new can_manage_projects scope (#1893) 2026-07-05 09:58:16 +02:00
archive.py fix(queue): persist selected plate to the archive; reconcile archive on offline stop (#2603) 2026-07-19 09:29:54 +02:00
auth_ephemeral.py feat: Two-Factor Authentication (TOTP, Email OTP) and OIDC/SSO – full implementation with admin UI (#933) 2026-04-13 13:24:28 +02:00
bug_report.py Add in-app bug reporting with relay, debug log collection, and privacy controls 2026-03-04 13:33:19 +01:00
color_catalog.py feat(inventory): multi-colour gradients, transparency, visual effects (#1154) 2026-04-29 09:13:33 +02:00
external_link.py Add "Open in new tab" toggle for external sidebar links (#338) 2026-02-12 07:51:55 +01:00
filament.py - Add interactive API Browser to Settings > API Keys 2026-01-02 15:00:21 +01:00
filament_sku_settings.py [Fix] Forecasting: Group spools by color and rework UI (#1814) 2026-06-25 11:35:57 +02:00
github_backup.py feat(backup): Extend Backup to other Git providers (#1160) 2026-05-03 08:12:36 +02:00
group.py Add group-based permissions system with granular access control 2026-01-31 12:50:15 +01:00
kprofile_note.py - Add interactive API Browser to Settings > API Keys 2026-01-02 15:00:21 +01:00
library.py feat(file-manager): user-authored tags for cross-cutting filtering (#1268) 2026-06-22 12:27:58 +02:00
local_preset.py Add local profiles — import OrcaSlicer presets without Bambu Cloud (#310) 2026-02-09 17:00:02 +01:00
location.py feat(inventory): structured storage locations catalog (#1505) 2026-06-17 11:33:23 +02:00
long_lived_token.py feat(#1108): long-lived camera-stream tokens + fix(#1089) audit-pass tweaks 2026-04-25 10:44:37 +02:00
maintenance.py Add soft-delete for system maintenance tasks 2026-02-13 15:39:52 +01:00
notification.py feat(notifications): dedicate AI Failure Detection notification event (#1794) 2026-06-22 08:15:29 +02:00
notification_template.py feat(notifications): template-driven finish-photo email embed + user_print_* rename (#1792) 2026-06-22 11:15:39 +02:00
oidc_provider.py feat(auth): SSO autologin + disable local username/password login (#1589) 2026-06-25 14:54:27 +02:00
orca_base_cache.py Add local profiles — import OrcaSlicer presets without Bambu Cloud (#310) 2026-02-09 17:00:02 +01:00
pending_upload.py fix(archive,vp): strip .gcode.3mf properly + sync review/archive name (#1152) 2026-05-01 12:34:56 +02:00
pipeline_run.py feat(slicer): Pipelines — multi-copy + class targeting + fanout + runs dashboard + retry-failed + WS updates (#1425 PR C — completes the v3 design) 2026-06-27 16:52:05 +02:00
print_batch.py Add batch print quantity to print/schedule dialog (#342) 2026-04-01 11:55:30 +02:00
print_log.py fix(stats): per-event aggregation so reprints add to Quick Stats instead of overwriting (#1378) 2026-05-16 11:34:40 +02:00
print_queue.py feat(print-options): add "Auto" state to bed levelling, flow & nozzle-offset calibration 2026-07-20 17:55:56 +02:00
printer.py feat(heater-history): track nozzle / bed / chamber readings + per-tile chart-icon overlay opens history modal 2026-06-20 12:55:24 +02:00
printer_sensor_history.py feat(heater-history): track nozzle / bed / chamber readings + per-tile chart-icon overlay opens history modal 2026-06-20 12:55:24 +02:00
project.py feat(projects): URL field + cover photo on project cards (#1155) 2026-04-29 07:42:09 +02:00
project_bom.py - Project page enhancements and bug fixes 2025-12-28 12:04:33 +01:00
settings.py - Add interactive API Browser to Settings > API Keys 2026-01-02 15:00:21 +01:00
shopping_list.py [Fix] Forecasting: Group spools by color and rework UI (#1814) 2026-06-25 11:35:57 +02:00
slicer_pipeline.py feat(slicer): Slicer Pipelines — save & reuse a preset bundle in one click (#1425 PR A) 2026-06-27 13:56:18 +02:00
slot_preset.py Add local profiles — import OrcaSlicer presets without Bambu Cloud (#310) 2026-02-09 17:00:02 +01:00
smart_plug.py fix(smart-plugs): don't blank printer state when an accessory plug switches off (#2629) 2026-07-22 09:57:27 +02:00
smart_plug_energy_snapshot.py fix(energy): date-range energy in total mode + restart-resilient per-print tracking (#941) 2026-04-11 11:14:54 +02:00
sponsor_toast_state.py feat(sponsor-prompt): in-app toast at earned milestones 2026-06-20 15:50:58 +02:00
spool.py feat(inventory): structured storage locations catalog (#1505) 2026-06-17 11:33:23 +02:00
spool_assignment.py Sync 2026-02-12 11:54:50 +01:00
spool_catalog.py Sync 2026-02-12 07:07:50 +01:00
spool_k_profile.py Sync 2026-02-12 07:07:50 +01:00
spool_usage_history.py Add archive_id to SpoolUsageHistory model and update cost calculations in usage_tracker 2026-02-20 13:39:41 +01:00
spoolbuddy_device.py fix(spoolbuddy): lower /update permission to INVENTORY_UPDATE so kiosk's own Settings -> Update button works 2026-05-08 14:28:41 +02:00
spoolman_k_profile.py Feature/spoolman inventory UI (#1241) 2026-05-08 11:52:42 +02:00
spoolman_slot_assignment.py fix(spoolman): allow AMS-HT ams_id range in slot-assignment table (#1274) 2026-05-12 08:48:30 +02:00
user.py fix(cloud): stop reporting an expired Bambu Cloud sign-in as connected (issue #2562) 2026-07-14 11:29:56 +02:00
user_email_pref.py Post work PR #693 2026-03-17 12:24:36 +01:00
user_otp_code.py feat: Two-Factor Authentication (TOTP, Email OTP) and OIDC/SSO – full implementation with admin UI (#933) 2026-04-13 13:24:28 +02:00
user_totp.py feat: Two-Factor Authentication (TOTP, Email OTP) and OIDC/SSO – full implementation with admin UI (#933) 2026-04-13 13:24:28 +02:00
virtual_printer.py feat(gcode-injection): per-VP opt-in auto-print injection toggle (#1516) (#1656) 2026-06-19 11:29:07 +02:00