TDD: TUI compose() uses generic Textual Header/Footer instead of spec-required custom layout #10338

Open
opened 2026-04-18 08:52:12 +00:00 by HAL9000 · 1 comment
Owner

Metadata

Field Value
Branch fix/tui-compose-custom-layout
Commit Message fix(tui): replace generic Header/Footer with custom layout in compose()
Milestone v3.7.0
Parent Epic #4946
Related Bug #10337

Background and Context

This is the companion TDD (Test-Driven Development) issue for bug #10337. The TUI specification requires that app.py compose() uses a custom layout and explicitly prohibits the use of generic Textual Header and Footer widgets. Test coverage must be added to verify the correct custom layout is used and to prevent regression.

Expected Behavior (from spec)

Tests must verify that:

  • The compose() method in app.py does not yield generic textual.widgets.Header or textual.widgets.Footer widgets
  • A custom layout is implemented per the spec (e.g., MainScreen with horizontal layout, conversation + sidebar, custom chrome elements)
  • The custom layout elements are present and correctly structured

Acceptance Criteria

  • Behave scenarios exist that verify compose() does not use generic Header or Footer widgets
  • Behave scenarios verify the custom layout elements are present
  • All new and existing tests pass
  • Test coverage >= 97%

Subtasks

  • Write Behave scenarios verifying compose() does not yield textual.widgets.Header
  • Write Behave scenarios verifying compose() does not yield textual.widgets.Footer
  • Write Behave scenarios verifying the custom layout elements are present in compose()
  • Write unit tests for any new custom layout widget classes introduced
  • Run nox (all default sessions), fix any errors
  • Verify coverage >= 97%

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • Tests confirm compose() does not use generic Header or Footer widgets from textual.widgets
  • Tests confirm the custom layout is implemented per the spec
  • The related bug issue #10337 is resolved.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional details.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly.
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.

Automated by CleverAgents Bot
Agent: new-issue-creator

## Metadata | Field | Value | |---|---| | **Branch** | `fix/tui-compose-custom-layout` | | **Commit Message** | `fix(tui): replace generic Header/Footer with custom layout in compose()` | | **Milestone** | v3.7.0 | | **Parent Epic** | #4946 | | **Related Bug** | #10337 | --- ## Background and Context This is the companion TDD (Test-Driven Development) issue for bug #10337. The TUI specification requires that `app.py compose()` uses a **custom layout** and explicitly prohibits the use of generic Textual `Header` and `Footer` widgets. Test coverage must be added to verify the correct custom layout is used and to prevent regression. ## Expected Behavior (from spec) Tests must verify that: - The `compose()` method in `app.py` does **not** yield generic `textual.widgets.Header` or `textual.widgets.Footer` widgets - A custom layout is implemented per the spec (e.g., `MainScreen` with horizontal layout, conversation + sidebar, custom chrome elements) - The custom layout elements are present and correctly structured ## Acceptance Criteria - Behave scenarios exist that verify `compose()` does not use generic `Header` or `Footer` widgets - Behave scenarios verify the custom layout elements are present - All new and existing tests pass - Test coverage >= 97% ## Subtasks - [ ] Write Behave scenarios verifying `compose()` does not yield `textual.widgets.Header` - [ ] Write Behave scenarios verifying `compose()` does not yield `textual.widgets.Footer` - [ ] Write Behave scenarios verifying the custom layout elements are present in `compose()` - [ ] Write unit tests for any new custom layout widget classes introduced - [ ] Run `nox` (all default sessions), fix any errors - [ ] Verify coverage >= 97% ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - Tests confirm `compose()` does not use generic `Header` or `Footer` widgets from `textual.widgets` - Tests confirm the custom layout is implemented per the spec - The related bug issue #10337 is resolved. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional details. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. --- **Automated by CleverAgents Bot** Agent: new-issue-creator
HAL9000 added this to the v3.7.0 milestone 2026-04-18 08:59:15 +00:00
Author
Owner

[GROOMED] Quality Analysis Complete

Issue Assessment: VALID & ACTIONABLE

This is a legitimate, well-structured TDD (Test-Driven Development) issue that is ready for verification.

Triage Analysis

Required Labels - ALL PRESENT

  • State/Unverified (id: 846) - Current state label
  • Type/Testing (id: 851) - Correct type for TDD work
  • Priority/Critical (id: 858) - Appropriate priority level
  • MoSCoW/Must have (id: 883) - Correctly applied

Milestone Assignment

  • Assigned to: v3.7.0 (M8: TUI Implementation)
  • Status: FIXED - Milestone was missing, now assigned
  • Rationale: This is a TUI-related testing issue that belongs in the TUI implementation milestone

Epic Relationship

  • Parent Epic: #4946 (referenced in issue body)
  • Related Bug: #10337 (companion bug fix issue)
  • Status: Properly linked and contextualized

Issue Validity

  • Well-defined: Clear background, context, and acceptance criteria
  • Actionable: Specific subtasks with checkboxes
  • Testable: Concrete test requirements (Behave scenarios, unit tests)
  • Complete: Definition of Done is explicit and measurable
  • Coverage requirement: >= 97% test coverage specified

Quality Findings

Strengths

  1. Excellent specification of test requirements (Behave scenarios + unit tests)
  2. Clear acceptance criteria tied to TUI spec compliance
  3. Proper companion relationship to bug #10337
  4. Well-structured metadata section with branch and commit message guidance
  5. Explicit Definition of Done with PR/merge requirement

No Issues Found

  • All required labels present
  • Milestone now assigned
  • No orphaned issues (belongs to epic #4946)
  • Issue is not a duplicate
  • Acceptance criteria are measurable and testable

Recommendation

Status: READY FOR VERIFICATION

This issue should be moved from State/Unverified to State/Verified as it is:

  • A valid, actionable TDD requirement
  • Properly labeled with all required labels
  • Assigned to the correct milestone (v3.7.0)
  • Well-integrated with related work (#10337, #4946)
  • Ready for developer assignment and implementation

Priority Note: This is a Priority/Critical issue. Once verified, it should be prioritized for assignment and implementation as part of the TUI implementation milestone.


Automated by CleverAgents Bot
Supervisor: Grooming | Agent: grooming-pool-supervisor

[GROOMED] Quality Analysis Complete ## Issue Assessment: ✅ VALID & ACTIONABLE This is a legitimate, well-structured TDD (Test-Driven Development) issue that is ready for verification. ## Triage Analysis ### ✅ Required Labels - ALL PRESENT - **State/Unverified** (id: 846) - Current state label - **Type/Testing** (id: 851) - Correct type for TDD work - **Priority/Critical** (id: 858) - Appropriate priority level - **MoSCoW/Must have** (id: 883) - Correctly applied ### ✅ Milestone Assignment - **Assigned to:** v3.7.0 (M8: TUI Implementation) - **Status:** ✅ FIXED - Milestone was missing, now assigned - **Rationale:** This is a TUI-related testing issue that belongs in the TUI implementation milestone ### ✅ Epic Relationship - **Parent Epic:** #4946 (referenced in issue body) - **Related Bug:** #10337 (companion bug fix issue) - **Status:** Properly linked and contextualized ### ✅ Issue Validity - **Well-defined:** Clear background, context, and acceptance criteria - **Actionable:** Specific subtasks with checkboxes - **Testable:** Concrete test requirements (Behave scenarios, unit tests) - **Complete:** Definition of Done is explicit and measurable - **Coverage requirement:** >= 97% test coverage specified ## Quality Findings ### Strengths 1. Excellent specification of test requirements (Behave scenarios + unit tests) 2. Clear acceptance criteria tied to TUI spec compliance 3. Proper companion relationship to bug #10337 4. Well-structured metadata section with branch and commit message guidance 5. Explicit Definition of Done with PR/merge requirement ### No Issues Found - All required labels present - Milestone now assigned - No orphaned issues (belongs to epic #4946) - Issue is not a duplicate - Acceptance criteria are measurable and testable ## Recommendation **Status:** ✅ **READY FOR VERIFICATION** This issue should be moved from **State/Unverified** to **State/Verified** as it is: - A valid, actionable TDD requirement - Properly labeled with all required labels - Assigned to the correct milestone (v3.7.0) - Well-integrated with related work (#10337, #4946) - Ready for developer assignment and implementation **Priority Note:** This is a **Priority/Critical** issue. Once verified, it should be prioritized for assignment and implementation as part of the TUI implementation milestone. --- **Automated by CleverAgents Bot** Supervisor: Grooming | Agent: grooming-pool-supervisor
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#10338
No description provided.