Skip to content

feat(tui): show terminal tab status and simplify tool errors - #274

Merged
ZouR-Ma merged 7 commits into
mainfrom
feat/session-short-title-gh
Oct 20, 2026
Merged

ZouR-Ma merged 7 commits into
mainfrom
feat/session-short-title-gh

Conversation

@xuxujo97-coder

@xuxujo97-coder xuxujo97-coder commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

Named sessions are difficult to distinguish when terminal titles include both the product and directory. Users also need a per-tab busy indicator, while failed tool output should show the actual error without an extra generic recovery suggestion.

Changes

  • Show the existing session name alone in the terminal title; unnamed sessions retain the product and directory fallback. Sanitize dynamic OSC 0 title text to prevent control-sequence injection.
  • Enable OSC 9;4 progress by default in Otty and Ghostty outside tmux/screen. Explicit settings take precedence, setting changes apply immediately, and completion or shutdown clears the indicator.
  • Remove the generic Chinese recovery-hint row beneath failed tools, preserving actual tool errors and queued-input hints.
  • Remove automatic model-generated titles and bare /name regeneration from the earlier version of this PR. Restore bare /name to displaying the current name or usage, and /name <name> to synchronous manual naming.

Behavior and compatibility

  • Session names continue to use existing session_info entries; no session format migration or additional model requests are introduced.
  • The title generator, hidden extension registration, regeneration export, added model-completion facade, and asynchronous naming state have been removed.
  • Terminal busy state uses the existing progress lifecycle. No notification, bell, or completion badge is added.
  • Snapshot changes remove only the recovery-hint row from failed tool output.
  • Final diff: 18 files, 215 insertions and 103 deletions, reduced from the earlier 31-file version.

Validation

  • npm run check: passed, including TypeScript, architecture guards, public-source boundary, and browser smoke.
  • pnpm run build:offline: passed before the full test run, refreshing workspace outputs after generator removal.
  • TMPDIR=/tmp ./test.sh: passed across the workspace with isolated user resources and no provider credentials; coding-agent: 4,840 passed / 58 skipped; CLI: 697 passed.
  • Focused CLI regressions: 66 passed across terminal session titles, settings, session-event progress cleanup, tool-output snapshots, and package command paths.
  • git diff --check: passed. Structural review passed: dependency direction, UI layering, pure TUI ownership, command boundaries, and existing public entry points remain consistent with repository rules.

Limitations

  • The initial ./test.sh attempt hit macOS IPC socket path-length limits in the source-subagent test; the shorter temporary path above passed without source changes.
  • Actual Otty/Ghostty presentation and standalone-binary behavior were not validated. CI for the latest commit is pending.

@xuxujo97-coder xuxujo97-coder changed the title feat(coding-agent): add short session titles and terminal tab status feat(tui): show terminal tab status and simplify tool errors Oct 20, 2026
@ZouR-Ma
ZouR-Ma merged commit be88ee7 into main Oct 20, 2026
2 checks passed
@ZouR-Ma
ZouR-Ma deleted the feat/session-short-title-gh branch October 20, 2026 11:49
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.

2 participants