Controlled Releases
The release registry turns an approved artifact into the only artifact production is allowed to run.
registry.json is an append-only, hash-chained event log. Release state is
derived from its events:
propose -> draft -> approve -> approved -> publish -> published -> retirePropose
Section titled “Propose”devlish release propose pricing_tier.dvl --author andrewProposal compiles the rule, runs its golden cases, and records both the artifact hash and evidence hash. A failing rule cannot enter the registry.
Approve and publish
Section titled “Approve and publish”devlish release approve pricing.tier@1.0.0 --approver danadevlish release publish pricing.tier@1.0.0The recorded author cannot approve their own release. Only approved versions can be published, and published effective windows for one rule identifier cannot overlap.
Refuse unapproved artifacts at runtime
Section titled “Refuse unapproved artifacts at runtime”devlish run pricing_tier.dvl \ --governed registry.json \ --input '{"amount": 150}'--governed recompiles the source and refuses it unless that exact artifact
hash is currently published. A modified source file has a different hash and
does not run.
Inspect, retire, and roll back
Section titled “Inspect, retire, and roll back”devlish release listdevlish release verifydevlish release retire pricing.tier@2.0.0devlish release publish pricing.tier@1.0.0Rollback publishes a previously approved artifact as a new event. Registry history is not deleted.
--governed currently applies to native run execution. MCP and REPL
execution do not consult the release registry yet.