- bonfire.Sanitize (additive), moved from diary's console channel: tab
kept, CR and LF to a space, every other control character dropped
- applied before styling to every error-block line (message,
explanation, Try lines, -v chain), process-view item names and errors,
the current item of spinner and progress, failure lines, and table
headers and cells in both layouts
- diary's console handler calls bonfire.Sanitize; README and the
writing-commands page say so (WR-05)
- the registered view keeps the console that started it; Println, Printf
and status lines go above it only from that console, other consoles
write to their own writers (bonfire.PrintAbove still reaches any view)
- runLive claims the single live slot by check and set under liveMu and
reports when it could not, so the widget prints plain lines
- unregister, finish and wait run deferred, so a panic in work leaves no
registration behind and still propagates (WR-02)
- each PrintAbove block is one bubbletea print message sent straight to
the program's queue under liveMu, so the event loop prints it in call
order instead of a command goroutine racing it back
- runLive unregisters, sends finishMsg and waits under liveMu, so a late
printer writes after the final frame and no line is lost
- TestPrintAboveOrderedNoLoss pins order and no loss for spinner,
progress, process and a printer racing the finish (CR-01)
- Spinner, gradient progress bar and the multi-row process view ported
from SSU to bubbletea v2 (input off, no signal handler, command
context); boxed tables through lipgloss/table
- Prompts use huh fields and a single-select port of SSU's selector with
its confirmation screen on an interactive terminal; line prompts off a
terminal and under --no-ansi are unchanged (piped passwords still work)
- -q hides decoration but keeps data and errors; -n returns defaults and
Secret fails with a hint on a terminal stdin; --no-ansi and non-TTY
runs print today's plain lines
- Helpers: GlobalsOf, VerbosityOf, IsQuiet, Interactive, ConfirmProceed,
Process, Current, Failed, PrintAbove, ItemProgress, ErrAborted
- diary's styled console lines print above a running live view