You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(workflow): show the plan before a Dynamic Workflow runs
Manual mode approved every DynamicWorkflow call outright. That policy sat
below auto- and yolo-approve, so it only ever fired in manual mode — the one
mode whose purpose is to ask was the one mode that never saw what it was
agreeing to. Removing it lets the call reach the ask, and the approval now
carries the fan-out: subagent count, task list, prompt template, worker model,
and the summed size of the prompts about to be sent.
The token figure is the real summed prompt estimate rather than a projected
total cost. A guessed multiplier in an approval dialog is worse than no number,
because the operator would be approving against a figure that could be an order
of magnitude out.
"Approve for this session" is keyed on the workflow description, so agreeing to
one small review no longer pre-approves a later 128-agent fan-out. The rule
ships with its matcher: an arg-bearing approval rule with no `matchesRule`
never matches, which would record the grant and then ignore it every time.
Also adds `/workflow save <name>`, which writes the last run out as a skill
bundle under `.pythinker-code/skills/` so a fan-out that worked can be re-run
by name. Names are validated rather than merely lowercased — `normalizeSkillName`
is not a sanitizer, and feeding it straight to `path.join` let `../../..` place
the file anywhere on disk.
0 commit comments