Skip to content

Show LAUNCH splash in Hera panes while a role's task launches - #1060

Merged
anutron merged 4 commits into
masterfrom
argus/argus-agent-death/hera-launch-splash
Oct 19, 2026
Merged

anutron merged 4 commits into
masterfrom
argus/argus-agent-death/hera-launch-splash

Conversation

@anutron

@anutron anutron commented Oct 18, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Hera (Projects tab) coordinator/agent panes now render the Tasks view's gradient LAUNCH banner while a role's task is launching, instead of a blank pane or "Session not running".
  • Reuses the existing renderer: DrawPendingBanner is now a wrapper over widget.DrawLaunchBanner(subtitle).
  • Stage is derived from task/session state, not in-process callbacks (most Hera launches come from the daemon via MCP): bound task pending + no session → P R E P A R I N G W O R K T R E E . . .; live session with zero bytes ever written → S T A R T I N G A G E N T . . .. HeraPage.syncLaunchStatus pushes the bound task's status to each pane after every selection/refresh.
  • Covers hera_spawn_worker, gater materialization, sub-coordinators, coordinator creation and revive/restart (the new session starts empty), in split and fullscreen.
  • Precedence: closed-out banner > "Re-rendering…" > launch splash > placeholder/live render. Ends at first output; gives up after 45s per bound session (reset on any session change). Paints only inside the pane rect (short rects fall back to the status line only); no screen.Sync(). Opt-in per pane (EnableLaunchSplash); uxlog on stage transitions/timeouts.

Frontend parity

Neither the web SPA nor the macOS app has a launch splash for tasks today, so there is no Hera equivalent to port. Named in the OpenSpec Non-Goals. Also non-goals: planned (no task row yet) plan nodes, and a distinct pre-DB worktree stage (the task row only exists after the worktree does).

Specs / docs

OpenSpec change add-hera-launch-splash archived in-PR (delta merged into openspec/specs/hera-view/spec.md); gotcha bullet in hera-view.md + index row.

Verification (ambient ARGUS_/CODEX_ scrubbed; rebased onto master adfcfd9 / #1054)

  • make build vet fmt-check lint-pr: clean.
  • make vuln: fails only on Go stdlib CVEs (advisory in CI) — waived.
  • make test-cover-gate: three packages failed under full-suite load (internal/agent and internal/tui hit the 2m package timeout; internal/daemon/client and TestSupAcctEnv failed alongside). Isolated go test -race -count=1 -timeout 10m reruns all pass: internal/agent 91.9s, internal/daemon/client 27.8s, internal/tui 262.7s (load-induced waiver). The aggregate coverage floor number was not produced because the gate aborted; new code is 100% covered (launchsplash.go, syncLaunchStatus, DrawLaunchBanner).
  • New tests: widget (custom subtitle), terminal pane (pending/starting/dismiss/dead-not-splash/opt-in/closed-out and re-render precedence/timeout/short rect/new-session clock reset), Hera page bind+Draw (pending, empty live, clears on output, fullscreen, dead in_progress).

🤖 Generated with Claude Code

anutron and others added 4 commits October 18, 2026 12:18
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…rrow rects

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…respawn

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Merging this branch changes the coverage (1 decrease, 2 increase)

Impacted Packages Coverage Δ 🤖
github.com/drn/argus/internal/tui/hera 93.25% (+0.34%) 👍
github.com/drn/argus/internal/tui/terminal 96.40% (+0.21%) 👍
github.com/drn/argus/internal/tui/widget 95.43% (-0.11%) 👎

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/drn/argus/internal/tui/hera/page.go 92.65% (+1.70%) 422 (+2) 391 (+9) 31 (-7) 👍
github.com/drn/argus/internal/tui/hera/panes.go 95.18% (+0.24%) 166 (+8) 158 (+8) 8 👍
github.com/drn/argus/internal/tui/terminal/launchsplash.go 100.00% (+100.00%) 62 (+62) 62 (+62) 0 🌟
github.com/drn/argus/internal/tui/terminal/terminalpane.go 96.92% (+0.02%) 1008 (+5) 977 (+5) 31 👍
github.com/drn/argus/internal/tui/widget/pendingbanner.go 95.83% (-4.17%) 24 (+2) 23 (+1) 1 (+1) 👎

Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code.

Changed unit test files

  • github.com/drn/argus/internal/tui/hera/panes_test.go
  • github.com/drn/argus/internal/tui/terminal/launchsplash_test.go
  • github.com/drn/argus/internal/tui/widget/pendingbanner_test.go

@anutron
anutron merged commit 821d17f into master Oct 19, 2026
1 of 3 checks passed
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