Skip to content

Fix agent status reporting, terminal dock, and fresh pane startup - #607

Open
iamjakeirl wants to merge 19 commits into
dcouple:mainfrom
iamjakeirl:fix/terminal-refresh-after-unmount
Open

Fix agent status reporting, terminal dock, and fresh pane startup#607
iamjakeirl wants to merge 19 commits into
dcouple:mainfrom
iamjakeirl:fix/terminal-refresh-after-unmount

Conversation

@iamjakeirl

@iamjakeirl iamjakeirl commented Sep 13, 2026

Copy link
Copy Markdown

Description

Fresh repository workspaces now show the same tool launcher as an existing Pane with all agent tabs closed, offering Terminal, Claude Code, Codex, and other available tools. A shell stays in the bottom terminal dock while agents remain in the main tab area. The launcher remains available when the dock is open, and returning to a workspace restores agent tabs and dock state consistently.

Agent status reporting now follows explicit CLI status signals across startup, redraws, reconnects, and terminal teardown. This keeps spinners and Pane colors consistent, avoids treating an inherited shell title as a newly launched agent's idle status, and prevents terminal destruction from producing false completion notifications. Terminal snapshots drain before teardown, stale callbacks cannot affect replacement terminals, and cleanup still reclaims the PTY if output delivery or emulator disposal fails.

The branch also retains the original fix for the Windows terminal dimensions error: asynchronous refresh and resize work checks that its captured xterm is still current after switching or archiving sessions.

Type of Change

  • Bug fix (non-breaking)

Testing

  • pnpm lint and pnpm typecheck — passed, including a final rerun before committing.
  • pnpm build:main and pnpm build:frontend — passed.
  • pnpm --filter frontend test — 353 tests passed.
  • Focused Playwright coverage for terminal-dock, agent-status, terminal-blur-recovery, adaptive-panel-layout, and terminal-selection-popover — 49 tests passed using browser fixtures with mocked Electron IPC.
  • ELECTRON_RUN_AS_NODE=1 pnpm --filter main exec electron node_modules/vitest/vitest.mjs run src/services/terminalPanelManager.persistence.test.ts src/services/terminalPanelManager.status.test.ts src/services/agentStatus src/ipc/panels.status.test.ts src/daemon/mobilePushSender.test.ts src/services/workspaceJournal.test.ts --maxWorkers=2 --minWorkers=1 — 122 tests passed, including a final rerun before committing.
  • Full backend suite under the Electron runtime — 996 passed, 3 failed, 2 skipped. The same three failures reproduce on unchanged upstream: two skill-cache launcher/watcher tests fail with the restricted child-process PATH, and the macOS Tailscale DNS fallback test exceeds its timeout in this WSL environment.
  • Manual validation: the developer tested dock behavior, fresh-pane startup, and live status spinners/colors using the Windows development client connected to the WSL headless daemon built from this branch.
  • git diff --check — passed.

Packaged macOS DMG testing and pnpm electron-dev validation were not performed from WSL. Browser fixtures cover the affected UI paths; Windows development-client and Linux headless-daemon testing cover the actual connection setup.

Checklist

  • Read the contribution guidelines and followed project style.
  • Reviewed the final diff and resolved substantive review findings.
  • Added focused comments and updated existing CLI integration documentation.
  • Added regression coverage for the changed behavior and failure paths.
  • Ran pnpm typecheck and pnpm lint locally.
  • Full backend suite passes locally (three upstream failures described above).
  • Packaged macOS DMG and pnpm electron-dev validation.

Critical Areas Modified

  • Terminal output draining, snapshot persistence, and PTY teardown.
  • Agent status detection, renderer state synchronization, and IPC events.
  • Terminal refresh lifecycle, dock placement, and empty-workspace launcher rendering.

Screenshot

Fresh repository launcher in the browser test fixture; the shell dock is shown in its loading state.

Fresh repository launcher above the terminal dock

Related work

#572 touches neighboring activation code and addresses launcher flashing; the retained terminal-refresh guards address access to disposed terminals.

@iamjakeirl iamjakeirl changed the title Fix terminal dimensions error after switching sessions Fix agent status reporting, terminal dock, and fresh pane startup Sep 13, 2026
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