| Age | Commit message (Collapse) | Author | Files | Lines |
|
QSettings in state.conf next to config.toml, saved on close: every table
header (widths, sort column) and splitter of the tabs, and the window
geometry. Tests point it at a temp file, never the user's own.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Tabs are permanent and load on first show. The ribbon shows the current
tab's actions in workflow order, a small ribbon under it the view
controls; inapplicable actions are disabled with the reason as tooltip.
Starting a job stays on the tab; the Jobs tab reads (running), then shows
the end status. When a preview this session started ends, its log opens
with Run it (publish box) or Apply shadowing; Not now loses nothing, Run
it in Jobs reopens it. New hint moves to the Packages ribbon and acts on
the ticked packages without a hint.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Rows with only a stanza have no hint and are skipped. The deletes open
the same dialog as a hint job: each removed hint's diff and Revert, which
had no place in the GUI before.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Check upstream fills the upstream column and ticks the outdated hints,
Update selected starts hint-update, Delete hint acts on the VM. When a
hint job ends its SBB-RESULT opens a dialog with each changed hint's
diff, Revert per package (once) and Build these. The Packages detail
pane gets New hint and Open in Hints.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
sbb-remote 0.4.0: results lists slackrepo's last attempt per package
(newest first, with built version and whether a log dir exists), and
build-log returns the end of a package's build.log (512 KB) plus its
resource.log, accepting only category/pkg paths. Result counts skip
the legacy buildresults rows keyed by package file name: the 213
"bad" on the Dashboard matched no package.
GUI: a Results tab (chips per result, table sorted by attempt time,
detail pane, log viewer window that keeps the failure at the end),
opened from the ribbon or by clicking a result in the Dashboard bar or
legend, filtered to it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The Open menu becomes a toolbar ribbon (icon over label: Dashboard,
Packages, Jobs) using the desktop icon theme with Qt fallbacks. Tabs
are centered with a bordered, rounded shape, the selected one filled
with the highlight color and joined to a highlight line over the pane,
so the bar reads as its own control. Colors come from the palette.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
QTabWidget's built-in binding only works with focus on the tab bar,
and the table views take page keys. Window-level shortcuts, wrapping.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Packages tab over the helper inventory: query bar with cat:/maint:/
req:/status: prefixes, overlay and status chips, check column, and a
detail pane with versions, dependencies after hints and a structured
read-only view of the hint (hints.py mirrors slackrepo's parser).
Actions start slackrepo previews; the Jobs tab offers Run it with a
publish box (default from [builds] publish), asking for the signing
key passphrase first when the key is locked. Status bar shows the key
state; Dashboard tiles open their tabs; inventory reloads after
slackrepo and publish jobs.
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>
|