Skip to content

pi-dispatch v1.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Aug 08:54
· 336 commits to main since this release

pi-dispatch 1.0: the feature set is complete, the docs now walk all of it, and from here on breaking changes are majors.

Workflow extensions become first class

A trigger can now dispatch a slash command that a staged workflow extension registers. Put "command": "wf run nightly" in triggers.json instead of a flow, and the job's whole prompt is that /wf line. The runner verifies the command is registered before any model call, so a typo costs a refusal, not a paid turn. This works on every trigger kind: cron, label, comment, and pull request.

Commands are never AI reachable. Job chaining and the dispatch_run tool refuse them outright, so only the reviewed triggers file can start one. The job image must declare the commands capability, and the worker refuses before spending when it does not.

No more silent no-op flows

A flow name that resolves in no skill tier used to run to a clean exit 0 with nothing done. Now every advisory layer answers:

  • doctor prints one line per trigger flow naming the tier that resolves it (the repo at HEAD, an injected run.skillsDir, the overlay, or a staged package), and warns when a flow resolves nowhere it can see.
  • The runner logs a loud flow_not_loaded line inside the container for the same case.
  • The insights topology resolves flows across all four tiers: a flow that lives in the overlay or a staged package draws its edge to that tier's node instead of a false red "missing" pin. Where a tier cannot be checked from your session, the claim softens to an amber "not at HEAD" state instead of guessing. Command triggers render as their /name.

Docs and screenshots

  • docs/graph.md gained a worked example: a complete triggers.json and pi-packages.json walked node by node, and the screenshot beside it renders exactly that deployment.
  • docs/workflows.md shows complete run.command trigger objects and documents that a command trigger refuses resume. docs/insights.md gained a whatif walk-through with sample output.
  • All four screenshots are regenerated from the shipped renderers. The runs table finally shows the REPLICA column it had been missing.

Upgrade

  • Rebuild or repull the job image (ghcr.io/edgehero/pi-job): the in-container runner changed, and a stale runner hands a command trigger's /name line to the model as prose.
  • Update the console with pi install npm:@edgehero/pi-dispatch-admin. Worker and receiver 1.0.0 publish together, and the setup wizard installs the matching pins.

Self hosted, MIT. Needs Docker, Node 22.19 or newer, and a provider API key. Issues #188 and #189 carry the design detail.

Full changelog: v0.11.0...v1.0.0