Printer-agent manual checklist

Record what the printer did, not just what the UI displayed. Mark a case blocked when the required printer, configuration, or safe test condition is unavailable.

0 of 0 cases marked

Use Pass only after observing the expected result. Fail needs enough evidence to reproduce it. Include response text, log markers, or firmware behavior in the note.

Connect and observe status

Connect to the selected printer

Expected: the Device tab receives a fresh status update after connection. Do not use a successful connection return alone as the result.

Observe live status changes

Expected: temperature and target changes, fan state, print state, filename, progress, elapsed time, and homing state reach the UI while the printer changes state.

Disconnect and reconnect

Expected: a second connection produces new status messages and does not create a duplicate device. Record the post-reconnect status evidence.

Handle network and response failures

Expected: for discovery, status, G-code, upload, and print start, exercise controlled HTTP 401, 404, and 500 responses, invalid JSON, and refused sockets. Each operation must fail clearly or offer a retry, without a crash or a false success. Record the operation, injected failure, UI result, and any retry.

Controls and printing

Exercise safe controls

Expected: home, bed and nozzle temperature, and a harmless G-code command take effect on the printer. Do not use Moonraker jog as a safe control test while it can leave relative positioning active.

Verify queued command order under latency

Expected: queue three harmless, uniquely marked commands while a proxy, network shaper, or request log introduces or records latency. The printer-side log must show the markers in the same order they were queued. Record the latency method and observed order.

Send a file without starting it

Expected: the file appears on the printer and no print starts.

Start a small print

Expected: upload completes, the printer starts the selected file, and status transitions to printing.

Pause, resume, and cancel an active print

Expected: after the small print is actively printing, pause it and observe a paused state on both printer and UI; resume it and observe printing again; then cancel it and observe the printer stop and the UI leave the active or paused state.

Check upload failure handling

Expected: cancellation during upload and a missing input fail clearly and do not begin a partial or unintended print.

Filament, camera, and agent-specific checks

Refresh material-system data

Expected: populated slots, empty slots, material, colour, and a live change are represented correctly. Moonraker-family agents pull this data; do not expect a subscription callback.

Clear material data when filament or the system is absent

Expected: remove filament or disable the material system, refresh, and confirm the UI no longer shows obsolete slots, material names, or colours.

Verify print-time mapping where supported

Expected: only agents with a documented mapping implementation change printer-side mapping. Do not attempt load, unload, or slot-setting macros unless their printer-specific contract is known and safe.

Check Qidi Send preflight with missing nozzle identity

Expected: on a Qidi agent and compatible single-nozzle slice, Send proceeds when the Device tab has no reported nozzle diameter or type. It must not stop with PrintStatusNozzleDataInvalid. Record any reported identity and any mismatch result separately; this does not approve a known mismatch.

Verify a camera feed

Expected: frames advance and switching printers does not display a stale feed. For Snapmaker, observe immediately before and after 300 seconds in one open view. The renewal result is unknown until hardware evidence exists. Then swap agents and shut down the app to exercise teardown around the detached callback's raw-this lifetime risk.

Verify the print thumbnail

Expected: test a reused filename after its thumbnail changes, response payloads with both thumbnail_path and relative_path, and a path below the G-code root. The displayed image must match the current file in each case.

Reload a Python printer-agent plug-in

Expected: the capability registers once, duplicate agent IDs are rejected visibly, and disable or unload removes the agent cleanly.