Skip to main content
Smithers 0.25.4 is a focused patch driven by a post-publish smoke test of 0.25.3. It fixes backend resolution after a reverse migration, makes the Get Started first-run command work in every context, and raises the release smoke test to a zero-defect bar.

CLI and backends

After a reverse migration (bunx smithers-orchestrator migrate --to sqlite), a default bunx smithers-orchestrator ps or inspect no longer refuses with SMITHERS_BACKEND_CONFLICT. The reverse migration writes a migrated.json receipt naming sqlite as the authoritative store, but resolution previously honored only pglite and postgres receipts, so the kept source store still on disk looked like an unresolved second store. Resolution now honors a sqlite-target receipt and tolerates exactly the recorded migration source. Any OTHER populated store still refuses, so no run history is ever hidden.

Docs

The Get Started first-run step now leads with the plain bunx smithers-orchestrator workflow run hello, which works in every context: terminals, CI, devcontainers, cloud IDEs, and agent-driven runs. --interactive is documented as the optional live-status-card nicety for a real terminal, instead of being the primary command that exits with INTERACTIVE_REQUIRES_TTY outside a TTY.

Quality

The release smoke test now holds itself to a zero-defect bar: any issue it finds, even a minor one, a documentation inconsistency, an edge case, or something unrelated to the release, is a failure to fix with a patch release rather than something to downgrade or excuse. The only result it skips is a genuine limitation of the test machine itself, such as no coding agent installed or no model credentials. Backend resolution gains reverse-migration regression tests covering the positive resolve, a non-source leftover store, a sourceless receipt, an explicit-override guard, and an empty target with a populated source.

Migration notes

No breaking changes are identified in 0.25.4. All changes are additive bug fixes. If a default read command refused after a reverse migration in 0.25.3, it now resolves to the migrated sqlite store automatically.