Skip to content

[Feature]: Make Tasks and activity placement relative to the Composer configurable #316

Description

@Arcadia-1

Product or interface

CLI - interactive TUI

Use case and problem

The interactive TUI currently renders the footer chrome in a fixed order. In a conversation this is effectively:

Tasks summary
Activity (Loading / Running / related live state)
Composer
Status line

This is a sensible default, but some users prefer the Composer to remain visually attached to the transcript, with transient operational state below the input:

Composer
Activity
Tasks summary
Status line

/statusline can configure status-line items and custom status output, but it does not control the Tasks summary or activity line because those are separate TUI components. As a result, this layout preference currently requires a source patch to TuiChatLayout.

Desired behavior

Please make the position of the Tasks summary and activity line configurable relative to the Composer, while keeping the current placement as the default for backward compatibility.

A possible configuration shape is:

tui:
  composerLayout:
    activity: below # above | below
    tasks: below    # above | below

An ordered section list would also work if it fits the existing configuration model better.

Suggested acceptance criteria:

  • The current Tasks -> activity -> Composer -> status order remains the default.
  • Users can independently place the activity line and Tasks summary above or below the Composer.
  • The setting applies consistently in regular and fullscreen TUI modes, including welcome and conversation surfaces.
  • When placed next to the Composer, the visible content of the Tasks summary aligns horizontally with adjacent Todo/activity rows; moving a row must not introduce inconsistent indentation.
  • That alignment remains stable in narrow terminals and after truncation, wrapping, footer shrinking, or rows appearing and disappearing.
  • Permission/question interactions, narrow-terminal fitting, footer shrinking, and hidden/empty task/activity rows retain their current behavior.
  • /statusline behavior remains independent.
  • The option is documented in the TUI configuration documentation and exposed through an interactive settings command if appropriate.

Platform

Multiple platforms

Alternatives and additional context

Directly reordering the sections in packages/tui/src/tui/shell/chat-layout.ts works for a local source build, but patching generated npm bundles is fragile and updates overwrite the change. A supported configuration would let users choose the layout without maintaining a fork.

A local source prototype also found that placement and indentation need to be handled together: after moving the Tasks row below the Composer, its marker initially started two columns left of the Todo row. Adding the same leading indentation made the adjacent rows visually align. This should be covered by a regression test rather than left as a theme- or layout-specific patch.

I searched the existing issues for Composer/Tasks/activity/loading placement and configurable TUI layout and did not find a matching request.

Activity

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

    tuiInteractive terminal UI (TUI)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions