bambuddy/backend/app/core
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 Added screenshots 2025-11-28 10:23:59 +01:00
asyncio_handlers.py fix(#1113): silence Windows asyncio Proactor cleanup-RST noise 2026-04-27 16:14:31 +02:00
auth.py fix(overlay): authenticate the OBS overlay with a token when login is enabled (#2613) 2026-07-20 13:04:35 +02:00
catalog_defaults.py Inventory UX improvements, color catalog expansion, settings polish 2026-02-15 09:12:34 +01:00
compat.py Fix Python 3.10 compatibility (StrEnum requires 3.11) 2026-03-05 10:44:24 +01:00
config.py fix(db): release scheduler/cloud/cover sessions across slow I/O, add LIFO pool (#2572) 2026-07-18 16:15:09 +02:00
database.py fix(smart-plugs): don't blank printer state when an accessory plug switches off (#2629) 2026-07-22 09:57:27 +02:00
db_dialect.py Add optional PostgreSQL database support 2026-04-03 11:33:29 +02:00
encryption.py feat(encryption): MFA at-rest encryption auto-bootstrap with status UI (#1219) (#1231) 2026-05-08 09:01:51 +02:00
local_config.py feat(system): NTP-gate state on /api/v1/system/appliance 2026-06-22 14:23:30 +02:00
logging_filters.py fix: cancel-safe get_db + drop sqlalchemy.pool cancellation noise 2026-04-27 16:32:10 +02:00
paths.py feat(encryption): MFA at-rest encryption auto-bootstrap with status UI (#1219) (#1231) 2026-05-08 09:01:51 +02:00
permissions.py feat(slicer): Slicer Pipelines — save & reuse a preset bundle in one click (#1425 PR A) 2026-06-27 13:56:18 +02:00
tasks.py fix(asyncio): track strong refs on orphan create_task sites 2026-06-06 10:41:28 +02:00
trace.py feat(observability): trace ID column on every log line + X-Trace-Id header 2026-04-26 10:01:17 +02:00
websocket.py feat(toast): restore upload-progress toast for scheduler dispatches (#1625 follow-up) 2026-06-27 11:28:00 +02:00