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
/workflowsand 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'spositionso 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
outputVaris 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 thereStats
- 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)