Skip to content

feat: Phase 9 — Polish & Extensibility#42

Merged
robinojw merged 6 commits intomainfrom
robin/phase-9
Mar 18, 2026
Merged

feat: Phase 9 — Polish & Extensibility#42
robinojw merged 6 commits intomainfrom
robin/phase-9

Conversation

@robinojw
Copy link
Copy Markdown
Owner

Summary

  • Status bar component — displays connection state (connected/disconnected), thread count, selected thread name, and error messages at the bottom of the TUI
  • App-server lifecycleInit() now spawns the app-server process, starts ReadLoop, performs the Initialize handshake, and wires the event bridge for live notifications. Uses functional options (WithClient) to keep the constructor backward-compatible
  • Thread creationn key creates a new thread via client.CreateThread() and adds it to the store
  • Graceful shutdowndefer client.Stop() ensures the app-server process is cleaned up on all exit paths
  • End-to-end integration test — build-tagged test that spawns a real app-server, performs handshake, and creates a thread

Test plan

  • All 52 unit tests pass (go test ./...)
  • Build succeeds (go build ./cmd/dj)
  • go vet ./... clean (regular and integration tags)
  • Integration test compiles (go vet -tags=integration ./...)
  • Manual: ./dj launches, connects to app-server, status bar shows "Connected"
  • Manual: press n to create thread, verify card appears on canvas
  • Manual: Ctrl+C exits cleanly without zombie processes

…onse forwarding

Replace single-session model with multi-session pinned panel architecture:
- Canvas/session split layout with divider bar showing numbered tabs
- Space to pin/unpin, Enter to open+focus, Tab to switch panes
- Ctrl+B prefix actions: x (unpin), z (zoom), arrows (cycle), 1-9 (jump)
- PTY sessions with VT emulator per thread, correct border-aware resize
- Response forwarding loop to drain emulator DA/cursor queries (fixes deadlock)
- Simplified appserver protocol layer removing unused router/dispatch/thread types
@robinojw robinojw merged commit e6c0cd4 into main Mar 18, 2026
1 check passed
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.

1 participant