v0.2.8
Smith v0.2.8
Smith 0.2.8 makes /undo reach the edits Smith made itself, keeps wide
characters on the screen and in the clipboard, and turns cache-miss
notices on by default.
Added: the plugin can discover which profiles exist
The plugin documented --profile without ever saying what a profile is
or where to find one, so Claude had to read ~/.smith/config.toml to
answer "which profiles can I use" — a file that can carry plaintext
api_key values. scripts/smith-profiles answers it instead: one local
read, no API call, resolving extends chains, marking the default, and
printing provider, model, posture, reasoning effort, and description per
profile, with --json for machine use. It reads only [profiles.*] and
never emits a [providers.*] table. The /smith:profiles command
injects the table inline, and the smith-profiles skill teaches the rule
the approval policy cannot express: posture outranks --approval,
because a plan or review profile never registers edit or shell
at all.
Changed: /undo recovers Smith's own edits in a mixed turn
A turn that mixed an exact Smith edit with an ambiguous shell delta used
to block automatic undo entirely, even though the exact half carried both
images and could be reversed with a checked write. /undo now targets
any not-yet-undone turn with at least one exact mutation: it reverses
those images after their per-path post-image checks, names the
unattributable tools in the preview, and leaves every path it cannot
attribute untouched. Turns with nothing but ambiguous deltas still refuse
and point at /diff and /revert, and /redo covers exactly what such
an undo reversed. The timeline labels a mixed turn mixed, and /status
plus the turn-complete notice say how far the automatic undo reaches.
Fixed: wide characters wrap and copy faithfully
Ratatui's word wrapper measures a pending word before adding the
grapheme that overflows it, so an unbroken run — every Chinese, Japanese,
or Korean sentence — could produce a row one column wider than the area,
and the last glyph silently disappeared past the right edge. Smith wraps
its own lines now, with the same rules for prose plus glyph-boundary
breaks for a word wider than the area, and the cursor follows the text
onto the wrapped row. Copying and highlighting snap to whole glyphs, so a
drag that stops on the second cell of a double-width character still
takes the character, and a copied line of Chinese no longer carries a
space after every character. A setup preview longer than its byte budget
also used to cut inside a multi-byte character and crash the TUI; the cut
lands on a character boundary now.
Changed: cache-miss notices are on by default
A significant cache miss is money already spent, and only the local
surface can say so while the user can still act on it, so the built-in
default for cache.miss_notices flips to true. The setting stays
presentation-only — provider requests, cache state, machine events, and
usage accounting are identical either way — and disabling it in a file,
profile, or run works exactly as before:
[cache]
miss_notices = falseUpgrading
Existing configuration, sessions, and protected checkpoints remain
compatible. The pinned Agent Runtime revision is unchanged from 0.2.7.
The one visible default change is cache-miss notices, shown above how to
turn off; /undo in a mixed turn now asks the same explicit confirmation
but reverses only the edits Smith made itself and names the rest.
Full Changelog: v0.2.7...v0.2.8