- PROJECT_GUIDE: repository table with forgejo as source of truth and
spearzificial as the active GitHub account; explains that the oiupoyt
GitHub token is expired and why the username is pinned in the remote URL
so Git picks the right credential from the multi-account store
- PROJECT_GUIDE: document ShowOverlay and the retired-config table with the
reason each key existed without effect
- README: point releases, clone URL and CLI examples at the unified binary
and the spearzificial repository
- TODO_CHECKLIST: add the release pipeline, dead config, ShowOverlay and
e2e socket entries; note that pre-v0.2.18 src/bin paths are historical
ShowOverlay was declared in the Command enum but the daemon dispatcher had
no arm for it, so it fell through to `_ => {}`. Nothing could open the HUD
once it was closed except the --menu toggle path.
- daemon: spawn_overlay_once() checks the overlay pid file for a live
process and launches `scythe --menu` only when none is running, so
repeated requests cannot stack overlays
- cli: `scythe --show-overlay` sends the command, falling back to a direct
launch when the daemon is unreachable
Fourteen config keys were persisted and shown in the settings UI while no
capture, encoder, muxer or daemon path ever read them. Removed from
ScytheConfig, from the overlay state, and from their UI panels:
capture_source, replay_storage, change_resolution, resolution_w/h,
container_format, show_scroll_lock_led, autostart_on_game,
save_folder_by_game, name_by_game, language, ui_color_theme, record_enabled.
Unknown JSON keys are ignored by serde, so existing configs still load.
The e2e script also unlinked a live daemon's socket: it ran rm -f on the
socket path unconditionally and only stopped the systemd unit, so a daemon
started by execs.lua or by hand kept its flock while losing its path entry,
leaving the session broken until the process died. It now sends StopDaemon,
waits for the socket to disappear, and aborts without unlinking if the
daemon will not stop.
The multicall consolidation removed the scythe-daemon and scythe-ui crate
targets, but every packaging path still copied them, so a tag push failed
at the first packaging step and no release could be produced.
- release.yml: tarball, .deb and AppImage ship scythe plus daemon/ui/vrec
symlinks; AppRun execs scythe; Windows bundle copies scythe.exe only
- gitlab-ci.yml: artifacts publish target/release/scythe; Windows job
builds --bin scythe
- rpm spec and flatpak manifest install one binary and link the aliases
- NSIS installers target scythe.exe for shortcuts, finish page,
DisplayIcon and forwarded args, keeping legacy taskkill lines so old
installs shut down cleanly
Also make the gitlab fmt job advisory: it reported drift across 20 files
and build-linux hard-depended on it, blocking every build. A whole-tree
reformat belongs in its own commit.