Skip to content

Autorun live session view#747

Closed
scriptease wants to merge 987 commits intoRunMaestro:mainfrom
scriptease:autorun-live-session
Closed

Autorun live session view#747
scriptease wants to merge 987 commits intoRunMaestro:mainfrom
scriptease:autorun-live-session

Conversation

@scriptease
Copy link
Copy Markdown

Bildschirmfoto 2026-04-06 um 20 50 46

I have a feature proposal for the people like me that need to see something sometimes, it adds the live session id to the auto run status box, but since everything is a snapshot and not updated live it opens the session with (snapshot) but you can see the last message when something is slow or you're just curious.

reachrazamair and others added 30 commits March 25, 2026 16:27
…dedup

Accessibility:
- AITab, FileTab: add tabIndex={0}, role="tab", aria-selected, outline-none,
  and Enter/Space onKeyDown handler to match TerminalTabItem
- NewTabPopover: auto-focus popover on open, restore focus to + button on
  close, add Escape key handler

Timeout cleanup (prevent state updates after unmount):
- AITab: store copy feedback timeouts in copyTimeoutRef, clear on unmount
- FileTab: same copyTimeoutRef pattern for file path/name copy
- useTabHoverOverlay: clear pending hover timeouts on unmount via useEffect

Stability:
- useTabHoverOverlay: stabilize setTabRef by capturing registerRef in a ref
  instead of depending on options?.registerRef directly
- TerminalTabItem: memoize displayName with useMemo (was raw call)
- AITab: add comment explaining displayName useMemo deps coupling

Navigation:
- getRepairedUnifiedTabOrder: deduplicate live refs via seen set so navigation
  indices match buildUnifiedTabs (which deduplicates via Map.delete)
- 2 new regression tests (stale pruning + duplicate dedup)

Shell cleanup:
- TabBar: replace magic 48 with STICKY_RIGHT_WIDTH constant
- TabBar: inline canClose=true (remove dead local)
- TabBar: add dev-time console.warn when unifiedTabs provided without
  file/terminal select/close handlers
- Unread filter now always shows file and terminal tabs (they have no
  unread state; hiding them caused navigation/display mismatch)
- handleMouseEnter clears any pending close timer before scheduling the
  open timer (prevents flicker on rapid leave→enter)
- closeTab and closeFileTab use getRepairedUnifiedTabOrder instead of
  raw session.unifiedTabOrder for neighbor lookup (stale refs could
  cause fallback to wrong tab when closing the active tab)
- Regression test: close active tab with stale refs in unifiedTabOrder
refactor(tabbar): decompose TabBar + fix tab navigation skipping
handleOpenFileTab set activeFileTabId but never switched inputMode to
'ai' or cleared activeTerminalTabId, so MainPanel kept rendering the
terminal view. Added the missing state transitions to match
handleSelectFileTab behavior.
# Conflicts:
#	docs/releases.md
#	src/__tests__/renderer/components/SessionList.test.tsx
#	src/renderer/components/AboutModal.tsx
#	src/renderer/components/AppModals.tsx
#	src/renderer/components/SessionList/SessionList.tsx
…n xterm

Cmd+K was hijacked in terminal mode to clear the xterm buffer instead of
opening Quick Actions. Now Cmd+K universally opens the command palette;
clear terminal moves to Cmd+Shift+K.

The Escape key handler manually wrote \x1b to the PTY and blocked xterm
on keydown, but allowed xterm to process keyup — this inconsistency
corrupted xterm.js v6 internal key state, breaking all input in
interactive apps (vim, vi, nano). Escape is now handled by xterm
normally through its standard onData pipeline.
Update test to expect Cmd+K opens command palette in terminal mode.
Add test for Cmd+Shift+K clearing the xterm buffer in terminal mode.
When xterm.js's hidden textarea loses focus (e.g., during vim's alternate
screen buffer initialization), keyboard events bubble to the window handler
instead of being captured by xterm. This adds a fallback that detects this
condition (key events reaching window handler while in terminal mode),
re-focuses the terminal textarea, and forwards the missed keystroke
directly to the PTY. Covers regular characters, Enter, Backspace, Escape,
Tab, and Ctrl+A-Z control sequences.
…e vanishing

Problem 1 — Silent Cue enable failure (Linux):
  CueEngine.start() caught better-sqlite3 DB init errors and returned
  silently. The IPC call appeared to succeed, refresh() saw enabled=false,
  and the toggle flipped back with zero feedback. Users on Linux where the
  native binding was missing saw the toggle just snap back to "Disabled"
  with no explanation.

Fix:
  - src/main/cue/cue-engine.ts: change `return` → `throw error` in the
    DB init catch block. Keeps existing Sentry capture and logging, but
    now propagates to the IPC layer so the renderer gets a rejected promise.
  - src/renderer/components/CueModal/CueModal.tsx: add catch block in
    handleToggle that calls notifyToast with the error message. Users now
    see exactly why enabling failed (e.g. "Could not locate the bindings
    file").

Problem 2 — Pipeline nodes vanish during drag (Linux):
  onNodesChange called setPipelineState on every mousemove during drag.
  Each update triggered a full convertToReactFlowNodes recomputation via
  useMemo, creating a tight render loop. On Linux with slower compositing,
  this caused nodes to flicker or disappear entirely.

Fix:
  - src/renderer/components/CuePipelineEditor/CuePipelineEditor.tsx:
    buffer drag position updates in a ref and flush once per animation
    frame via requestAnimationFrame. Non-drag position changes (drop,
    programmatic moves) still commit immediately. Cleanup cancels any
    pending frame on unmount.

Tests updated:
  - src/__tests__/main/cue/cue-engine.test.ts: 5 tests that called
    engine.start() expecting silent failure now use expect().toThrow()
  - src/__tests__/main/cue/cue-sleep-wake.test.ts: 1 test updated
    from .not.toThrow() to .toThrow('DB init failed')

Affected surfaces:
  - Cue enable/disable toggle in CueModal (all platforms)
  - Pipeline canvas drag-and-drop (primarily Linux, no regression on macOS)
  - IPC handler cue:enable now returns rejected promise on DB failure
  - No changes to stats-db, build pipeline, or other features
Add `app.startup` as the 8th Cue event type, firing once per application
launch to run initialization workflows (workspace setup, dep installs,
health checks).

System startup semantics:
- Fires only on app launch (isSystemBoot=true), not when toggling Cue on/off
- Deduplicates across YAML hot-reloads via startupFiredKeys Set
- Keys persist across engine stop/start cycles (feature toggling)
- Resets on session removal + next app restart
- Full interop with fan-out, filters, output_prompt, chaining

Pipeline numbering fix:
- createPipeline now derives next number from highest existing pipeline
  name instead of array length, preventing duplicate names after deletion
- Remove unused agentCmd variable in agentStore (lint warning)

22 files changed, 19 new startup tests, 5 yaml validation tests,
1 pipeline numbering test. 23,883 tests passing.
Adds `/// <reference types="@testing-library/jest-dom/vitest" />` to
resolve TS errors for toBeInTheDocument, toHaveStyle, toHaveAttribute
matchers that were missing type augmentation.
Merge latest upstream/rc (39fd85d) with web UX parity feature branch.
Resolved import conflict in App.tsx and fixed unused variable warnings
introduced by the merge across 7 files.

Upstream changes include: TabBar decomposition, CueModal/CueYamlEditor
refactoring, BMAD integration, rich file explorer icons, terminal fixes,
and various Cue pipeline improvements.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…H loading

Show file tree immediately without waiting for directorySize stats to
resolve. Stats now update asynchronously after tree is already rendered.
For SSH sessions, fire a shallow load (depth=1, single round-trip) first
to render root-level structure instantly while the full recursive walk
continues in background.
Engine:
- Replace persistent isSystemBoot with scoped isBootScan that is
  set true only during the start() session scan and cleared immediately
  after, preventing later refreshSession/auto-discovery from firing
  app.startup subs
- DB init failure now returns gracefully instead of throwing, so the
  Electron main process is never blocked at startup
- Wrap cueEngine.start(true) in try-catch at index.ts boot site

UI:
- CueModal toggle error toast is now context-aware (enable vs disable)
- CueHelpModal startup quick-reference example includes prompt field
- CuePipelineEditor cancels pending RAF and merges drag buffer before
  applying non-drag position updates to prevent stale flush

Docs:
- Fix inconsistent event count in configuration validation section
- Clarify prompt_file as alternative to prompt in events doc
…57-mm82lf08

feat: wire feedback modal and IPC wiring
- mergePipelinesWithSavedLayout now restores saved color and name from
  the layout file when pipeline IDs match, preventing colors/names from
  being re-derived by parse order on every reload
- Add fitView effect on selectedPipelineId change so switching from
  All Pipelines to a single pipeline (or vice versa) auto-centers the
  viewport on the visible nodes instead of leaving it at the stacked
  Y-offset position
…port

Add hasHydratedSelectionRef guard so the fitView effect skips the
initial selectedPipelineId change from layout restoration, preventing
it from overwriting the saved viewport restored by usePipelineLayout.
Subsequent user-initiated pipeline switches still trigger fitView.
feat(cue): app.startup trigger, pipeline numbering fix, DB error surfacing
Remove the redundant stats collection toggle from the encore panel.
Enabling the Usage & Stats feature now implicitly enables stats
collection; disabling it turns collection off. The only remaining
configuration is the default lookback window dropdown.
FilePreview.tsx (2,607 lines) → 10-file directory module:
- FilePreview.tsx (1,309) — shell: state, effects, keyboard, content routing
- FilePreviewHeader.tsx (412) — header row, stats bar, back/forward nav popups
- useFilePreviewSearch.ts (422) — search state, 3 highlight effects (code DOM
  marks, markdown CSS Highlight API, edit textarea), match navigation
- filePreviewUtils.ts (220) — 9 pure functions + image cache singleton
- MarkdownImage.tsx (200) — memo'd image loader with cache + SSH support
- FilePreviewToc.tsx (172) — floating TOC button + overlay
- types.ts (85) — FilePreviewProps, FilePreviewHandle, FileStats, TocEntry
- remarkHighlight.ts (54) — ==highlight== remark plugin

Also regenerated src/generated/prompts.ts (was stale — missing feedbackPrompt
export that caused pre-existing npm run lint failure).

45 new filePreviewUtils tests. Existing FilePreview.test.tsx (69 tests) passes
unchanged via barrel import resolution.
reachrazamair and others added 27 commits April 6, 2026 15:04
Seven independent review findings across the four prior commits, all
verified against current code before fixing.

Inline:
- cue-completion-chains.test: the "produces empty sourceOutput when
  completionData is omitted" regression test was leaking engine state by
  never calling engine.stop(), and only checked sourceOutput without
  also pinning outputTruncated. Both fixed.
- session-parser: stop stripping "-recovery" in the UUID branch.
  Production never combines UUID suffix with -recovery (recovery
  sessions are always minted with timestamp suffix in
  group-chat-router.respawnParticipantWithRecovery), so the strip was
  dead code that would silently truncate a legitimate participant name
  ending in "-recovery". The timestamp branch still handles recovery
  correctly. Test fixture updated to assert the corrected behavior.
- index.css: --scrollbar-track was injected by useThemeStyles but never
  consumed (track was hardcoded to transparent in three places). Wired
  it through *::-webkit-scrollbar-track, *::-webkit-scrollbar-corner,
  the .scrollbar-thin track, and the Firefox scrollbar-color fallback,
  with a `transparent` default so initial paint is preserved.

Outside diff:
- GeneralTab: the sync-settings load .catch() only console.error'd.
  Now also reports to Sentry via captureException with a context tag
  per the project's error-handling policy in CLAUDE.md.
- useThemeStyles handleScroll: e.target was force-cast to Element,
  which would crash on Document/Window scroll events. Added an
  `instanceof Element` guard before classList access.

Nits:
- cue-fan-in-tracker: timeout logs (continue + break modes) referenced
  raw sources.length instead of the deduped resolvedSourceIds.size.
  With duplicate references in YAML this would print misleading "1/2
  completed" when fan-in is actually waiting for 0 more. Hoisted
  totalSources once and used it in both log strings.
- exit-listener: the group-chat containment guard returned silently;
  added a logger.warn so production drops surface in logs with
  sessionId + exitCode context.

Validated:
- npm run lint (3x tsc) clean
- npm run lint:eslint clean
- 204 tests across the 8 impacted suites pass
GC_ID_2 (6ba7b810-9dad-11d1-80b4-00c04fd430c8) is the RFC 4122 namespace
UUID — a v1, not v4. The regex in constants.ts accepts the canonical
8-4-4-4-12 hex shape regardless of version, so the test still works
correctly, but the comment was inaccurate. Updated to "Real UUIDs" and
documented that the regex is version-agnostic.

No fixture or behavior changes.
…teEventListeners hook

Move 15 useEventListener('maestro:...') CustomEvent handlers (494 lines)
from App.tsx into a dedicated hook at hooks/remote/useAppRemoteEventListeners.ts.
Reduces App.tsx from ~3,934 to 3,450 lines. No behavior changes.
Replace removed updateSessionWith with setSessions pattern and add
explicit type annotations to fix implicit any errors.
…ines of inline modal rendering

Replace 18 inline standalone modal renderings in App.tsx with the AppStandaloneModals component.
The component self-sources modal open/close state from stores, so App.tsx only passes handler
callbacks. Fixed 7 type mismatches in props interface and replaced broken updateSessionWith
import. App.tsx reduced from 3,470 to 3,137 lines (-333 lines).
cue-hardening: leak fix, panel layout, themed scrollbars + GeneralTab cleanup
…onSwitchCallbacks hook

Move 5 session navigation callbacks and the deep link effect from App.tsx
into a new useSessionSwitchCallbacks hook (229 lines). Extracts
handleProcessMonitorNavigateToSession, handleToastSessionClick,
handleNamedSessionSelect, handleUtilityTabSelect, handleUtilityFileTabSelect,
and the maestro:// deep link useEffect. App.tsx reduced from 3,137 to 3,038
lines (-99 lines). Zero new lint errors or test failures.
…ests

Task 8 final verification: 19 pre-existing lint errors (zero new),
24,537 tests passed (42 pre-existing failures, 107 pending).
All 6 extracted hooks and 2 modal components verified in App.tsx.
…al input)

The "Terminal Mode" input send behavior setting was unreachable — InputArea
doesn't render when inputMode is 'terminal' since xterm.js handles all
terminal input directly. Removed from settings UI, store, metadata,
web server, mobile, and all related tests.
…ments

- Replace direct tab search button with SearchPopover offering tab search and message history search
- Add search functionality to FileExplorerPanel and HistoryPanel with filter inputs
- Separate path display from action buttons in FileExplorerPanel
- Make buttons uniform across panels with text labels that collapse to icons
- Simplify AIOverviewTab by removing inline agent overview generation
- Fix backgroundSecondary type error in NudgeMessageField
- Update TabBar tests for new search popover behavior
…sition

Remove orphaned stats/wakatime state and imports from GeneralTab after
sections moved to dedicated tabs. Fix backgroundSecondary → bgSidebar
theme property. Remove unused AITab/ToolType imports and stale modal
setter destructuring from App.tsx. Add updateSessionWith/updateAiTab
helpers to sessionStore for hooks extracted during decomposition. Clean
up auto-scroll, TerminalOutput, and test files.
Focus ring tests updated for boxShadow-based implementation (was Tailwind
ring classes). DirectorNotes tests updated for correct loading text
("Generating" not "Starting") and tab enabled/disabled state behavior.
…hook modules

Remove dead audioFeedback/TTS code block and unused useSettingsStore
import from useAgentListeners (already removed upstream, missed in
rebase). Add useActiveSession and useFocusAfterRender hooks referenced
by AppStandaloneModals and App.tsx decomposition.
# Conflicts:
#	src/prompts/maestro-system-prompt.md
Add source-level and behavioral regression tests to useAgentListeners
preventing stale TTS/audioFeedback code from being reintroduced.
Add unit tests for useActiveSession and useFocusAfterRender hooks.
The badge was using totalFileCount from fileTreeStats which includes all
files (binaries, etc.), but the search list only contains previewable
files. Removed the totalFileCount prop from the entire component chain.
Adds findNextUnreadSession utility, keyboard shortcut, QuickActionsModal entry,
and tests for cycling through agents with unread tabs.
Tabs now always display an ID marker from creation by using tab.id
(a UUID assigned at creation) as fallback when agentSessionId is not
yet available. Consolidated four duplicate getTabDisplayName
implementations into a single canonical function in tabHelpers.ts.
Also relaxed the rename hotkey gate to work without agentSessionId.
ctx.setSessions was called in 11 places in useMainKeyboardHandler.ts
but was never included in the keyboardHandlerRef.current context object,
causing a TypeError on Cmd+T and other session-mutating shortcuts.
…anup

- Show "New Session" instead of tab UUID marker when no agent session ID
  exists yet, matching user expectation for pre-first-message state
- Add Search button to Auto Run editor bar and make all three buttons
  (Expand, Search, Edit/Preview) flex-grow to fill horizontal space
- Replace toast notifications with success flash for "no unread tabs"
- Remove orphaned JSDoc comments in MergeSessionModal, SendToAgentModal,
  and TabSwitcherModal
- Update tests to reflect new "New Session" fallback behavior
…ni CLI

buildAgentArgs skips batchModeArgs in readOnly mode, which dropped
flags needed for non-interactive execution (tab naming, context
grooming). Codex's --dangerously-bypass-approvals-and-sandbox and
--skip-git-repo-check, and Gemini CLI's -y, are now included in
readOnlyArgs so headless subprocesses don't hang waiting for approval.
Position search bar between content and button bar instead of above
content, keeping it visually adjacent to the editor area.
- Added terminal icon mock to keep TabBar tests rock-solid ✅
- Enabled “Move to First/Last” actions for terminal tabs reordering 🧭
- Fixed terminal tab overlay staying open during button interactions 🛡️
- Model picker now treats manual clearing as a real committed value 🧹
- Introduced a one-click “Clear” button for selected agent model 🎛️
- Added full test coverage for model clear and blur commit flow 🧪
- Add ExternalLink icon import and session ID badge in RightPanel progress display
- Resolve live agent session ID from batch state, busy tab, or active tab
- Capture live agent session ID during Auto Run via onSessionId IPC handler
  (previously skipped for batch sessions entirely)
- Add currentAgentSessionId field to BatchRunState type
- Opened session tab gets (snapshot) title suffix to indicate point-in-time view
- Pass sessionName through onOpenSessionAsTab via useRightPanelProps wrapper

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 7, 2026

Important

Review skipped

Too many files!

This PR contains 281 files, which is 131 over the limit of 150.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f8f660e4-82ea-4fd6-9b06-1b084d8bdaa4

📥 Commits

Reviewing files that changed from the base of the PR and between 74ea8a8 and 9053216.

⛔ Files ignored due to path filters (19)
  • docs/feedback-flow/feedback-attachment-pr491-success.png is excluded by !**/*.png
  • docs/feedback-flow/feedback-button-pr491-success.png is excluded by !**/*.png
  • docs/feedback-flow/feedback-button-pr491.png is excluded by !**/*.png
  • docs/feedback-flow/feedback-issue-created-pr491-success.png is excluded by !**/*.png
  • docs/feedback-flow/feedback-modal-pr491-success.png is excluded by !**/*.png
  • docs/feedback-flow/feedback-session-pr491.png is excluded by !**/*.png
  • docs/feedback-flow/feedback-submit-clicked-pr491-success.png is excluded by !**/*.png
  • docs/screenshots/cue-activity-log.png is excluded by !**/*.png
  • docs/screenshots/cue-pipeline.png is excluded by !**/*.png
  • docs/screenshots/cue-pipelines.png is excluded by !**/*.png
  • docs/screenshots/cue-sessions.png is excluded by !**/*.png
  • docs/screenshots/cue-yaml-editor.png is excluded by !**/*.png
  • docs/screenshots/env-vars.png is excluded by !**/*.png
  • docs/screenshots/feedback-0.png is excluded by !**/*.png
  • docs/screenshots/feedback-1.png is excluded by !**/*.png
  • docs/screenshots/feedback-2.png is excluded by !**/*.png
  • docs/screenshots/feedback-3.png is excluded by !**/*.png
  • docs/screenshots/new-agent-selector.png is excluded by !**/*.png
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (281)
  • .coderabbit.yaml
  • .github/ISSUE_TEMPLATE/bug_report.yml
  • .github/ISSUE_TEMPLATE/config.yml
  • .github/ISSUE_TEMPLATE/feature_request.yml
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • .gitignore
  • .husky/_/.gitignore
  • .husky/_/applypatch-msg
  • .husky/_/commit-msg
  • .husky/_/h
  • .husky/_/husky.sh
  • .husky/_/post-applypatch
  • .husky/_/post-checkout
  • .husky/_/post-commit
  • .husky/_/post-merge
  • .husky/_/post-rewrite
  • .husky/_/pre-applypatch
  • .husky/_/pre-auto-gc
  • .husky/_/pre-commit
  • .husky/_/pre-merge-commit
  • .husky/_/pre-push
  • .husky/_/pre-rebase
  • .husky/_/prepare-commit-msg
  • .husky/pre-merge-commit
  • .prettierignore
  • ARCHITECTURE.md
  • CLAUDE-IPC.md
  • CLAUDE-PATTERNS.md
  • CLAUDE-WIZARD.md
  • CLAUDE.md
  • Plans/rippling-inventing-lamport.md
  • auto-runs/maestro-dedup/07B_SESSION_FIND_SELECTORS.md
  • auto-runs/maestro-dedup/13A_APP_TSX_DECOMPOSITION.md
  • docs/assets/theme-hint.js
  • docs/autorun-playbooks.md
  • docs/bmad-commands.md
  • docs/cli.md
  • docs/configuration.md
  • docs/deep-links.md
  • docs/docs.json
  • docs/encore-features.md
  • docs/env-vars.md
  • docs/features.md
  • docs/feedback.md
  • docs/general-usage.md
  • docs/getting-started.md
  • docs/history.md
  • docs/keyboard-shortcuts.md
  • docs/maestro-cue-advanced.md
  • docs/maestro-cue-configuration.md
  • docs/maestro-cue-events.md
  • docs/maestro-cue-examples.md
  • docs/maestro-cue.md
  • docs/openspec-commands.md
  • docs/releases.md
  • docs/speckit-commands.md
  • docs/ssh-remote-execution.md
  • e2e/autorun-batch.spec.ts
  • e2e/autorun-editing.spec.ts
  • e2e/autorun-sessions.spec.ts
  • e2e/autorun-setup.spec.ts
  • e2e/fixtures/electron-app.ts
  • package.json
  • scripts/refresh-bmad.mjs
  • src/__tests__/cli/commands/auto-run.test.ts
  • src/__tests__/cli/commands/list-sessions.test.ts
  • src/__tests__/cli/commands/open-file.test.ts
  • src/__tests__/cli/commands/send.test.ts
  • src/__tests__/cli/services/agent-spawner.test.ts
  • src/__tests__/cli/services/maestro-client.test.ts
  • src/__tests__/integration/group-chat.integration.test.ts
  • src/__tests__/integration/remote-control.integration.test.ts
  • src/__tests__/integration/symphony.integration.test.ts
  • src/__tests__/main/agents/capabilities.test.ts
  • src/__tests__/main/agents/definitions.test.ts
  • src/__tests__/main/agents/detector.test.ts
  • src/__tests__/main/autorun-folder-validation.test.ts
  • src/__tests__/main/autorun-ipc.test.ts
  • src/__tests__/main/bmad-manager.test.ts
  • src/__tests__/main/constants.test.ts
  • src/__tests__/main/cue/cue-activity-log.test.ts
  • src/__tests__/main/cue/cue-completion-chains.test.ts
  • src/__tests__/main/cue/cue-concurrency.test.ts
  • src/__tests__/main/cue/cue-db.test.ts
  • src/__tests__/main/cue/cue-engine.test.ts
  • src/__tests__/main/cue/cue-event-factory.test.ts
  • src/__tests__/main/cue/cue-executor.test.ts
  • src/__tests__/main/cue/cue-file-watcher.test.ts
  • src/__tests__/main/cue/cue-filter.test.ts
  • src/__tests__/main/cue/cue-github-poller.test.ts
  • src/__tests__/main/cue/cue-ipc-handlers.test.ts
  • src/__tests__/main/cue/cue-multi-hop-chains.test.ts
  • src/__tests__/main/cue/cue-reconciler.test.ts
  • src/__tests__/main/cue/cue-session-lifecycle.test.ts
  • src/__tests__/main/cue/cue-sleep-prevention.test.ts
  • src/__tests__/main/cue/cue-sleep-wake.test.ts
  • src/__tests__/main/cue/cue-startup.test.ts
  • src/__tests__/main/cue/cue-task-scanner.test.ts
  • src/__tests__/main/cue/cue-template-variables.test.ts
  • src/__tests__/main/cue/cue-test-helpers.ts
  • src/__tests__/main/cue/cue-yaml-loader.test.ts
  • src/__tests__/main/deep-links.test.ts
  • src/__tests__/main/group-chat/group-chat-log.test.ts
  • src/__tests__/main/group-chat/session-parser.test.ts
  • src/__tests__/main/ipc/handlers/agents.test.ts
  • src/__tests__/main/ipc/handlers/autorun.test.ts
  • src/__tests__/main/ipc/handlers/bmad.test.ts
  • src/__tests__/main/ipc/handlers/director-notes.test.ts
  • src/__tests__/main/ipc/handlers/feedback.test.ts
  • src/__tests__/main/ipc/handlers/filesystem.test.ts
  • src/__tests__/main/ipc/handlers/git.test.ts
  • src/__tests__/main/ipc/handlers/groupChat.test.ts
  • src/__tests__/main/ipc/handlers/history.test.ts
  • src/__tests__/main/ipc/handlers/notifications.test.ts
  • src/__tests__/main/ipc/handlers/persistence.test.ts
  • src/__tests__/main/ipc/handlers/process.test.ts
  • src/__tests__/main/ipc/handlers/symphony.test.ts
  • src/__tests__/main/ipc/handlers/system.test.ts
  • src/__tests__/main/ipc/handlers/tabNaming.test.ts
  • src/__tests__/main/parsers/codex-output-parser.test.ts
  • src/__tests__/main/performance-optimizations.test.ts
  • src/__tests__/main/preload/agents.test.ts
  • src/__tests__/main/preload/feedback.test.ts
  • src/__tests__/main/preload/files.test.ts
  • src/__tests__/main/preload/fs.test.ts
  • src/__tests__/main/preload/notifications.test.ts
  • src/__tests__/main/process-listeners/data-listener.test.ts
  • src/__tests__/main/process-listeners/error-listener.test.ts
  • src/__tests__/main/process-listeners/exit-listener.test.ts
  • src/__tests__/main/process-listeners/forwarding-listeners.test.ts
  • src/__tests__/main/process-listeners/session-id-listener.test.ts
  • src/__tests__/main/process-listeners/stats-listener.test.ts
  • src/__tests__/main/process-listeners/usage-listener.test.ts
  • src/__tests__/main/process-manager.test.ts
  • src/__tests__/main/process-manager/spawners/PtySpawner.test.ts
  • src/__tests__/main/services/symphony-runner.test.ts
  • src/__tests__/main/shared-history-manager.test.ts
  • src/__tests__/main/stats/auto-run.test.ts
  • src/__tests__/main/storage/codex-session-storage-messages.test.ts
  • src/__tests__/main/stores/utils.test.ts
  • src/__tests__/main/utils/agent-args.test.ts
  • src/__tests__/main/utils/context-groomer.test.ts
  • src/__tests__/main/utils/logger.test.ts
  • src/__tests__/main/utils/symphony-fork.test.ts
  • src/__tests__/main/web-server/handlers/messageHandlers.test.ts
  • src/__tests__/main/web-server/managers/CallbackRegistry.test.ts
  • src/__tests__/main/web-server/web-server-factory.test.ts
  • src/__tests__/performance/AutoRunMemoryLeaks.test.tsx
  • src/__tests__/performance/AutoRunRapidInteractions.test.tsx
  • src/__tests__/renderer/components/AboutModal.test.tsx
  • src/__tests__/renderer/components/AgentSessionsModal.test.tsx
  • src/__tests__/renderer/components/AppAgentModals.test.tsx
  • src/__tests__/renderer/components/AppConfirmModals.test.tsx
  • src/__tests__/renderer/components/AppGroupChatModals.test.tsx
  • src/__tests__/renderer/components/AppGroupModals.test.tsx
  • src/__tests__/renderer/components/AppInfoModals.test.tsx
  • src/__tests__/renderer/components/AppModals-selfSourced.test.tsx
  • src/__tests__/renderer/components/AppSessionModals.test.tsx
  • src/__tests__/renderer/components/AppWorktreeModals.test.tsx
  • src/__tests__/renderer/components/AutoRun.test.tsx
  • src/__tests__/renderer/components/AutoRun/AutoRunAttachmentsPanel.test.tsx
  • src/__tests__/renderer/components/AutoRun/AutoRunBottomPanel.test.tsx
  • src/__tests__/renderer/components/AutoRun/AutoRunEmptyStates.test.tsx
  • src/__tests__/renderer/components/AutoRun/AutoRunErrorBanner.test.tsx
  • src/__tests__/renderer/components/AutoRun/AutoRunToolbar.test.tsx
  • src/__tests__/renderer/components/AutoRunDocumentSelector.test.tsx
  • src/__tests__/renderer/components/AutoRunExpandedModal.test.tsx
  • src/__tests__/renderer/components/AutoRunLightbox.test.tsx
  • src/__tests__/renderer/components/AutoRunSearchBar.test.tsx
  • src/__tests__/renderer/components/AutoRunSessionIsolation.test.tsx
  • src/__tests__/renderer/components/AutoRunSetupModal.test.tsx
  • src/__tests__/renderer/components/AutoRunnerHelpModal.test.tsx
  • src/__tests__/renderer/components/CueHelpModal.test.tsx
  • src/__tests__/renderer/components/CueModal.test.tsx
  • src/__tests__/renderer/components/CueModal/StatusDot.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/CuePipelineEditor.drag.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/PipelineCanvas.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/PipelineContextMenu.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/PipelineSelector.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/PipelineToolbar.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/drawers/AgentDrawer.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/drawers/TriggerDrawer.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/nodes/AgentNode.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/nodes/TriggerNode.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/panels/CueSelect.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/panels/CueSettingsPanel.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/panels/EdgeConfigPanel.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/panels/NodeConfigPanel.test.tsx
  • src/__tests__/renderer/components/CuePipelineEditor/utils/pipelineChainIntegration.test.ts
  • src/__tests__/renderer/components/CuePipelineEditor/utils/pipelineGraph.test.ts
  • src/__tests__/renderer/components/CuePipelineEditor/utils/pipelineLayout.test.ts
  • src/__tests__/renderer/components/CuePipelineEditor/utils/pipelineToYaml.test.ts
  • src/__tests__/renderer/components/CuePipelineEditor/utils/yamlToPipeline.test.ts
  • src/__tests__/renderer/components/CueYamlEditor.test.tsx
  • src/__tests__/renderer/components/DirectorNotes/AIOverviewTab.test.tsx
  • src/__tests__/renderer/components/DirectorNotes/DirectorNotesModal.test.tsx
  • src/__tests__/renderer/components/DirectorNotes/UnifiedHistoryTab.test.tsx
  • src/__tests__/renderer/components/ExecutionQueueBrowser.test.tsx
  • src/__tests__/renderer/components/FeedbackChatView.test.tsx
  • src/__tests__/renderer/components/FileExplorerPanel.test.tsx
  • src/__tests__/renderer/components/FilePreview.test.tsx
  • src/__tests__/renderer/components/FilePreview/filePreviewUtils.test.ts
  • src/__tests__/renderer/components/ForcedParallelWarningModal.test.tsx
  • src/__tests__/renderer/components/GroupChatInput.test.tsx
  • src/__tests__/renderer/components/History/ActivityGraph.test.tsx
  • src/__tests__/renderer/components/History/HistoryEntryItem.test.tsx
  • src/__tests__/renderer/components/History/HistoryFilterToggle.test.tsx
  • src/__tests__/renderer/components/HistoryDetailModal.test.tsx
  • src/__tests__/renderer/components/HistoryHelpModal.test.tsx
  • src/__tests__/renderer/components/HistoryPanel.test.tsx
  • src/__tests__/renderer/components/InlineWizard/WizardInputPanel.test.tsx
  • src/__tests__/renderer/components/InputArea.test.tsx
  • src/__tests__/renderer/components/LogViewer.test.tsx
  • src/__tests__/renderer/components/MainPanel.test.tsx
  • src/__tests__/renderer/components/MainPanel/AgentErrorBanner.test.tsx
  • src/__tests__/renderer/components/MainPanel/CopyNotificationToast.test.tsx
  • src/__tests__/renderer/components/MainPanel/MainPanelContent.test.tsx
  • src/__tests__/renderer/components/MainPanel/MainPanelHeader.test.tsx
  • src/__tests__/renderer/components/MarkdownRenderer.test.tsx
  • src/__tests__/renderer/components/MergeSessionModal.test.tsx
  • src/__tests__/renderer/components/NewInstanceModal.test.tsx
  • src/__tests__/renderer/components/NewInstanceModal/AgentPickerGrid.test.tsx
  • src/__tests__/renderer/components/NewInstanceModal/EditAgentModal.test.tsx
  • src/__tests__/renderer/components/NewInstanceModal/NudgeMessageField.test.tsx
  • src/__tests__/renderer/components/NewInstanceModal/RemotePathStatus.test.tsx
  • src/__tests__/renderer/components/ProcessMonitor.test.tsx
  • src/__tests__/renderer/components/QuickActionsModal.test.tsx
  • src/__tests__/renderer/components/RenameSessionModal.test.tsx
  • src/__tests__/renderer/components/RenameTabModal.test.tsx
  • src/__tests__/renderer/components/RightPanel.test.tsx
  • src/__tests__/renderer/components/ScrollArea.test.tsx
  • src/__tests__/renderer/components/SendToAgentModal.test.tsx
  • src/__tests__/renderer/components/SessionItemCue.test.tsx
  • src/__tests__/renderer/components/SessionList.test.tsx
  • src/__tests__/renderer/components/SessionList/LiveOverlayPanel.test.tsx
  • src/__tests__/renderer/components/SessionList/SidebarActions.test.tsx
  • src/__tests__/renderer/components/Settings/EnvVarsEditor.test.tsx
  • src/__tests__/renderer/components/Settings/searchableSettings.test.ts
  • src/__tests__/renderer/components/Settings/tabs/DisplayTab.test.tsx
  • src/__tests__/renderer/components/Settings/tabs/EncoreTab.test.tsx
  • src/__tests__/renderer/components/Settings/tabs/GeneralTab.test.tsx
  • src/__tests__/renderer/components/SettingsModal.test.tsx
  • src/__tests__/renderer/components/SidebarActions.test.tsx
  • src/__tests__/renderer/components/TabBar.test.tsx
  • src/__tests__/renderer/components/TabSwitcherModal.test.tsx
  • src/__tests__/renderer/components/TerminalOutput.test.tsx
  • src/__tests__/renderer/components/TerminalView.test.tsx
  • src/__tests__/renderer/components/ThinkingStatusPill.test.tsx
  • src/__tests__/renderer/components/UsageDashboard/responsive-layout.test.tsx
  • src/__tests__/renderer/components/UsageDashboard/state-transition-animations.test.tsx
  • src/__tests__/renderer/components/Wizard/WizardContext.test.tsx
  • src/__tests__/renderer/components/Wizard/WizardIntegration.test.tsx
  • src/__tests__/renderer/components/Wizard/services/phaseGenerator.test.ts
  • src/__tests__/renderer/components/Wizard/services/phaseGenerator_ssh.test.ts
  • src/__tests__/renderer/components/Wizard/services/phaseGenerator_stdin.test.ts
  • src/__tests__/renderer/components/Wizard/services/wizardPrompts.test.ts
  • src/__tests__/renderer/components/WorktreeRunSection.test.tsx
  • src/__tests__/renderer/components/XTerminal.test.ts
  • src/__tests__/renderer/components/auto-scroll.test.tsx
  • src/__tests__/renderer/components/shared/AgentConfigPanel.test.tsx
  • src/__tests__/renderer/contexts/InlineWizardContext.test.tsx
  • src/__tests__/renderer/fonts-and-sizing.test.ts
  • src/__tests__/renderer/hooks/batch/batchReducer.test.ts
  • src/__tests__/renderer/hooks/cue/usePipelineLayout.test.ts
  • src/__tests__/renderer/hooks/cue/usePipelineSelection.test.ts
  • src/__tests__/renderer/hooks/cue/usePipelineState.test.ts
  • src/__tests__/renderer/hooks/keyboard/useKeyboardShortcutHelpers.test.ts
  • src/__tests__/renderer/hooks/useActiveSession.test.ts
  • src/__tests__/renderer/hooks/useAgentCapabilities.test.ts
  • src/__tests__/renderer/hooks/useAgentExecution.test.ts
  • src/__tests__/renderer/hooks/useAgentListeners.test.ts
  • src/__tests__/renderer/hooks/useAgentSessionManagement.test.ts
  • src/__tests__/renderer/hooks/useAppInitialization.test.ts
  • src/__tests__/renderer/hooks/useAtMentionCompletion.test.ts
  • src/__tests__/renderer/hooks/useAutoRunAutoFollow.test.ts
  • src/__tests__/renderer/hooks/useAutoRunScrollSync.test.ts
  • src/__tests__/renderer/hooks/useAvailableAgents.test.ts
  • src/__tests__/renderer/hooks/useBatchProcessor.test.ts
  • src/__tests__/renderer/hooks/useContextWindow.test.ts
  • src/__tests__/renderer/hooks/useCopyToClipboard.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@scriptease scriptease closed this Apr 7, 2026
@scriptease
Copy link
Copy Markdown
Author

Wrong branch 😱

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.

8 participants