You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Camera, printer and monitor registries — printers (OctoPrint, Klipper, Bambu Lab) are
now registered once in their own registry, exactly like cameras, then picked from a list;
the registry is the only place to create or delete one. A monitor binds a registered
camera and an optional registered printer and carries the inference thresholds and
defect-response policy, so one printer connection can back several monitors and its
connection details are entered once instead of re-typed per printer.
Bambu Lab printers — link a printer over its local MQTT API alongside the existing
OctoPrint and Klipper services, with the same pause/cancel-on-defect response, job and
progress reporting, and inference gating. Enable LAN Only Mode and Developer Mode
on the printer, then link it with its IP, serial number and access code — the form links
Bambu's official setup guide. The protocol is MQTT over TLS, which needs a raw socket the
browser sandbox forbids, so Bambu Lab is offered in hub mode only — the same
constraint that already makes some notifiers hub-only.
Printer-exposed cameras — when a registered printer's service exposes a webcam,
PrintGuard registers it as a camera automatically (no stream URL to copy). A camera
attached to the printer later is picked up from the camera registry's new Printer
cameras tab with a Refresh button. Covers OctoPrint and Klipper (Moonraker) webcam
streams and the Bambu Lab chamber camera — RTSP on the X1/H2 series and the proprietary
port-6000 JPEG protocol on the A1/P1 series (hub mode). These cameras are managed by their
printer: they cannot be removed on their own and are dropped with it, and the REST and MCP
read surface strips the access codes their sources carry.
Setup guides in config forms — each printer service and notification channel now
shows a one-line setup hint and a link to its official setup docs, so steps taken
outside PrintGuard (API keys, CORS, bot tokens, webhooks, LAN mode) are spelled out
where you configure them.
Experimental tag — a reusable badge that flags new, not-yet-battle-tested features
and links to the issue tracker for reports. Bambu Lab carries it.
MCP server and REST API for hub mode — agents and developers can now drive the
same engine protocol the dashboard speaks. The Model Context Protocol server
(Streamable HTTP, at /mcp/) lets an agent read monitor, printer and camera status, fetch
the current camera frame as an image, and pause, resume or cancel a print; the versioned
REST API at /api/v1 exposes the same operations to any HTTP client, with the frame
served as image/jpeg. Both are thin transports over the existing engine commands, so
they never drift from the UI. See docs/api.md.
Scoped access tokens, managed from the UI — capability is configurable per token
through cumulative read ⊂ control ⊂ manage scopes. Issue, name and revoke tokens
from the dashboard (Settings → API & MCP access); each secret (a pg_… string) is
shown once and stored only as a SHA-256 hash, and tokens are managed over the dashboard's
own protocol, never over the API itself. With no token issued the surface is read-only
behind your existing auth proxy; issuing scoped tokens unlocks control and management, and
MCP hides any tool a token cannot use.
Update notifications — the hub checks the public GitHub releases once a day for a newer
version and flags it in the header. A dialog shows the changelog for every version above
the one you run and the docker compose pull && docker compose up -d command to upgrade.
The check runs server-side with no telemetry and can be switched off in Settings →
Software updates; local mode, which is always the latest deployed build, never calls out.
Changed
The dashboard entity is now a "monitor". What 2.0 called a printer — a camera bound
to a service with thresholds — is a monitor; the printer is the registered service
connection it points at. Upgrading from 2.0 preserves registered cameras, but printers
must be re-registered and their monitors re-created.
Fixed
Klipper's API-reference link pointed at Moonraker's old /web_api/ page, which now
404s; repointed to the current reference.