Skip to content

feat(ci): three-tier viewing with per-forge live tail#31

Merged
barrettruth merged 2 commits intomainfrom
feat/github-ci-terminal
Apr 3, 2026
Merged

feat(ci): three-tier viewing with per-forge live tail#31
barrettruth merged 2 commits intomainfrom
feat/github-ci-terminal

Conversation

@barrettruth
Copy link
Copy Markdown
Owner

@barrettruth barrettruth commented Apr 3, 2026

Problem

CI log viewing was a one-shot fetch into a parsed buffer with no live
updates. GitHub had no summary view showing job statuses at a glance.
Forges with real per-job live tailing (GitLab glab ci trace,
Codeberg tea --follow --job) weren't leveraging it.

Solution

Three-tier CI viewing: picker → summary → log.

  • GitHub: <cr> on a run opens a summary buffer (gh run view)
    with job statuses, durations, annotations. <cr> on a job line
    drills into the full parsed log with folds and navigation.
  • GitLab/Codeberg: in-progress jobs open a live-tailing terminal;
    completed jobs use the existing parsed buffer.
  • Auto-refresh: in-progress views re-fetch on a configurable timer
    (ci.refresh, default 5s, 0 to disable). Auto-scrolls if cursor
    is at bottom, preserves position otherwise.
  • Config: split (global) + ci.split (per-scope) for split direction.
  • <c-w> watch: secondary action for gh run watch / glab ci view
    in a terminal.

New forge interface methods: live_tail_cmd, watch_cmd, run_status_cmd,
view_cmd. New module: lua/forge/term.lua.

Problem: CI log viewing was a one-shot fetch into a parsed buffer with
no live updates. GitHub had no summary view, and forges with real
per-job live tailing (GitLab, Codeberg) weren't using it.

Solution: add three-tier CI viewing — picker → summary → log. GitHub
runs open a summary buffer (`gh run view`) with `<cr>` on job lines
to drill into parsed logs. GitLab/Codeberg in-progress jobs open a
live-tailing terminal (`glab ci trace`, `tea --follow --job`). All
in-progress views auto-refresh on a configurable timer (`ci.refresh`).
Add `split` config (global + `ci.split` override), `term.lua` module,
`live_tail_cmd`/`watch_cmd`/`run_status_cmd` forge interface methods.
@barrettruth barrettruth force-pushed the feat/github-ci-terminal branch from cd89400 to d243e55 Compare April 3, 2026 19:54
@barrettruth barrettruth changed the title feat(ci): use terminal views for GitHub CI feat(ci): three-tier viewing with per-forge live tail Apr 3, 2026
@barrettruth barrettruth merged commit f0d26d8 into main Apr 3, 2026
6 of 7 checks passed
@barrettruth barrettruth deleted the feat/github-ci-terminal branch April 3, 2026 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant