You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Settings, credentials, and profile files are synced to disk when Bake saves them. On some filesystems, a crash or power loss right after a save could leave settings.yaml or .credentials.yaml empty, which Bake then read as no settings or no saved logins, and the next save made the loss permanent. A save now reaches the disk before it replaces the old file, so a crash leaves either the old or the new file whole.
bake --help, a mistyped option such as bake tui --bogus, and Ctrl+C or SIGTERM in the first moments of a launch end in about 0.4 s instead of about 5.3 s. Shutdown waited for a configuration reload that could start only once the terminal was up, and the terminal runner waited for its own teardown, so each of these exits lasted until the launcher's 5-second forced exit. Startup also no longer reapplies the cordis.patch.yml files it has just loaded.
An unhandled promise rejection after startup no longer ends the session with status 1. Bake appends the error's name, message, and stack to an owner-only rejections.<stamp>.<pid>.jsonl file under <Bake home>/diagnostics/ and logs it. The terminal shows Internal error: <error> · the session continues · details in <file> on its notice line, and dsh headless writes one dsh: warning: line to stderr. Each distinct error is shown once, and at most five a minute. A rejection during shutdown is recorded the same way and leaves the exit status alone. During startup an unhandled rejection still fails the launch, and an uncaught exception is still fatal at any time.
bake update checks that a downloaded release launches before switching to it. Instead of only asking the new command for its version, it runs the release's own --self-check, which loads the shipped tui and headless profiles, the agent presets' plugins, and the terminal's runner modules as a launch does, in a private temporary home it removes afterwards, with no TTY, network, or model key, within 60 seconds. A release that would not start, as Bake 0.3.5 on Windows did, is refused, and the message after the current install is unchanged: now names what failed to load. release:pack runs the same check on every archive before it ships.
bake update --rollback returns the install to the newest release still installed that is older than the current one: right after an update, the release it replaced. It takes the update's lock, runs the same launch check on that release, says which versions it moved between, and leaves current where it was on any failure; with no older release installed it says there is nothing to roll back to and exits 1.
The input caret is a reverse-video cell over the character it stands before, instead of a ▌ inserted into the text, so moving it with ←/→ no longer shifts every character after it by a column. It keeps its reverse video under NO_COLOR, as do selected rows, since reverse video is not colour. The sign-in, question, and picker fields draw it the same way.
The input edits by word and line, as readline and pi do: Ctrl+←/→, Alt+←/→, and Alt+B/F move a word, stopping at the dots and slashes of a path; Ctrl+W and Alt+Backspace delete the word before the caret and Alt+D the word after it; Ctrl+U and Ctrl+K delete to the line's start and end; Ctrl+Y pastes back what they deleted and Alt+Y then swaps in an earlier deletion; Ctrl+- (or Ctrl+_ or Ctrl+/) undoes, a whole word at a time. Ctrl+B/F move a character and Ctrl+D deletes forward. A masked sign-in field moves and deletes its whole line at once, so word steps reveal nothing about a secret, and an image placeholder deleted this way unstages its image as Backspace does.
Home and End in a wrapped draft go to the start or end of the row the caret is on, and pressed again to the start or end of the line; Ctrl+A and Ctrl+E still go to the line's directly. In fullscreen, clicking the draft puts the caret there.
Fullscreen (--screen fullscreen) jumps between turns: Ctrl+↑/↓, or Ctrl+Shift+↑/↓ where the system takes Ctrl+↑, brings the previous or next prompt you sent to the top of the transcript. Past the first prompt it reaches the beginning, and past the last it follows output again. The hint row above the input names the keys.
Fullscreen PgUp/PgDn move a page less four rows of overlap instead of half a page. A mouse-wheel notch on its own scrolls one row instead of three, a fast spin up to six rows a notch, and Alt five times as far. A local macOS terminal, which accelerates the wheel itself, scrolls one row a report.
Fullscreen turns the terminal's autowrap off while it holds the screen, so a row the terminal draws wider than Bake measured, such as one with a character whose width they disagree on, is clipped at the right edge instead of pushing every row below it down and scrolling the screen. Leaving fullscreen, or handing the terminal to an external editor, turns autowrap back on.