Repository navigation
treaty rc12: why, observe, secrets, import, deploy, rollback, restart, data migrate on treaty - #9
Merged
Merged
Conversation
rc12 lands the treaty issues the port filed. playbook run streams the Ansible log to stderr as plain text in any format (stream="always", treaty #173), so a timer's journal or a CI log keeps it, and the log tail in a failure's context is treaty.External (#174). The drift report keeps its declared order on the failure path (#181), so its strict xfail becomes a regression test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
treaty rc12 lets an app register a format outside its enum (#179), so why moves with its page: render_why_document draws it from the answer's JSON, which is what a treaty renderer receives. treaty offers a custom format on every command (#209), so the others render their data as a page of JSON. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ate on treaty treaty rc12 lets an output adapter carry effect on a command that writes (#183), so the eight commands with camelCase keys move with their exact data. A Payload subclass for a writing command lists effect, and a command with a plan and a result shape answers one object whose keys absent from this answer are null. sops runs through ctx.run and the Render API through ctx.http; observe passes a ctx.run playbook runner. Declares PERMISSION_DENIED on import render, which raised it undeclared (found by its read-only test, treaty #211), and NOT_FOUND or ENGINE_STEP_FAILED where a helper can raise them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 2, 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.
treaty 1.0.0rc12, and the nine commands it unblocked. Stacked on #8 (base
treaty-cli-phase3) → #7 → #6.Changes
playbook runstreams the Ansible log to stderr as plain text in any format again (stream="always", #173), so a timer's journal or CI log keeps it; the log tail in a failure's context istreaty.External(#174). The drift report keeps its declared order on the failure path (#181): its strict xfail is now a regular testwhy(c5969bb): moves with--format html(#179);render_why_documentdraws the page from the answer's JSON, which is what a treaty renderer receives. treaty offers a custom format on every command (#209), so other commands render their data as a page of JSONobserve,secrets render,import render,import render-api,deploy,rollback,restart,data migrate. Their camelCase keys go through thePayloadadapter, which may now carryeffect(#183). A command with a plan and a result shape answers one object, absent keysnull. sops runs throughctx.run, the Render API throughctx.http(so--proxyapplies), andobservethrough actx.runplaybook runnerobserve91INCOMPLETE(was 1) with the run indata; failures that were exit 2 are 4PRECONDITIONwith the old code inerror.context.code.import renderdeclaredPERMISSION_DENIED, which it raised undeclared (found by its read-only test); helpers' reachable codes are declared onhealth,operator listandaddnullwhen absent (was{}), soinventory showwritesdata.ansible: nullfor a projectLeft on argparse:
changelog(phase 5),operator run(#175),dashboard serve(phase 4). 30 commands now run on treaty.treaty issues filed
#209 (a custom format on one command only), #210 (declare a mutating command idempotent), #211 (audit rule for raised-but-undeclared exit codes)
Checks
uv run pytest: 457 passed (FORCE_COLORunset); ruff, mypy cleantreaty audit --strict: engine clean but advice; cloudfall one warning (#210,observe's retryableINCOMPLETE) and adviceplaybook runwith stderr to a file keeps the play logrestartandrollbackplans on the example project;observeagainst its TEST-NET hosts exits 91 with the run indata🤖 Generated with Claude Code