Skip to content

TUI: show agf v<version> on the footer's far left #40

Closed

Description

@subinium

Proposal

Show the running agf version on the far left of the footer in the main TUI screens (Browse, GroupedBrowse, Preview, Help, etc.), e.g.:

agf v0.11.0  · ↑↓ nav · Tab agent · [/] summary · → detail · Enter select · ^S sort · ^G group · ^D delete · ? help · Esc quit

Why

  • After upgrading (cargo install --force / brew upgrade subinium/tap/agf), users currently have to run agf --version separately to confirm which version they're actually on. With the binary pulled from a wrapper shell function and three possible install paths (cargo, Homebrew, prebuilt), this comes up more than expected.
  • It's a useful "I just shipped this" sanity check for maintainers while dogfooding — exactly the situation that surfaced the v0.11.0 cache-stale bug (#37) where the binary said one thing and the cache said another. A visible version pinned to the rendered TUI makes "is this the new build or the old build?" a glance, not a side-quest.
  • Cheap real estate. The footer's leftmost cell is currently empty padding before the help line.

Sketch

Cargo.toml already exposes the version as env!("CARGO_PKG_VERSION") at compile time, so no runtime cost:

const VERSION_LABEL: &str = concat!("agf v", env!("CARGO_PKG_VERSION"));

// in the footer row builder (e.g. inside ui_browse / ui_grouped_browse / etc.):
let _ = ui.container().pl(1).row(|ui| {
    ui.text(VERSION_LABEL).fg(GRAY_500);
    ui.text(" · ").fg(SEPARATOR);
    let _ = ui.help_colored(&[
        ("↑↓", "nav"), ("Tab", "agent"), ("[/]", "summary"),
        ("→", "detail"), ("Enter", "select"),
        ("^S", "sort"), ("^G", "group"), ("^D", "delete"),
        ("?", "help"), ("Esc", "quit"),
    ], GRAY_500, SEPARATOR);
});

Same treatment in the other top-level mode footers. For sub-mode footers (DeleteConfirm, ResumeSelect, etc.) it's optional — those screens are short-lived and the version is already visible on the screen they came from.

Style notes

  • Color: dim (e.g. GRAY_500, same as the help text), not bold — informational, not a CTA.
  • Format: agf v0.11.0 (one space after the program name, lowercase v, dot before separator). Keeps it readable next to the keybinding spans.
  • Width: ~12 chars. Doesn't fight the help line for room on any terminal that already fits the existing footer.

Out of scope

  • Showing the build profile (release/debug), git sha, etc. — clutter for a normal CLI user.
  • Making it clickable / linking to GitHub release. Not a thing in this TUI lib.

Severity

Feature request, low priority. Pure quality-of-life.

Activity

  1. subinium commented on May 4, 2026

    @subinium
    OwnerAuthor

    Fixed in #42 (v0.11.1). Footer now shows agf v<version> on the leftmost cell of every mode's status bar via a single render_footer helper that replaces the 9 ad-hoc layouts. Version is read from CARGO_PKG_VERSION at compile time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions