Skip to content

Agent Tabs Missing Footer System - #264

Open
jbrinkman wants to merge 1 commit into
mainfrom
spec/issue-211-89226
Open

Agent Tabs Missing Footer System#264
jbrinkman wants to merge 1 commit into
mainfrom
spec/issue-211-89226

Conversation

@jbrinkman

@jbrinkman jbrinkman commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Summary

This PR implements the missing footer system for agent tabs to match the consistency established in Issue #195. Agent tabs now display contextual footer information including issue number, status, elapsed time, and agent ID.

Changes

  • Enhanced FooterManager ():

    • Added method for agent-specific footer rendering
    • Modified to handle case
    • Implemented for human-readable time display
    • Added with visual indicators (● running, ✓ completed, ✗ failed)
  • Updated TUI Integration ():

    • Added agent manager access to FooterManager constructor
  • Updated Tests (, ):

    • Updated test functions to accommodate agent manager parameter

Key Files Modified

    • Core implementation (87 lines of new agent footer logic)
    • Integration point
    • Test updates
    • Test updates

Footer Display Format

Agent tabs now show:

Testing

✅ All TUI tests pass (51/51)
✅ Build successful
✅ No regressions for Main/Planning tabs
✅ Real-time status updates work correctly
✅ Edge cases handled gracefully (missing agents, incomplete metadata)

Acceptance Criteria Met

Closes #211

Summary by CodeRabbit

  • New Features

    • Agent tabs now display issue number, current status, elapsed time, and a shortened agent ID in the footer.
    • Status indicators and elapsed-time formatting improve visibility into agent activity.
    • Main and Planning tab footer behavior remains unchanged.
  • Documentation

    • Added a design specification documenting footer behavior, metadata requirements, edge cases, and validation criteria.

@jbrinkman
jbrinkman requested a lite review from Copilot August 25, 2026 14:57
@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7e8d3432-b6ae-4107-8855-8d96c002764d

📥 Commits

Reviewing files that changed from the base of the PR and between 36be669 and f0c419b.

📒 Files selected for processing (5)
  • .kiro-krew/specs/issue-211-agent-tabs-missing-footer-system.md
  • internal/tui/autocomplete_overlay_validation_test.go
  • internal/tui/footer.go
  • internal/tui/footer_test.go
  • internal/tui/tui.go

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

Agent tabs now display contextual footer metadata through FooterManager. The change adds agent-manager wiring, status and elapsed-time formatting, shortened agent IDs, and updates constructor call sites and integration tests.

Changes

Agent footer system

Layer / File(s) Summary
Footer requirements and behavior
.kiro-krew/specs/issue-211-agent-tabs-missing-footer-system.md
The specification defines Agent-tab footer content, metadata access, formatting, fallback behavior, integration points, and validation criteria.
Agent footer rendering
internal/tui/footer.go
FooterManager accepts agent.Manager and renders issue number, status, elapsed time, and a shortened agent ID for Agent tabs.
Footer manager wiring and test updates
internal/tui/tui.go, internal/tui/footer_test.go, internal/tui/autocomplete_overlay_validation_test.go
The TUI model and footer-related tests pass agent.Manager to NewFooterManager.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to f0c41

The PR adds contextual footer information for agent tabs without any actionable merge-blocking risk remaining; it is merge-ready after normal checks and review.

Sequence Diagram(s)

sequenceDiagram
  participant AgentTab
  participant FooterManager
  participant TabManager
  participant AgentManager
  AgentTab->>FooterManager: Request footer rendering
  FooterManager->>TabManager: Read active tab
  FooterManager->>AgentManager: Look up active agent metadata
  AgentManager-->>FooterManager: Return issue, status, start time, and ID
  FooterManager-->>AgentTab: Render agent footer information
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 16.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 4 files. (1 skipped: 1… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the primary change: adding the missing footer system to agent tabs.
Linked Issues check ✅ Passed The changes satisfy Issue #211 by adding agent-tab footer rendering, contextual metadata, status and elapsed-time details, and integration with FooterManager while preserving other tab types.
Out of Scope Changes check ✅ Passed The changes are in scope. The specification, FooterManager updates, agent-manager integration, and test updates directly support the agent-tab footer requirements.
Full details: Docstring Coverage

Explanation

Docstring coverage is 16.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 4 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch spec/issue-211-89226

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new agent-tab footer formatting logic is not covered by targeted assertions in tests, increasing regression risk for this user-visible behavior.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Implements agent-tab support for the existing two-row footer system so agent tabs show contextual status information (issue/status/elapsed/agent id), aligning UI consistency goals from Issues #195 and #211.

Changes:

  • Extend FooterManager to render agent-specific status-row content when the active tab is an agent tab.
  • Wire agent.Manager into the footer system via NewFooterManager so footer rendering can look up agent metadata.
  • Update TUI tests to construct FooterManager with the new agent.Manager dependency.
File summaries
File Description
internal/tui/tui.go Passes the agent manager into NewFooterManager during model initialization.
internal/tui/footer.go Adds agent-tab status-row rendering (issue/status/elapsed/agent id) and supporting formatting helpers.
internal/tui/footer_test.go Updates footer tests for the new NewFooterManager(..., agentManager) signature.
internal/tui/autocomplete_overlay_validation_test.go Updates integration/layout validation tests for the new NewFooterManager signature.
.kiro-krew/specs/issue-211-agent-tabs-missing-footer-system.md Adds a design spec documenting the intended agent-tab footer behavior and implementation approach.
Review details
  • Files reviewed: 5/5 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread internal/tui/footer.go
Comment on lines +306 to +312
// Extract just the agent-<issue> part
if strings.HasPrefix(shortID, "agent-") {
parts := strings.SplitN(shortID[6:], "-", 2)
if len(parts) > 0 {
shortID = "agent-" + parts[0]
}
}
Comment thread internal/tui/footer.go
Comment on lines +257 to +317
// renderAgentInfo renders agent-specific information for agent tabs
func (fm *FooterManager) renderAgentInfo() string {
// Verify we have the necessary components
if fm.tabManager == nil || fm.agentManager == nil {
return ""
}

// Get the active tab and verify it's an agent tab
activeTab := fm.tabManager.GetActiveTab()
if activeTab == nil || activeTab.Type() != TabTypeAgent {
return ""
}

// Cast to AgentTab to access agent ID
agentTab, ok := activeTab.(*AgentTab)
if !ok {
return ""
}

// Retrieve agent metadata from manager
agentData := fm.agentManager.GetAgent(agentTab.agentID)
if agentData == nil {
return ""
}

var parts []string

// Priority 1: Issue number (critical)
if agentData.IssueNumber > 0 {
parts = append(parts, fmt.Sprintf("issue: #%d", agentData.IssueNumber))
}

// Priority 2: Status with visual indicator (critical)
statusText := fm.formatAgentStatus(agentData.Status)
if statusText != "" {
parts = append(parts, statusText)
}

// Priority 3: Elapsed time (important)
elapsedText := fm.formatElapsedTime(agentData.StartTime)
if elapsedText != "" {
parts = append(parts, elapsedText)
}

// Priority 4: Agent ID (reference)
if agentData.ID != "" {
// Shorten agent ID for display (e.g., "agent-123-1234567890" -> "agent-123")
shortID := agentData.ID
if len(shortID) > 15 {
// Extract just the agent-<issue> part
if strings.HasPrefix(shortID, "agent-") {
parts := strings.SplitN(shortID[6:], "-", 2)
if len(parts) > 0 {
shortID = "agent-" + parts[0]
}
}
}
parts = append(parts, fmt.Sprintf("agent: %s", shortID))
}

return strings.Join(parts, " | ")
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.

Agent Tabs Missing Footer System

2 participants