---
title: "0.15.1"
description: "Patch release with workflow renames, data-flow fixes, a type inference"
---

Patch release with workflow renames, data-flow fixes, a type inference
improvement, and a schema-retry bug fix.

---

## Breaking changes

- **`implement` is now the base validation-loop workflow.** The old
  `ticket-implement` workflow has been renamed to `implement`. It runs a
  straight `ValidationLoop` (implement → validate → review, up to 3
  iterations) with no research or planning phases.

- **`research-plan-implement` replaces the old `implement`.** The full
  research → plan → implement pipeline is now called
  `research-plan-implement`. It feeds research findings into the plan task and
  the plan into the implementation task, just like the old `implement` did.
  A new `tdd` boolean input flag forces the planner to write tests first.

- **`test-first` removed.** Use `research-plan-implement` with `tdd: true`
  instead.

- **`ticket-kanban` renamed to `kanban`.** Same workflow, shorter name.

---

## Fixes

- **`research-plan-implement` passes 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-implement` uses a validation loop.** The review step is
  now a full `ValidationLoop` (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`.** `legacyExecuteTask`
  schema-retry attempts now execute inside `runWithToolContext`, matching the
  primary attempt. Previously the retry called `agent.generate()` outside the
  tool context, so `getToolContext()` returned `undefined` and `maxOutputBytes`
  silently fell back to the 200 KB default, causing truncation and repeated
  validation failures for tasks with large tool outputs.
  ([#123](https://github.com/codeplaneapp/smithers/issues/123))

- **`SmithersCtx.input` infers the correct type.** When the input schema slot
  is a `ZodTypeAny`, `ctx.input` now resolves to `z.infer<T>` instead of the
  raw Zod type. Fixes incorrect autocompletion and type errors in workflow
  callbacks.

- **`tickets-create` JSX text fix.** Replaced a template-literal string child
  with proper JSX text interpolation.

- **Seeded `audit` and `feature-enum` workflows now use grouped feature arrays.**
  The workflow-pack schemas emitted by `bunx smithers-orchestrator init` now use
  `Record<string, string[]>` for grouped feature inputs, matching the shared
  `ForEachFeature` and `FeatureEnum` components and fixing seeded TS2322
  assignment errors.

- **Workflows consistently use `.mdx` prompt files.** Inline prompt strings in
  `kanban`, `tickets-create`, `sync-features`, `sweep`, and `audit`
  workflows (and the `ForEachFeature` component) have been extracted to
  `.smithers/prompts/*.mdx` files. All workflow tasks now import and render
  prompt templates instead of embedding raw strings, matching the pattern
  already used by `research-plan-implement`, `plan`, `research`, and
  `ValidationLoop`. The `bunx smithers-orchestrator init` codegen has been updated to emit the
  new `.mdx` files and reference them in the generated workflows and
  components.

- **Replace deprecated `.passthrough()` with `z.looseObject()`.** All Zod
  schemas that used `.passthrough()` now use `z.looseObject()` (Zod v4) or
  `.catchall(z.unknown())` (v3 compat layer). The `bunx smithers-orchestrator init` scaffold
  templates in `workflow-pack.ts` were 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 `smithers` reference in the gateway page.
- Regenerated `docs/llms-full.txt` with internal cross-links to match the
  current docs manifest.
