Skip to content

v0.7.0 — /workflows MVP (reusable agent workflow templates)

Latest

Choose a tag to compare

@wwppee wwppee released this 16 Jul 18:00

v0.7.0 — /workflows MVP (reusable agent workflow templates)

First release of the workflow concept that replaces v0.4's
L1/L2/L3/L4 capability layers. The biggest product pivot
since v0.4: instead of "absorb an npm package and file it
under L1 or L2", the user now composes sequences of
LLM-powered steps
in a visual editor. Each step holds its
own model config (provider + model + key ref + system
prompt + tools), edges describe the data flow, and the
user can save the result as a reusable template.

This is a major version bump because the product
position changed, even though no field on a /compose
connection changed.

What you can do

  • Open /workflows and see every saved workflow as a
    card (name, description, step count, connection count,
    updated time).
  • Click + New workflow, type a kebab-case id
    (e.g. research-and-test), hit Enter → empty editor
    opens, ready to add steps.
  • Each step has its own form: name, model (provider +
    model name), system prompt, input template, output var,
    tools, on-failure strategy (stop / skip / retry /
    escalate).
  • Connect steps with edges (each step's "Connect to…"
    button opens a dropdown of the other steps). The SVG
    preview on the right shows the data flow live.
  • Auto-layout button writes back a BFS-computed
    layout to each node's position so the preview
    survives reload.
  • Save is disabled until you change something; the
    status text shows "Saved at {time}" or "•" (unsaved).
  • Duplicate loads + saves under a new id; the new
    editor opens on the copy.
  • Delete with a confirm dialog.

What you CAN'T do yet (v0.7.1+)

  • Drag-and-drop on the SVG preview. The form is the only
    way to edit a step today.
  • Run the workflow. The runtime (drive a pi session
    through the node sequence) is v0.7.3.
  • Field-level data mapping on edges. Today the whole
    outputVar is bound.

Files

Area Files
Data model web/src/lib/types.ts (+5 types)
Server core src/core/workflow.ts (new, ~250 lines)
Service + API src/core/service.ts, service-impl.ts, server.ts
Browser API web/src/lib/pilot-browser.ts, pilot.ts
List page web/src/app/workflows/page.tsx, WorkflowListView.tsx
Editor web/src/app/workflows/[id]/page.tsx, WorkflowEditor.tsx
Styles web/src/app/workflows/workflow.css
i18n web/src/lib/i18n/{types,dict.en,dict.zh}.ts
Nav web/src/components/NavLinks.tsx (1 new entry)
Tests test/unit/workflow.test.ts (9), web/tests/workflow-layout.test.ts (7)

How to try

cd ~/path/to/pilot
git pull origin main
git checkout v0.7.0
pilot dashboard
# open http://localhost:<port>/workflows
# click "+ New workflow" → type "research-and-test" → Enter
# editor opens, click "+ Add step" a few times, fill in model + prompt
# click "Connect to…" on each step to chain them
# click "Auto-layout" to tidy the preview
# click "Save"
# close the editor, go back to /workflows, your workflow is there

Stats

  • root: 622/622 ✓ (+9 in workflow.test.ts)
  • web: 245/245 ✓ (+7 in workflow-layout.test.ts)
  • i18n: 0 placeholder mismatches across 1015 shared keys
  • format:check root + web: ✓
  • lint: ✓
  • tsc: ✓
  • production build: not run (UI / CRUD only)