Repository navigation
item 9: release 0.2.0 - #16
Merged
Merged
Conversation
Version 0.2.0. Not tagged, not published. README gains the second quick start — an existing MCP server behind one gateway — with the gateway's real startup output, the one that names every action with no effect: template. A write with no effect key is exactly the configuration this exists to prevent, and it belongs on the line that starts the process rather than in a receipt three weeks later. Plus one sentence each on reconcile= and the OTel extra, and links to SPEC-v0.2 and ACS.md. docs/CLAIMS.md regenerated for v0.2.0: every sentence the README gained, mapped to code and to the test that proves it, and a short section naming the two claims the README deliberately does not make — ACS conformance, and exactly-once execution. CHANGELOG 0.2.0 with a Compatibility section: a v0.1 ctrlrun.yaml loads unchanged, the receipt schema is unchanged, and a v0.1 database is read without migration because the one new table is created on open. ROADMAP reconciled against what actually shipped rather than what it planned. Three things arrived early and one was never listed: the ACS adapter was a v0.3 standards line; Suspended/Control.resume were on no milestone at all and are public API now; policy schema v2 grew out of the gateway; EventSink took file writing off the store. v0.3's line records that --principal-from-client-info is removed there.
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.
The release pass. Version 0.2.0. Not tagged, not published.
README
A second quick start — an existing MCP server behind one gateway, no agent changes — carrying the gateway's real startup output, the one that names every action with no
effect:template. A write with no effect key is exactly the configuration this exists to prevent, and it belongs on the line that starts the process rather than in a receipt three weeks later.Plus one sentence each on
reconcile=and the OTel extra, and links toSPEC-v0.2.mdandACS.md. Nothing about ACS beyond that the doc exists — no conformance language anywhere.docs/CLAIMS.mdRegenerated for v0.2.0: eleven new rows, every sentence the README gained mapped to code and to the test that proves it. It also gains a short section naming the two claims the README deliberately does not make — ACS conformance, and exactly-once execution — because a claims file that only lists what you do say is half a document.
CHANGELOG
A
0.2.0entry with a Compatibility section, which is the part worth reading before merging:ctrlrun.yamlloads unchanged.ctrlrun.policy/v2is opt-in and additive; av1document using a v2 key is a load-timePolicyErrornaming the key and the schema it needs — because a v0.1 reader would ignore the template and execute with no duplicate protection at all.ctrlrun.receipt/v1still describes every receipt v0.2 writes.continuations) is created on open.Two API changes are called out under Changed:
StateStore.append_eventnow returns the stored event (sinks need the assignedevent_id), andSQLiteStateStoreno longer writes JSONL —Controldoes, andfrom_file()installs the sink so the files land exactly where v0.1 put them.ROADMAP, reconciled against what shipped
Not against what it planned. Three things arrived early and one was never listed:
Suspended/Control.resumewere on no milestone at all, and are public API now;schema: ctrlrun.policy/v2grew out of the gateway — a tool call has no decorator to carry an effect template;EventSinktook file writing off the store, which the v0.1 kernel had owned.v0.3's line now records that
--principal-from-client-infois removed there, since the authority model makes a self-reported name an authorization input.Release verification
Per the definition-of-done line added earlier in this project — from a fresh
git cloneinto a temp directory, never from the working tree:click,PyYAML,ctrlrun— nothing elsectrlrun demofrom that wheelctrlrun[gateway]andctrlrun[otel]in fresh venvsOTelEventSink()/serve()from the core installMissingDependencynaming the exactpip installline, neverModuleNotFoundErrormypy --strict src/,ruff check,ruff format --checkWheel metadata confirms the extras are extras:
Definition of done
pip install -e . && ctrlrun demoruns four scenarios well under 60 s with no network.import ctrlrunimports no module from an extra — T30 asserts it in a subprocess, and it also excludessslandctrlrun.acs.CLAIMS.md.mypy --strict src/andruff checkpass.No mutation table for this PR: it changes documentation, a version string and no behaviour. The suite is unchanged at 1269.