| Age | Commit message (Collapse) | Author | Files | Lines |
|
Closing the tab killed the job-follow process, whose finished signal
arrived after the tab was deleted; the slot touched dead widgets and
PyQt6 aborted the whole application on the unhandled exception. stop()
now disconnects the process before killing it. A sys.excepthook logs
any future slot exception to stderr instead of aborting.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
All VM access goes through remote.py (ssh with a shared ControlMaster,
local virsh). The main window polls jobs, backs off while ssh is down,
checks the libvirt domain and offers Start or Resume, and sends
freedesktop notifications when a job ends or the VM comes up. The Jobs
tab streams a job's log with job-follow and resumes at the last offset
after a drop. Config is TOML, validated against built-in defaults.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Single-file stdlib helper the GUI runs over ssh. JSON commands for
version, stats and jobs; job-start runs a fixed table of kinds (sbpull,
sbshadow, each requiring --yes or --no) detached with setsid and no
stdin, one at a time under a flock; job-follow streams a log from a
byte offset so the GUI can drop and resume; job-kill sends SIGTERM to
the job's process group. A job whose runner died is reported lost.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The plan embeds code that was run in a scratch copy before writing it
down (38 tests, helper stats against the real VM data). Drafting it
settled a few details now reflected in the spec: version also returns
the overlays, an upstream_branch helper key, a shared fmt module and a
launcher, follow resuming on the next jobs poll instead of its own
backoff, and sbpull returning sbshadow's exit status.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Desktop PyQt6 GUI plus a stdlib Python helper on the build VM, to drive
slackrepo, mkhint and the overlay sync tools from one interface, with
detachable jobs. This commit carries the repo docs and the approved
phase 1 (core) design spec.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|