Skip to content

feat(tui): add internal debug frames#30269

Draft
kitlangton wants to merge 2 commits into
kit/tui-retry-detailfrom
kit/tui-scenario-frames
Draft

feat(tui): add internal debug frames#30269
kitlangton wants to merge 2 commits into
kit/tui-retry-detailfrom
kit/tui-scenario-frames

Conversation

@kitlangton
Copy link
Copy Markdown
Contributor

@kitlangton kitlangton commented Jun 1, 2026

Summary

  • add an internal/debug-only TUI fixture transport for rendering named static frames through the real TUI sync and session rendering path
  • select fixture files and frames externally with --debug-scenario and --debug-frame; debug frames require --pure and do not start the normal worker/server transport
  • add canonical subagent-lifecycle frames for foreground running, active background, retrying, failed, and completed subagent states
  • validate fixtures with Effect Schema and fail closed for mutation requests against static frames

Usage

bun run dev --debug-scenario src/cli/cmd/tui/debug/fixtures/subagent-lifecycle.json --debug-frame running --pure
bun run dev --debug-scenario src/cli/cmd/tui/debug/fixtures/subagent-lifecycle.json --debug-frame active-background --pure
bun run dev --debug-scenario src/cli/cmd/tui/debug/fixtures/subagent-lifecycle.json --debug-frame retrying --pure
bun run dev --debug-scenario src/cli/cmd/tui/debug/fixtures/subagent-lifecycle.json --debug-frame failed --pure
bun run dev --debug-scenario src/cli/cmd/tui/debug/fixtures/subagent-lifecycle.json --debug-frame completed --pure

Design Boundaries

Verification

  • bunx prettier --check src/cli/cmd/tui/thread.ts src/cli/cmd/tui/debug/frame.ts test/cli/tui/debug-frame.test.ts
  • bun run test -- test/cli/tui/inline-tool-wrap-snapshot.test.tsx test/cli/tui/debug-frame.test.ts (14 pass, 6 snapshots)
  • bun typecheck from packages/opencode
  • pre-push bun turbo typecheck
  • live cellshot renders for running, active-background, retrying, failed, and completed frames; narrow retry render verifies status-prefix wrapping
  • confirmed running without --pure is rejected
  • git diff --check

Scoped oxlint cannot currently run because the existing .oxlintrc.json on the base branch is rejected before source analysis due to duplicate/invalid options.typeAware placement.

@kitlangton kitlangton force-pushed the kit/tui-scenario-frames branch from deb5254 to cde5c1e Compare June 1, 2026 18:39
@kitlangton kitlangton changed the base branch from kit/tui-scenario-preview to kit/tui-background-label June 1, 2026 18:39
@kitlangton kitlangton force-pushed the kit/tui-scenario-frames branch from fe43cd4 to 1cd69cb Compare June 1, 2026 19:04
@kitlangton kitlangton changed the base branch from kit/tui-background-label to kit/tui-retry-detail June 1, 2026 19:04
@kitlangton kitlangton force-pushed the kit/tui-retry-detail branch from dd4a996 to 7fd2b7e Compare June 1, 2026 19:45
@kitlangton kitlangton force-pushed the kit/tui-scenario-frames branch from 1cd69cb to a7a58c9 Compare June 1, 2026 19:45
@kitlangton kitlangton force-pushed the kit/tui-retry-detail branch from 7fd2b7e to 5519620 Compare June 1, 2026 19:57
@kitlangton kitlangton force-pushed the kit/tui-scenario-frames branch from a7a58c9 to 856bcbb Compare June 1, 2026 19:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant