Repository navigation
Conversation
…t-plan job and send now put a plan_fingerprint in every envelope: a SHA-256 over the printer serial and model, the source, the content of a local source file, and every slicing and print-start option. Passing a reviewed dry run's fingerprint as --expect-plan makes the real run exit 5, before any download, slice, upload or print, if anything changed. It shows the run is the reviewed one; it does not show a person reviewed it, and a URL is bound to the URL rather than the bytes it serves later.
# Conflicts: # CHANGELOG.md
This branch has not been deployed
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.
What and why
jobandsendnow put aplan_fingerprintin every envelope (dry-run, success, failure): a SHA-256 over the printer serial and model, the source, the content of a local source file, and every slicing and print-start option. Passing a reviewed dry run's fingerprint as--expect-planmakes the real run exit5, before any download, slice, upload or print, if anything changed.Why:
--confirmis only an accident gate, because anything that can runplatecan pass it. This lets a caller prove "what runs is what was reviewed".Limits, stated in SECURITY.md, docs/api.md and the manual:
Changes: new
bambu_cli/job/plan.py,--expect-planincliparse.py, the check injob/orchestrate.py(before any step),plan_fingerprinton theJobOk/JobErrorcontracts with regenerated schemas, tests intests/test_job_plan.py, docs and CHANGELOG.Checklist
uvx ruff check bambu_cliuvx ruff format --check bambu_cliuvx mypy -p bambu_cliuvx --from 'bandit[toml]' bandit -c pyproject.toml -r bambu_cli -ll(exit 0)uv run python -m pytest tests/ -q -m "not live": 2242 passed, coverage 93.57% against the 92 floorpython_compat,ci_workflow,agent_cli,privacysmokes pass;gen_schemas --checkandcheck_layerspasspackage_contents_smoke(needs a built dist; CI builds one). No printer was contacted.Generated by Claude Code