Skip to content

v0.3.54 — A step is saved only if it can run

Choose a tag to compare

@github-actions github-actions released this 24 Sep 15:00
· 195 commits to main since this release

Upgrading from 0.3.53:

  • Rebuild and recreate the app container (docker compose up -d --build alexclaw-prod). No configuration or database change.
  • Step configs are checked when a step is saved and when a workflow is imported. Refused: an unknown key, a value of the wrong type, a missing required field, a skill that does not exist, and a skill that is not configured on this instance. Keys starting with _ are reserved for the runtime and cannot be saved. An import that breaks the contract is refused naming the problem, and creates nothing.
  • A workflow's schedule must be a valid cron expression (five fields, or a shortcut such as @daily); anything else is refused when the workflow is saved.
  • Steps saved before this release are not rewritten. One that breaks the contract fails its run at that step, naming the step and the field, instead of running on what it has.
  • Uploaded dynamic skills used in steps with config need re-uploading with config_schema/0 before upgrading. Until they are, those steps fail at run, naming the fields their skill does not declare.
  • Dynamic skills declare their config fields with config_schema/0. A dynamic skill that declares none can be used only in steps without config (the executor's own options — timeout_ms, on_circuit_open, fallback_skill, on_missing_skill — are accepted for every skill).

Changes

  • Every core skill declares its config fields and their types (config_schema/0); rules across fields are declared by validate_config/1 (api_request: a url, or a path with an assigned api resource).
  • Skills that need something configured say whether they can run (available?/0, or available?/1 when the step's own config can make them usable): web_automation, telegram_notify (the main bot, or the step's own bot_token and chat_id), discord_notify, github_security_review, google_calendar, google_tasks.
  • Presets and scaffolds offer only keys their skill accepts: web_automation no longer offers resource, which it never read, and github's "Specific PR" preset no longer holds an empty pr_number.
  • receive_from_workflow no longer declares _source_node; the executor sets it for a run that a remote node started.
  • Skill load, unload and reload start only from the Admin UI, as they already did; the documentation said the Telegram/Discord /skill commands could do it, and the unreachable code behind those commands is removed. The notices sent when a skill's file changed since it was approved, or when a skill did not load, now point to the Skills page of the Admin UI.
  • A test pins the boot check that loads a dynamic skill only if its file still matches the one approved.