release: 1.0.0, and record the details pane's width coupling

The 0.16.0 release was never tagged or pushed, so what it described ships
as 1.0.0 instead: the changelog section is renamed rather than followed by
an empty one, and there is no 0.16.0 for anyone to have seen.

The last remainder of the layout review's F9 goes in with it. The value
column in captionValueLayout has no minimum of its own — it takes whatever
the container leaves after the caption — and what actually keeps it
readable is the 460 px minimum on commandOutputScroll, a constant that
exists for command output being legible. The dependency was invisible at
both ends; both now state it, so lowering that width is a decision rather
than an accident. The HSplit divider is the user's side of the same thing:
it is how the value column can be widened.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mixeme
2026-07-27 17:15:19 +03:00
parent c5f300b670
commit bde9a2e33e
4 changed files with 15 additions and 2 deletions
+1 -1
View File
@@ -3,4 +3,4 @@ package app
// Version is the application version shown in the GUI and used by build
// scripts in artifact names. It is a var rather than a const so release builds
// can override it with Go ldflags when CI tags a build.
var Version = "0.16.0"
var Version = "1.0.0"
+6
View File
@@ -60,6 +60,12 @@ func newDetailsPanel(firstJob job, rt *domain.JobRuntime, globalOverlapPolicy do
// The height here is only a floor: the scroll grows to fill whatever space the
// border layout gives it, so keep the minimum small so the whole window can be
// shrunk on short (720p) screens. Long output stays reachable by scrolling.
// The width, unlike the height, is load-bearing outside this widget: it is the
// details pane's widest minimum, so it is also what keeps the metadata value
// column non-empty — captionValueLayout hands the value whatever is left after
// the caption and has no floor of its own (see its comment in layout.go).
// Lowering it narrows those values with nothing to warn about it; the user can
// only widen them, by dragging the jobs split divider left.
d.commandOutputScroll.SetMinSize(fyne.NewSize(460, 70))
d.logs = widget.NewList(
func() int { return len(d.selectedLogs) },
+7
View File
@@ -113,6 +113,13 @@ func (l fixedHeightLayout) Layout(objects []fyne.CanvasObject, size fyne.Size) {
// stops it from growing with the window (as an even two-column grid would), so
// the extra space a wider window provides goes entirely to the value column. It
// expects exactly two children: caption first, value second.
//
// The value column has no minimum of its own: it gets whatever the container's
// width leaves, down to zero. What keeps it readable in the details pane is the
// 460 px minimum on commandOutputScroll (jobs_view_details.go), which is that
// pane's widest minimum and therefore its floor — a constant that exists for an
// unrelated reason. A new caller that gives this layout less width gets a value
// column that silently renders narrow or empty rather than one that clips.
type captionValueLayout struct {
captionWidth float32
}