Skip to content

v0.14.0

This release makes action and workflow inputs and outputs machine-readable, and completes the public rename from tactics to actions.

Bundled actions and workflows now declare validated I/O contracts. input_schema and output_schema support a JSON-Schema subset with types, required properties, additional-property rules, enums, constants, and length/item constraints. Contracts are validated when the registry loads, inputs are checked before any step or subprocess runs, and outputs are checked after runs, plans, or --apply. ayx actions describe and ayx actions workflows explain expose the effective schema and whether it was declared or inferred. Legacy custom entries without schemas continue to use permissive placeholder-based inference.

ayx mongo mutate --apply and ayx mongo undo --apply now execute bounded named templates. Applying requires --accept-mutation-risk, a current successful backup audit artifact, a preview approval artifact, and the matching --approve <sha256:digest>, together with --apply; every attempt writes a redacted audit artifact. Undo uses guarded recorded post-mutation values and refuses a batch if any affected document has drifted.

ayx workflows moved to ayx actions workflows, and ayx workflow moved to ayx designer workflow. There are no compatibility aliases.

ayx tactics is now ayx actions, and the tactic noun is now action throughout. This breaks three contracts at once:

  • Agent-facing JSON keys change from tactics/tactic_id/tactic_count to actions/action_id/action_count, with corresponding resolved and missing keys renamed.
  • Registry files must use *.action.yaml or *.action.yml under actions/; old *.tactic.yaml files are skipped and must be renamed.
  • Composition YAML changes kind: tactic to kind: action, the workflow list key changes from tactics: to actions:, and the registry schema version changes from 1 to 2.

There is no dual-read or back-compat alias. Update custom registry files and any scripts or JSON consumers before upgrading.

  • ayx catalog list is now derived from the live clap command tree, defaults to --scope all, and reports unclassified metadata honestly while preserving curated metadata.
  • The email-OTP login flow retries safe transient requests, permits local OTP/password retries, and avoids duplicating side effects on ambiguous failures.