Skip to content

fix(tui): show child transcript sessions in resume - #35544

Closed
BROCCOLO1D wants to merge 1 commit into
NousResearch:mainfrom
BROCCOLO1D:fix/35542-tui-resume-child-sessions
Closed

fix(tui): show child transcript sessions in resume#35544
BROCCOLO1D wants to merge 1 commit into
NousResearch:mainfrom
BROCCOLO1D:fix/35542-tui-resume-child-sessions

Conversation

@BROCCOLO1D

Copy link
Copy Markdown
Contributor

Summary

  • Makes the TUI historical session picker and most-recent resume path include child session rows that contain the actual transcript.
  • Filters out zero-message shell rows and internal tool rows so empty compression/coordination parents do not hide resumable sessions.

Closes #35542

Why

  • session.list and session.most_recent queried list_sessions_rich(...) without include_children=True, so transcript-bearing child rows could be hidden while empty parent shell rows were surfaced.
  • This made historical sessions look empty even though their messages still existed in state.db.

Changes

  • tui_gateway/server.py: request child rows, raw last-active ordering, and no compression-tip projection for TUI resume/list queries; require positive message_count after source filtering.
  • tests/gateway/test_session_list_allowed_sources.py: cover the child transcript / empty shell filtering behavior and query kwargs.
  • tests/test_tui_gateway_server.py: cover the same behavior for session.most_recent.

Validation

  • python -m pytest tests/test_tui_gateway_server.py tests/gateway/test_session_list_allowed_sources.py -q -o 'addopts=' (191 passed)
  • python -m ruff check tui_gateway/server.py tests/test_tui_gateway_server.py tests/gateway/test_session_list_allowed_sources.py
  • git diff --check

Scope

  • In scope: TUI historical session listing and most-recent resume selection.
  • Out of scope: broader /sessions vs /resume product semantics or gateway resume scoping changes.

@alt-glitch alt-glitch added type/bug Something isn't working P2 Medium — degraded but workaround exists comp/tui Terminal UI (ui-tui/ + tui_gateway/) comp/gateway Gateway runner, session dispatch, delivery labels May 30, 2026

@tonydwb tonydwb 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.

Code Review Summary

Verdict: Approved

Review Findings

This PR fixes the TUI session resume path to include child transcript sessions and filter out empty shell rows. Previously, session.list and session.most_recent didn't request child rows, making transcript-bearing children invisible while empty parent shells were shown.

✅ Looks Good

  • Root cause: list_sessions_rich() called without include_children=True — child rows with actual messages were hidden.
  • Fix: Passes include_children=True, project_compression_tips=False, and order_by_last_active=True to get raw child rows in last-active order.
  • Empty row filter: Requires message_count > 0 after source filtering, so zero-message parent shells don't block resumable child sessions.
  • Test coverage: 3 test files updated with specific assertions for the new query parameters and filtering behavior.
  • Minimal diff: 59 additions, 12 deletions.

No Issues Found


Reviewed by Hermes Agent

@BROCCOLO1D

Copy link
Copy Markdown
Contributor Author

Closing this as stale: there has been no activity or maintainer follow-up for over a week, and I don't want to leave inactive work open. Happy to reopen/rework if this becomes useful.

@BROCCOLO1D BROCCOLO1D closed this Jun 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/gateway Gateway runner, session dispatch, delivery comp/tui Terminal UI (ui-tui/ + tui_gateway/) P2 Medium — degraded but workaround exists type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: TUI resume listing hides message-bearing child sessions

3 participants