docs: fix user-facing accuracy for --confirm, camera, and doctor - #121
Merged
Conversation
Split job/send --confirm from the exit-5 refusal commands, document the fail-closed camera streamer (opt-in, not auto-fallback), describe doctor fingerprint output as actually implemented, include STP next to STEP, and point sdist readers at GitHub for repo-only quality docs.
This was referenced Aug 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR 2 of the documentation reconciliation pass (user-facing accuracy). Each behavioral claim was checked against the cited source before editing.
What was wrong
Shipped user docs still described older behaviour in four places. README / AGENTS.md / SECURITY.md already had the current story; these files did not.
--confirmonjob/sendis not an exit-5 refusalprint/stop/pause/resume/delete/gcoderefuse without--confirm(exit5,"status": "confirmation_required").job/sendstill download → slice → upload and exit0with"status": "uploaded_not_printed"— only the print step is withheld.Verified in
bambu_cli/job/orchestrate.py(theuploaded_not_printedpath),bambu_cli/commands/{print_cmd,device,files,gcode}.py(the refusal path),tests/test_json_contract_cli.py(NON_REFUSING_CONFIRM_COMMANDS), anddocs/api.md’s refusal-contract paragraph (already correct).docs/troubleshooting.md— split the two casesdocs/manual.md— agent-safety paragraph and “Safety first” bulletdocs/api.md— dropped “may upload”; upload does runCamera streamer is fail-closed / opt-in
A failed direct grab does not start the Docker streamer unless
camera_allow_streamer/--allow-camera-streamer. Pin mismatch, and anyssl.SSLErrorwith a pin configured, hard-abort (never streamer). No pin +insecure_tlsunset: the direct grab refuses before sending the access code.Verified in
bambu_cli/commands/snapshot.py(streamer_is_allowed, pin/SSLErrorabort),bambu_cli/protocols/camera.py(raise beforesendallwhen unpinned),SECURITY.mdcamera-pin-fallback row.docs/troubleshooting.md— removed “falls back to a small streamer container” / “trying Docker streamer”docs/manual.mdCamera snapshots — P1/A1-direct vs X1-needs-opt-in + loopbackcamera_portdoctorfingerprint output is not “always print the SHA-256”Once pinned, human
plate doctoris hex-free on a match unless-v. IP is also-v-only.--jsonalways carriescertificate_fingerprint.Verified in
bambu_cli/commands/doctor.py. One handoff line was not copied verbatim: on mismatch, doctor warns and shows the first eight hex chars of the live cert — it does not print expected vs actual (that wording belongs to the MQTT/FTPS pin check intlspin.py). The live hex on a mismatch is inplate doctor --json.Smaller items
docs/manual.mdslice precedence nowSTL > STEP/STP > OBJ > 3MF > G-code(.stpis first-class inbambu_cli/constants.pyDOWNLOAD_LINK_EXTENSION_PRIORITYandslicer/cmd.py).tests/package_contents_smoke.pysnippet lock updated to match.docs/api.mdandSECURITY.mdsdist-relative links toquality-roadmap.md/test-backlog.mdnow use GitHub blob URLs and say those files are repo-only (not in the sdist).Checks
uv run python -m pytest tests/test_docs_consistency.py -q— 7 passedpython scripts/cli_help_smoke.py— 21 subcommands okcheck_agent_docs_current()snippet lock — okNo numbers were retouched (PR 1 / #120 already reconciled those).