v0.6.0
The frame grows up: a movable divider, a resizable panel, a bird in the
menu bar. And tests for the wiring.
Added
- The divider moves. cmd+[ and cmd+] in the frame, alt+left and
alt+right in a terminal, give the preview or the list 5% more, and the
width is remembered in~/.config/swoop/config, the launcher's own
settings file: onekey = valueper line. - The panel resizes. Drag any edge of the frame; the size is kept in
shell-mac.jsonbeside the font size, and can be typed there too. - A handle on the edge. Bring the mouse near an edge of the panel
and a short bar appears there, a small mark near a corner: the edges
drag. Nothing shows anywhere else. - A bird in the menu bar. Open swoop, Settings, Quit. The one visible
sign the frame is running. - Two end-to-end tests.
scripts/launcher-testdrives the launcher
through a pseudo-terminal: filter, a view and back, the action menu,
Ask AI with a fake model, the divider keys, Enter on a row.
scripts/launchd-testruns the installer's launchd steps against a
fake launchctl and checks the order that keeps a stray watcher from
winning.make e2eandmake test; CI runs both.
Changed
- swoop-ai is half the size. The AI transcript is rendered by
swoop's own markdown renderer on goldmark, in place of glamour, which
brought a code highlighter for every language along: 17.6 MB to
9.3 MB, and 6.4 MB in the release tarball, which is now built with
symbols stripped, as every tool in it is.
Fixed
- The launcher opens on Linux. The app lister answered "not
implemented" as an error there, andbin/swoopstopped before fzf
started. It now answers with no apps, and the extensions' rows show.
Found by the new launcher test on its first Linux run. make installunloads before it kills. A frame killed while its
launchd service was still loaded came back within a second, ran swoop,
and started a clipboard watcher outside launchd, which launchd's own
then gave way to. The installer now unloads both services, waits for
launchd to forget them, then stops what is left, then starts.