0.15.1
Patch release with workflow renames, data-flow fixes, a type inference improvement, and a schema-retry bug fix.Breaking changes
-
implementis now the base validation-loop workflow — The oldticket-implementworkflow has been renamed toimplement. It runs a straightValidationLoop(implement → validate → review, up to 3 iterations) with no research or planning phases. -
research-plan-implementreplaces the oldimplement— The full research → plan → implement pipeline is now calledresearch-plan-implement. It feeds research findings into the plan task and the plan into the implementation task, just like the oldimplementdid. A newtddboolean input flag forces the planner to write tests first. -
test-firstremoved — Useresearch-plan-implementwithtdd: trueinstead. -
ticket-kanbanrenamed tokanban— Same workflow, shorter name.
Fixes
-
research-plan-implementpasses context between stages — Research findings feed into the plan task and both feed into the implementation task. Previously each stage received only the raw user prompt, discarding earlier work. -
research-plan-implementuses a validation loop — The review step is now a fullValidationLoop(implement → validate → review, up to 3 iterations) instead of a single-shot review pass. Validation failures and reviewer rejections are fed back as actionable context on the next iteration. -
Schema retry propagates
--max-output-bytes—legacyExecuteTaskschema-retry attempts now execute insiderunWithToolContext, matching the primary attempt. Previously the retry calledagent.generate()outside the tool context, sogetToolContext()returnedundefinedandmaxOutputBytessilently fell back to the 200 KB default — causing truncation and repeated validation failures for tasks with large tool outputs. (#123) -
SmithersCtx.inputinfers the correct type — When the input schema slot is aZodTypeAny,ctx.inputnow resolves toz.infer<T>instead of the raw Zod type. Fixes incorrect autocompletion and type errors in workflow callbacks. -
tickets-createJSX text fix — Replaced a template-literal string child with proper JSX text interpolation. -
Seeded
auditandfeature-enumworkflows now use grouped feature arrays — The workflow-pack schemas emitted bysmithers initnow useRecord<string, string[]>for grouped feature inputs, matching the sharedForEachFeatureandFeatureEnumcomponents and fixing seeded TS2322 assignment errors. -
Workflows consistently use
.mdxprompt files — Inline prompt strings inkanban,tickets-create,sync-features,sweep, andauditworkflows (and theForEachFeaturecomponent) have been extracted to.smithers/prompts/*.mdxfiles. All workflow tasks now import and render prompt templates instead of embedding raw strings, matching the pattern already used byresearch-plan-implement,plan,research, andValidationLoop. Thesmithers initcodegen has been updated to emit the new.mdxfiles and reference them in the generated workflows and components. -
Replace deprecated
.passthrough()withz.looseObject()— All Zod schemas that used.passthrough()now usez.looseObject()(Zod v4) or.catchall(z.unknown())(v3 compat layer). Thesmithers initscaffold templates inworkflow-pack.tswere updated to match..passthrough()was deprecated in Zod v4 in favour of explicit top-level constructors.
Docs
- Improved crosslinking and added external reference links across 36 documentation pages.
- Fixed CLI command examples to use
bunx smithers-orchestrator. - Fixed bare
smithersreference in the gateway page. - Regenerated
docs/llms-full.txtwith internal cross-links to match the current docs manifest.