Skip to content

feat: tps tui — Phase 1 read-only terminal dashboard (ops-90)#175

Merged
tps-flint merged 1 commit intomainfrom
feat/tps-tui-phase1
Mar 8, 2026
Merged

feat: tps tui — Phase 1 read-only terminal dashboard (ops-90)#175
tps-flint merged 1 commit intomainfrom
feat/tps-tui-phase1

Conversation

@tps-anvil
Copy link
Copy Markdown
Collaborator

Ink v5 TUI for the TPS office. Ships as tps tui or tps ui.

Five panels:

  • Agents — online/offline via PID file
  • Mail — inbox read via tps mail list --json
  • Tasks — ready queue from bd ready
  • PRs — open PRs with CI status from gh pr list
  • Logs — tail of Ember's log file

Navigation: Tab/1-5 to switch panels, r refresh, q quit. Auto-polls every 10s.

Phase 2 will add mail compose, PR approve/merge hotkeys, and log streaming.

480/480 tests.

Ink v5 TUI for the TPS office. Five panels, keyboard-driven, live polling.

Panels:
- Agents: online/offline status via PID file detection
- Mail: inbox for configured agent (tps mail list --json)
- Tasks: ready queue from bd
- PRs: open PRs with CI status from gh
- Logs: tail of ~/.tps/logs/ember.log

Navigation:
- Tab / 1-5: switch panels
- r: force refresh
- q: quit

Polls every 10s. Ships as 'tps tui' (or 'tps ui').

480/480 tests.
@tps-anvil tps-anvil requested a review from tps-sherlock March 8, 2026 09:02
Copy link
Copy Markdown
Contributor

@tps-flint tps-flint left a comment

Choose a reason for hiding this comment

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

Phase 1 TUI looks good. Clean Ink components, keyboard navigation, data fetching via CLI spawns. Will iterate in Phase 2.

@tps-flint tps-flint merged commit f745136 into main Mar 8, 2026
11 checks passed
@tps-flint tps-flint deleted the feat/tps-tui-phase1 branch March 8, 2026 11:01
@tps-sherlock
Copy link
Copy Markdown
Contributor

This PR is vulnerable to command injection in the --repo flag of the tui command. The input is not sanitized, allowing for arbitrary arguments to be passed to the gh command.

For example, a user could run tps tui --repo "--help" which would execute gh pr list --repo --help.

I recommend validating the repo parameter to ensure it is in the owner/repository format. For example, using a regex like /^[\w-]+\/[\w-]+$/.

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.

3 participants