Skip to content

Merge changes from v1.0.0rc#826

Closed
gsxdsm wants to merge 22 commits intoAutoMaker-Org:mainfrom
gsxdsm:v1.1.0rc
Closed

Merge changes from v1.0.0rc#826
gsxdsm wants to merge 22 commits intoAutoMaker-Org:mainfrom
gsxdsm:v1.1.0rc

Conversation

@gsxdsm
Copy link
Collaborator

@gsxdsm gsxdsm commented Mar 3, 2026

No description provided.

DhanushSantosh and others added 22 commits March 2, 2026 20:23
…on Linux

- Add --ozone-platform-hint=auto before app.whenReady() so Electron
  auto-detects X11 vs Wayland when launched from a desktop entry where
  the display protocol is not guaranteed (fixes immediate crash on
  Fedora/GNOME Wayland sessions)
- Add autoHideMenuBar: true to BrowserWindow so the default Chromium
  File/Edit/View/Help menu bar is hidden by default (still accessible
  via Alt); removes visible Electron significance from the packaged app
- Add scripts/rpm-after-install.sh and wire it via afterInstall in the
  electron-builder RPM config to chmod 4755 chrome-sandbox, ensuring
  the setuid sandbox works on kernels with restricted user namespaces

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- icon-manager.ts: fix production path from '../dist/public' to '../dist'
  Vite copies public/ assets to the root of dist/, not dist/public/, so
  the old path caused electronAppExists() to return null in packaged
  builds — falling through to Electron's default icon in the taskbar
- rpm-after-install.sh: add gtk-update-icon-cache and
  update-desktop-database so GNOME/KDE picks up the installed icon and
  desktop entry immediately without a session restart

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The hicolor icon theme index only lists sizes up to 512x512, so an icon
installed only at 1024x1024 is invisible to GNOME/KDE's theme resolver,
causing both the app launcher and taskbar to show a generic icon.
Additionally, BrowserWindow.icon cannot be read by the window manager
when the file is inside app.asar.

- extraResources: copy logo_larger.png to resources/ (outside asar) so
  it lands at /opt/Automaker/resources/logo_larger.png on install
- linux.desktop.Icon: set to the absolute resources path, bypassing the
  hicolor theme lookup and its size constraints entirely
- icon-manager.ts: on Linux production use process.resourcesPath so
  BrowserWindow receives a real filesystem path the WM can read directly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Changes from fix/agent-output-summary-for-pipeline-steps

* feat: Optimize pipeline summary extraction and fix regex vulnerability

* fix: Use fallback summary for pipeline steps when extraction fails

* fix: Strip follow-up session scaffold from pipeline step fallback summaries
electron-builder v26 rejects arbitrary keys in linux.desktop — the
correct schema wraps custom .desktop overrides inside desktop.entry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Without app.setDesktopName(), the window manager cannot associate the
running Electron process with automaker.desktop. GNOME/KDE fall back to
_NET_WM_ICON which defaults to Electron's own bundled icon.

Calling app.setDesktopName('automaker.desktop') before any window is
created sets the _GTK_APPLICATION_ID hint and XDG app_id so the WM
picks up the desktop entry's Icon for the taskbar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Changes from fix/memory-and-context-mobile-friendly

* fix: Improve file extension detection and add path traversal protection

* refactor: Extract file extension utilities and add path traversal guards

Code review improvements:
- Extract isMarkdownFilename and isImageFilename to shared image-utils.ts
- Remove duplicated code from context-view.tsx and memory-view.tsx
- Add path traversal guard for context fixture utilities (matching memory)
- Add 7 new tests for context fixture path traversal protection
- Total 61 tests pass

Addresses code review feedback from PR AutoMaker-Org#813

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* test: Add e2e tests for profiles crud and board background persistence

* Update apps/ui/playwright.config.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: Add robust test navigation handling and file filtering

* fix: Format NODE_OPTIONS configuration on single line

* test: Update profiles and board background persistence tests

* test: Replace iPhone 13 Pro with Pixel 5 for mobile test consistency

* Update apps/ui/src/components/views/context-view.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: Remove test project directory

* feat: Filter context files by type and improve mobile menu visibility

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix(copilot): correct tool.execution_complete event handling

The CopilotProvider was using incorrect event type and data structure
for tool execution completion events from the @github/copilot-sdk,
causing tool call outputs to be empty.

Changes:
- Update event type from 'tool.execution_end' to 'tool.execution_complete'
- Fix data structure to use nested result.content instead of flat result
- Fix error structure to use error.message instead of flat error
- Add success field to match SDK event structure
- Add tests for empty and missing result handling

This aligns with the official @github/copilot-sdk v0.1.16 types
defined in session-events.d.ts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test(copilot): add edge case test for error with code field

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor(copilot): improve error handling and code quality

Code review improvements:
- Extract magic string '[ERROR]' to TOOL_ERROR_PREFIX constant
- Add null-safe error handling with direct error variable assignment
- Include error codes in error messages for better debugging
- Add JSDoc documentation for tool.execution_complete handler
- Update tests to verify error codes are displayed
- Add missing tool_use_id assertion in error test

These changes improve:
- Code maintainability (no magic strings)
- Debugging experience (error codes now visible)
- Type safety (explicit null checks)
- Test coverage (verify error code formatting)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Changes from fix/bug-fixes-1-0

* test(copilot): add edge case test for error with code field

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Changes from fix/bug-fixes-1-0

* fix: Handle detached HEAD state in worktree discovery and recovery

* fix: Remove unused isDevServerStarting prop and md: breakpoint classes

* fix: Add missing dependency and sanitize persisted cache data

* feat: Ensure NODE_ENV is set to test in vitest configs

* feat: Configure Playwright to run only E2E tests

* fix: Improve PR tracking and dev server lifecycle management

* feat: Add settings-based defaults for planning mode, model config, and custom providers. Fixes AutoMaker-Org#816

* feat: Add worktree and branch selector to graph view

* fix: Add timeout and error handling for worktree HEAD ref resolution

* fix: use absolute icon path and place icon outside asar on Linux

The hicolor icon theme index only lists sizes up to 512x512, so an icon
installed only at 1024x1024 is invisible to GNOME/KDE's theme resolver,
causing both the app launcher and taskbar to show a generic icon.
Additionally, BrowserWindow.icon cannot be read by the window manager
when the file is inside app.asar.

- extraResources: copy logo_larger.png to resources/ (outside asar) so
  it lands at /opt/Automaker/resources/logo_larger.png on install
- linux.desktop.Icon: set to the absolute resources path, bypassing the
  hicolor theme lookup and its size constraints entirely
- icon-manager.ts: on Linux production use process.resourcesPath so
  BrowserWindow receives a real filesystem path the WM can read directly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: use linux.desktop.entry for custom desktop Icon field

electron-builder v26 rejects arbitrary keys in linux.desktop — the
correct schema wraps custom .desktop overrides inside desktop.entry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: set desktop name on Linux so taskbar uses the correct app icon

Without app.setDesktopName(), the window manager cannot associate the
running Electron process with automaker.desktop. GNOME/KDE fall back to
_NET_WM_ICON which defaults to Electron's own bundled icon.

Calling app.setDesktopName('automaker.desktop') before any window is
created sets the _GTK_APPLICATION_ID hint and XDG app_id so the WM
picks up the desktop entry's Icon for the taskbar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Fix: memory and context views mobile friendly (AutoMaker-Org#818)

* Changes from fix/memory-and-context-mobile-friendly

* fix: Improve file extension detection and add path traversal protection

* refactor: Extract file extension utilities and add path traversal guards

Code review improvements:
- Extract isMarkdownFilename and isImageFilename to shared image-utils.ts
- Remove duplicated code from context-view.tsx and memory-view.tsx
- Add path traversal guard for context fixture utilities (matching memory)
- Add 7 new tests for context fixture path traversal protection
- Total 61 tests pass

Addresses code review feedback from PR AutoMaker-Org#813

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* test: Add e2e tests for profiles crud and board background persistence

* Update apps/ui/playwright.config.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: Add robust test navigation handling and file filtering

* fix: Format NODE_OPTIONS configuration on single line

* test: Update profiles and board background persistence tests

* test: Replace iPhone 13 Pro with Pixel 5 for mobile test consistency

* Update apps/ui/src/components/views/context-view.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: Remove test project directory

* feat: Filter context files by type and improve mobile menu visibility

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: Improve test reliability and localhost handling

* chore: Use explicit TEST_USE_EXTERNAL_BACKEND env var for server cleanup

* feat: Add E2E/CI mock mode for provider factory and auth verification

* feat: Add remoteBranch parameter to pull and rebase operations

* chore: Enhance E2E testing setup with worker isolation and auth state management

- Updated .gitignore to include worker-specific test fixtures.
- Modified e2e-tests.yml to implement test sharding for improved CI performance.
- Refactored global setup to authenticate once and save session state for reuse across tests.
- Introduced worker-isolated fixture paths to prevent conflicts during parallel test execution.
- Improved test navigation and loading handling for better reliability.
- Updated various test files to utilize new auth state management and fixture paths.

* fix: Update Playwright configuration and improve test reliability

- Increased the number of workers in Playwright configuration for better parallelism in CI environments.
- Enhanced the board background persistence test to ensure dropdown stability by waiting for the list to populate before interaction, improving test reliability.

* chore: Simplify E2E test configuration and enhance mock implementations

- Updated e2e-tests.yml to run tests in a single shard for streamlined CI execution.
- Enhanced unit tests for worktree list handling by introducing a mock for execGitCommand, improving test reliability and coverage.
- Refactored setup functions to better manage command mocks for git operations in tests.
- Improved error handling in mkdirSafe function to account for undefined stats in certain environments.

* refactor: Improve test configurations and enhance error handling

- Updated Playwright configuration to clear VITE_SERVER_URL, ensuring the frontend uses the Vite proxy and preventing cookie domain mismatches.
- Enhanced MergeRebaseDialog logic to normalize selectedBranch for better handling of various ref formats.
- Improved global setup with a more robust backend health check, throwing an error if the backend is not healthy after retries.
- Refactored project creation tests to handle file existence checks more reliably.
- Added error handling for missing E2E source fixtures to guide setup process.
- Enhanced memory navigation to handle sandbox dialog visibility more effectively.

* refactor: Enhance Git command execution and improve test configurations

- Updated Git command execution to merge environment paths correctly, ensuring proper command execution context.
- Refactored the Git initialization process to handle errors more gracefully and ensure user configuration is set before creating the initial commit.
- Improved test configurations by updating Playwright test identifiers for better clarity and consistency across different project states.
- Enhanced cleanup functions in tests to handle directory removal more robustly, preventing errors during test execution.

* fix: Resolve React hooks errors from duplicate instances in dependency tree

* style: Format alias configuration for improved readability

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: DhanushSantosh <dhanushsantoshs05@gmail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
…-Org#819)

* test(copilot): add edge case test for error with code field

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Changes from fix/bug-fixes-1-0

* refactor(auto-mode): enhance orphaned feature detection and improve project initialization

- Updated detectOrphanedFeatures method to accept preloaded features, reducing redundant disk reads.
- Improved project initialization by creating required directories and files in parallel for better performance.
- Adjusted planning mode handling in UI components to clarify approval requirements for different modes.
- Added refresh functionality for file editor tabs to ensure content consistency with disk state.

These changes enhance performance, maintainability, and user experience across the application.

* feat(orphaned-features): add orphaned features management routes and UI integration

- Introduced new routes for managing orphaned features, including listing, resolving, and bulk resolving.
- Updated the UI to include an Orphaned Features section in project settings and navigation.
- Enhanced the execution service to support new orphaned feature functionalities.

These changes improve the application's capability to handle orphaned features effectively, enhancing user experience and project management.

* fix: Normalize line endings and resolve stale dirty states in file editor

* chore: Update .gitignore and enhance orphaned feature handling

- Added a blank line in .gitignore for better readability.
- Introduced a hash to worktree paths in orphaned feature resolution to prevent conflicts.
- Added validation for target branch existence during orphaned feature resolution.
- Improved prompt formatting in execution service for clarity.
- Enhanced error handling in project selector for project initialization failures.
- Refactored orphaned features section to improve state management and UI responsiveness.

These changes improve code maintainability and user experience when managing orphaned features.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Changes from fix/orphaned-features

* fix: Handle feature migration failures and improve UI accessibility

* feat: Add event emission for worktree deletion and feature migration

* fix: Handle OpenCode model errors and prevent duplicate model IDs

* feat: Add summary dialog and async verify with loading state

* fix: Add type attributes to buttons and improve OpenCode model selection

* fix: Add null checks for onVerify callback and opencode model selection
Playwright requires the first argument to use object destructuring pattern.
Changed `_` to `{}` in feature-deep-link.spec.ts beforeEach.
Two changes:
1. Server: Skip morgan logging for context-exists endpoint (like health check)
2. UI: Use a stable fingerprint (feature IDs + statuses) instead of the
   unstable features array reference as the useEffect dependency. This
   prevents re-checking context for all features on every React Query
   refetch when the actual feature set hasn't changed.
Address PR AutoMaker-Org#825 review feedback:
- Extract duplicated backlog-like status check into shared helper in constants.ts
- Improve spec-parser regex comment to clarify subsection preservation
- Add file path reference in row-actions.tsx comment for traceability

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 3, 2026

Important

Review skipped

Too many files!

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

📥 Commits

Reviewing files that changed from the base of the PR and between 6408f51 and c17c453.

📒 Files selected for processing (300)
  • .geminiignore
  • .github/workflows/e2e-tests.yml
  • .gitignore
  • apps/server/package.json
  • apps/server/src/index.ts
  • apps/server/src/lib/git.ts
  • apps/server/src/lib/settings-helpers.ts
  • apps/server/src/providers/claude-provider.ts
  • apps/server/src/providers/codex-provider.ts
  • apps/server/src/providers/copilot-provider.ts
  • apps/server/src/providers/cursor-provider.ts
  • apps/server/src/providers/gemini-provider.ts
  • apps/server/src/providers/mock-provider.ts
  • apps/server/src/providers/opencode-provider.ts
  • apps/server/src/providers/provider-factory.ts
  • apps/server/src/routes/app-spec/generate-features-from-spec.ts
  • apps/server/src/routes/app-spec/parse-and-create-features.ts
  • apps/server/src/routes/backlog-plan/index.ts
  • apps/server/src/routes/backlog-plan/routes/apply.ts
  • apps/server/src/routes/features/index.ts
  • apps/server/src/routes/features/routes/list.ts
  • apps/server/src/routes/features/routes/orphaned.ts
  • apps/server/src/routes/features/routes/update.ts
  • apps/server/src/routes/fs/routes/read.ts
  • apps/server/src/routes/fs/routes/stat.ts
  • apps/server/src/routes/github/routes/validate-issue.ts
  • apps/server/src/routes/setup/routes/verify-claude-auth.ts
  • apps/server/src/routes/setup/routes/verify-codex-auth.ts
  • apps/server/src/routes/worktree/index.ts
  • apps/server/src/routes/worktree/routes/delete.ts
  • apps/server/src/routes/worktree/routes/init-git.ts
  • apps/server/src/routes/worktree/routes/list-branches.ts
  • apps/server/src/routes/worktree/routes/list.ts
  • apps/server/src/routes/worktree/routes/pull.ts
  • apps/server/src/services/agent-executor-types.ts
  • apps/server/src/services/agent-executor.ts
  • apps/server/src/services/auto-loop-coordinator.ts
  • apps/server/src/services/auto-mode/compat.ts
  • apps/server/src/services/auto-mode/facade.ts
  • apps/server/src/services/codex-model-cache-service.ts
  • apps/server/src/services/dev-server-service.ts
  • apps/server/src/services/event-hook-service.ts
  • apps/server/src/services/execution-service.ts
  • apps/server/src/services/execution-types.ts
  • apps/server/src/services/feature-loader.ts
  • apps/server/src/services/feature-state-manager.ts
  • apps/server/src/services/ntfy-service.ts
  • apps/server/src/services/pipeline-orchestrator.ts
  • apps/server/src/services/pull-service.ts
  • apps/server/src/services/settings-service.ts
  • apps/server/src/services/spec-parser.ts
  • apps/server/src/services/worktree-resolver.ts
  • apps/server/tests/unit/lib/file-editor-store-logic.test.ts
  • apps/server/tests/unit/lib/settings-helpers.test.ts
  • apps/server/tests/unit/providers/codex-provider.test.ts
  • apps/server/tests/unit/providers/copilot-provider.test.ts
  • apps/server/tests/unit/providers/cursor-provider.test.ts
  • apps/server/tests/unit/providers/gemini-provider.test.ts
  • apps/server/tests/unit/routes/app-spec/parse-and-create-features-defaults.test.ts
  • apps/server/tests/unit/routes/backlog-plan/apply.test.ts
  • apps/server/tests/unit/routes/running-agents.test.ts
  • apps/server/tests/unit/routes/worktree/list-detached-head.test.ts
  • apps/server/tests/unit/services/agent-executor-summary.test.ts
  • apps/server/tests/unit/services/agent-executor.test.ts
  • apps/server/tests/unit/services/auto-loop-coordinator.test.ts
  • apps/server/tests/unit/services/auto-mode-facade.test.ts
  • apps/server/tests/unit/services/auto-mode/facade-agent-runner.test.ts
  • apps/server/tests/unit/services/dev-server-event-types.test.ts
  • apps/server/tests/unit/services/dev-server-persistence.test.ts
  • apps/server/tests/unit/services/event-hook-service.test.ts
  • apps/server/tests/unit/services/execution-service.test.ts
  • apps/server/tests/unit/services/feature-state-manager.test.ts
  • apps/server/tests/unit/services/ntfy-service.test.ts
  • apps/server/tests/unit/services/pipeline-orchestrator-prompts.test.ts
  • apps/server/tests/unit/services/pipeline-orchestrator-provider-id.test.ts
  • apps/server/tests/unit/services/pipeline-orchestrator-status-provider.test.ts
  • apps/server/tests/unit/services/pipeline-summary-accumulation.test.ts
  • apps/server/tests/unit/services/settings-service.test.ts
  • apps/server/tests/unit/services/spec-parser.test.ts
  • apps/server/tests/unit/services/worktree-resolver.test.ts
  • apps/server/tests/unit/types/pipeline-types.test.ts
  • apps/server/tests/unit/ui/agent-output-summary-e2e.test.ts
  • apps/server/tests/unit/ui/agent-output-summary-priority.test.ts
  • apps/server/tests/unit/ui/log-parser-mixed-format.test.ts
  • apps/server/tests/unit/ui/log-parser-phase-summary.test.ts
  • apps/server/tests/unit/ui/log-parser-summary.test.ts
  • apps/server/tests/unit/ui/phase-summary-parser.test.ts
  • apps/server/tests/unit/ui/summary-auto-scroll.test.ts
  • apps/server/tests/unit/ui/summary-normalization.test.ts
  • apps/server/tests/unit/ui/summary-source-flow.integration.test.ts
  • apps/ui/.gitignore
  • apps/ui/package.json
  • apps/ui/playwright.config.ts
  • apps/ui/scripts/kill-test-servers.mjs
  • apps/ui/scripts/rpm-after-install.sh
  • apps/ui/scripts/setup-e2e-fixtures.mjs
  • apps/ui/src/components/dialogs/board-background-modal.tsx
  • apps/ui/src/components/dialogs/file-browser-dialog.tsx
  • apps/ui/src/components/dialogs/pr-comment-resolution-dialog.tsx
  • apps/ui/src/components/layout/project-switcher/components/notification-bell.tsx
  • apps/ui/src/components/layout/sidebar/components/project-selector-with-options.tsx
  • apps/ui/src/components/layout/sidebar/hooks/use-navigation.ts
  • apps/ui/src/components/session-manager.tsx
  • apps/ui/src/components/shared/model-override-trigger.tsx
  • apps/ui/src/components/ui/description-image-dropzone.tsx
  • apps/ui/src/components/ui/git-diff-panel.tsx
  • apps/ui/src/components/ui/header-actions-panel.tsx
  • apps/ui/src/components/ui/sheet.tsx
  • apps/ui/src/components/ui/spinner.tsx
  • apps/ui/src/components/ui/xterm-log-viewer.tsx
  • apps/ui/src/components/views/agent-view/components/agent-header.tsx
  • apps/ui/src/components/views/board-view.tsx
  • apps/ui/src/components/views/board-view/components/kanban-card/agent-info-panel.tsx
  • apps/ui/src/components/views/board-view/components/kanban-card/card-actions.tsx
  • apps/ui/src/components/views/board-view/components/kanban-card/card-badges.tsx
  • apps/ui/src/components/views/board-view/components/kanban-card/card-header.tsx
  • apps/ui/src/components/views/board-view/components/kanban-card/kanban-card.tsx
  • apps/ui/src/components/views/board-view/components/kanban-card/summary-dialog.tsx
  • apps/ui/src/components/views/board-view/components/list-view/list-row.tsx
  • apps/ui/src/components/views/board-view/components/list-view/list-view.tsx
  • apps/ui/src/components/views/board-view/components/list-view/row-actions.tsx
  • apps/ui/src/components/views/board-view/components/list-view/status-badge.tsx
  • apps/ui/src/components/views/board-view/components/selection-action-bar.tsx
  • apps/ui/src/components/views/board-view/constants.ts
  • apps/ui/src/components/views/board-view/dialogs/add-feature-dialog.tsx
  • apps/ui/src/components/views/board-view/dialogs/agent-output-modal.constants.ts
  • apps/ui/src/components/views/board-view/dialogs/agent-output-modal.tsx
  • apps/ui/src/components/views/board-view/dialogs/backlog-plan-dialog.tsx
  • apps/ui/src/components/views/board-view/dialogs/completed-features-modal.tsx
  • apps/ui/src/components/views/board-view/dialogs/create-pr-dialog.tsx
  • apps/ui/src/components/views/board-view/dialogs/create-worktree-dialog.tsx
  • apps/ui/src/components/views/board-view/dialogs/edit-feature-dialog.tsx
  • apps/ui/src/components/views/board-view/dialogs/event-content-formatter.ts
  • apps/ui/src/components/views/board-view/dialogs/mass-edit-dialog.tsx
  • apps/ui/src/components/views/board-view/dialogs/merge-rebase-dialog.tsx
  • apps/ui/src/components/views/board-view/dialogs/plan-approval-dialog.tsx
  • apps/ui/src/components/views/board-view/dialogs/stash-changes-dialog.tsx
  • apps/ui/src/components/views/board-view/hooks/use-board-actions.ts
  • apps/ui/src/components/views/board-view/hooks/use-board-background.ts
  • apps/ui/src/components/views/board-view/hooks/use-board-column-features.ts
  • apps/ui/src/components/views/board-view/hooks/use-board-drag-drop.ts
  • apps/ui/src/components/views/board-view/hooks/use-board-effects.ts
  • apps/ui/src/components/views/board-view/hooks/use-board-features.ts
  • apps/ui/src/components/views/board-view/hooks/use-board-persistence.ts
  • apps/ui/src/components/views/board-view/kanban-board.tsx
  • apps/ui/src/components/views/board-view/shared/model-selector.tsx
  • apps/ui/src/components/views/board-view/shared/planning-mode-select.tsx
  • apps/ui/src/components/views/board-view/worktree-panel/components/dev-server-logs-panel.tsx
  • apps/ui/src/components/views/board-view/worktree-panel/components/worktree-actions-dropdown.tsx
  • apps/ui/src/components/views/board-view/worktree-panel/components/worktree-dropdown-item.tsx
  • apps/ui/src/components/views/board-view/worktree-panel/components/worktree-dropdown.tsx
  • apps/ui/src/components/views/board-view/worktree-panel/components/worktree-mobile-dropdown.tsx
  • apps/ui/src/components/views/board-view/worktree-panel/components/worktree-tab.tsx
  • apps/ui/src/components/views/board-view/worktree-panel/hooks/use-dev-server-logs.ts
  • apps/ui/src/components/views/board-view/worktree-panel/hooks/use-dev-servers.ts
  • apps/ui/src/components/views/board-view/worktree-panel/hooks/use-worktrees.ts
  • apps/ui/src/components/views/board-view/worktree-panel/types.ts
  • apps/ui/src/components/views/board-view/worktree-panel/worktree-panel.tsx
  • apps/ui/src/components/views/context-view.tsx
  • apps/ui/src/components/views/dashboard-view.tsx
  • apps/ui/src/components/views/file-editor-view/components/code-editor.tsx
  • apps/ui/src/components/views/file-editor-view/components/editor-tabs.tsx
  • apps/ui/src/components/views/file-editor-view/file-editor-dirty-utils.ts
  • apps/ui/src/components/views/file-editor-view/file-editor-view.tsx
  • apps/ui/src/components/views/file-editor-view/use-file-editor-store.ts
  • apps/ui/src/components/views/github-issues-view.tsx
  • apps/ui/src/components/views/github-issues-view/components/issue-detail-panel.tsx
  • apps/ui/src/components/views/github-issues-view/hooks/use-issue-validation.ts
  • apps/ui/src/components/views/github-issues-view/hooks/use-issues-filter.ts
  • apps/ui/src/components/views/github-prs-view.tsx
  • apps/ui/src/components/views/graph-view-page.tsx
  • apps/ui/src/components/views/graph-view/graph-canvas.tsx
  • apps/ui/src/components/views/graph-view/graph-view.tsx
  • apps/ui/src/components/views/graph-view/hooks/use-graph-nodes.ts
  • apps/ui/src/components/views/interview-view.tsx
  • apps/ui/src/components/views/login-view.tsx
  • apps/ui/src/components/views/memory-view.tsx
  • apps/ui/src/components/views/notifications-view.tsx
  • apps/ui/src/components/views/project-settings-view/config/navigation.ts
  • apps/ui/src/components/views/project-settings-view/hooks/use-project-settings-view.ts
  • apps/ui/src/components/views/project-settings-view/orphaned-features-section.tsx
  • apps/ui/src/components/views/project-settings-view/project-bulk-replace-dialog.tsx
  • apps/ui/src/components/views/project-settings-view/project-settings-view.tsx
  • apps/ui/src/components/views/running-agents-view.tsx
  • apps/ui/src/components/views/settings-view.tsx
  • apps/ui/src/components/views/settings-view/appearance/appearance-section.tsx
  • apps/ui/src/components/views/settings-view/event-hooks/event-hook-dialog.tsx
  • apps/ui/src/components/views/settings-view/event-hooks/event-hooks-section.tsx
  • apps/ui/src/components/views/settings-view/model-defaults/bulk-replace-dialog.tsx
  • apps/ui/src/components/views/settings-view/model-defaults/phase-model-selector.tsx
  • apps/ui/src/components/views/settings-view/providers/opencode-model-configuration.tsx
  • apps/ui/src/components/views/setup-view/steps/cli-setup-step.tsx
  • apps/ui/src/components/views/spec-view/hooks/use-spec-generation.ts
  • apps/ui/src/components/views/terminal-view.tsx
  • apps/ui/src/components/views/terminal-view/terminal-panel.tsx
  • apps/ui/src/electron/utils/icon-manager.ts
  • apps/ui/src/electron/windows/main-window.ts
  • apps/ui/src/hooks/mutations/use-github-mutations.ts
  • apps/ui/src/hooks/queries/use-features.ts
  • apps/ui/src/hooks/queries/use-worktrees.ts
  • apps/ui/src/hooks/use-agent-output-websocket.ts
  • apps/ui/src/hooks/use-auto-mode.ts
  • apps/ui/src/hooks/use-guided-prompts.ts
  • apps/ui/src/hooks/use-settings-migration.ts
  • apps/ui/src/hooks/use-settings-sync.ts
  • apps/ui/src/hooks/use-test-runners.ts
  • apps/ui/src/lib/agent-context-parser.ts
  • apps/ui/src/lib/electron.ts
  • apps/ui/src/lib/http-api-client.ts
  • apps/ui/src/lib/image-utils.ts
  • apps/ui/src/lib/log-parser.ts
  • apps/ui/src/lib/project-init.ts
  • apps/ui/src/lib/query-client.ts
  • apps/ui/src/lib/settings-utils.ts
  • apps/ui/src/lib/summary-selection.ts
  • apps/ui/src/lib/utils.ts
  • apps/ui/src/main.ts
  • apps/ui/src/routes/__root.tsx
  • apps/ui/src/routes/board.lazy.tsx
  • apps/ui/src/routes/board.tsx
  • apps/ui/src/store/app-store.ts
  • apps/ui/src/store/types/project-types.ts
  • apps/ui/src/store/types/state-types.ts
  • apps/ui/src/store/ui-cache-store.ts
  • apps/ui/src/types/electron.d.ts
  • apps/ui/tests/agent/start-new-chat-session.spec.ts
  • apps/ui/tests/context/add-context-image.spec.ts
  • apps/ui/tests/context/context-file-management.spec.ts
  • apps/ui/tests/context/delete-context-file.spec.ts
  • apps/ui/tests/context/desktop-context-view.spec.ts
  • apps/ui/tests/e2e-testing-guide.md
  • apps/ui/tests/features/edit-feature.spec.ts
  • apps/ui/tests/features/feature-deep-link.spec.ts
  • apps/ui/tests/features/opus-thinking-level-none.spec.ts
  • apps/ui/tests/features/responsive/agent-output-modal-responsive.spec.ts
  • apps/ui/tests/features/running-task-card-display.spec.ts
  • apps/ui/tests/features/success-log-contrast.spec.ts
  • apps/ui/tests/global-setup.ts
  • apps/ui/tests/global-teardown.ts
  • apps/ui/tests/memory/desktop-memory-view.spec.ts
  • apps/ui/tests/profiles/profiles-crud.spec.ts
  • apps/ui/tests/projects/board-background-persistence.spec.ts
  • apps/ui/tests/projects/new-project-creation.spec.ts
  • apps/ui/tests/projects/open-existing-project.spec.ts
  • apps/ui/tests/settings/event-hooks-settings.spec.ts
  • apps/ui/tests/settings/settings-startup-sync-race.spec.ts
  • apps/ui/tests/setup.ts
  • apps/ui/tests/unit/components/agent-info-panel-merge-conflict.test.tsx
  • apps/ui/tests/unit/components/agent-info-panel.test.tsx
  • apps/ui/tests/unit/components/agent-output-modal-constants.test.ts
  • apps/ui/tests/unit/components/agent-output-modal-integration.test.tsx
  • apps/ui/tests/unit/components/agent-output-modal-responsive.test.tsx
  • apps/ui/tests/unit/components/card-actions.test.tsx
  • apps/ui/tests/unit/components/card-badges.test.tsx
  • apps/ui/tests/unit/components/event-content-formatter.test.ts
  • apps/ui/tests/unit/components/feature-creation-defaults.test.ts
  • apps/ui/tests/unit/components/mobile-terminal-shortcuts.test.tsx
  • apps/ui/tests/unit/components/phase-model-selector.test.tsx
  • apps/ui/tests/unit/components/pr-comment-resolution-pr-info.test.ts
  • apps/ui/tests/unit/components/worktree-panel-props.test.ts
  • apps/ui/tests/unit/hooks/use-board-column-features.test.ts
  • apps/ui/tests/unit/hooks/use-dev-servers.test.ts
  • apps/ui/tests/unit/hooks/use-features-cache.test.ts
  • apps/ui/tests/unit/hooks/use-guided-prompts.test.ts
  • apps/ui/tests/unit/hooks/use-media-query.test.ts
  • apps/ui/tests/unit/hooks/use-test-runners-deps.test.ts
  • apps/ui/tests/unit/lib/agent-context-parser.test.ts
  • apps/ui/tests/unit/lib/settings-utils.test.ts
  • apps/ui/tests/unit/lib/summary-selection.test.ts
  • apps/ui/tests/unit/lint-fixes-navigator-type.test.ts
  • apps/ui/tests/unit/lint-fixes-type-safety.test.ts
  • apps/ui/tests/unit/store/app-store-recently-completed.test.ts
  • apps/ui/tests/unit/store/ui-cache-store-worktree.test.ts
  • apps/ui/tests/utils/api/client.ts
  • apps/ui/tests/utils/cleanup-test-dirs.ts
  • apps/ui/tests/utils/components/dialogs.ts
  • apps/ui/tests/utils/core/constants.ts
  • apps/ui/tests/utils/core/interactions.ts
  • apps/ui/tests/utils/core/safe-paths.ts
  • apps/ui/tests/utils/core/waiting.ts
  • apps/ui/tests/utils/git/worktree.ts
  • apps/ui/tests/utils/index.ts
  • apps/ui/tests/utils/navigation/views.ts
  • apps/ui/tests/utils/project/fixtures.spec.ts
  • apps/ui/tests/utils/project/fixtures.ts
  • apps/ui/tests/utils/project/setup.ts
  • apps/ui/tests/utils/views/agent.ts
  • apps/ui/tests/utils/views/board.ts
  • apps/ui/tests/utils/views/context.ts
  • apps/ui/tests/utils/views/memory.ts
  • apps/ui/tests/utils/views/profiles.ts
  • apps/ui/vite.config.mts
  • apps/ui/vitest.config.ts
  • libs/platform/tests/terminal-theme-colors.test.ts
  • libs/prompts/src/defaults.ts
  • libs/types/package.json
  • libs/types/src/event.ts
  • libs/types/src/feature.ts
  • libs/types/src/index.ts
  • libs/types/src/issue-validation.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
  • Post copyable unit tests in a comment

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.

@gsxdsm gsxdsm closed this Mar 3, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request integrates a wide array of enhancements and fixes from a release candidate branch, focusing on improving the core AI agent functionality, strengthening Git and worktree management, and refining the user interface. Key updates include more robust handling of AI model providers, persistent dev server states, and a new notification system. The changes aim to deliver a more stable, responsive, and feature-rich experience for autonomous development workflows.

Highlights

  • AI Agent Enhancements: Improved AI agent capabilities with refined model/provider resolution, enhanced pipeline summary accumulation, and better handling of task summaries. A new mock provider was added for robust E2E/CI testing.
  • Git & Worktree Management: Significantly improved Git integration, including extended PATH for git commands, robust init-git handler, and enhanced worktree listing with detached HEAD state recovery. New routes and logic were added for detecting and resolving orphaned features.
  • User Interface & Experience: The UI received updates for better responsiveness, improved display of agent information (including model details and task summaries), and enhanced navigation for deep linking to features. New badges were introduced for merge conflicts and plan approval states.
  • System Robustness & Persistence: Dev server state is now persisted across restarts, preventing premature auto_mode_idle events. File system operations were made more resilient with improved ENOENT error handling and 404 responses for missing optional files. Global settings now include wipe protection for ntfyEndpoints.
  • Notifications & Event Hooks: Introduced support for ntfy event hooks, allowing custom push notifications for various system events. Notification titles for feature errors now use the feature's title for better context.
  • Build & Testing Infrastructure: The project version was bumped to 1.0.0. Playwright E2E tests now run in parallel with improved server startup and environment configuration. New unit tests were added for various core functionalities, including file editor dirty state logic, provider resolution, and pipeline summary accumulation.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • .geminiignore
    • Added a new ignore file for Gemini CLI to prevent scanning large directories.
  • .gitignore
    • Added new patterns to ignore test-related directories and files.
  • apps/server/package.json
    • Updated the package version to 1.0.0.
  • apps/server/src/index.ts
    • Added /api/auto-mode/context-exists to the request logging skip list.
    • Refactored devServerService.setEventEmitter to devServerService.initialize for better service initialization.
    • Modified resumeInterruptedFeatures logic to always attempt resuming features without a totalReconciled check.
    • Passed featureLoader to createWorktreeRoutes.
  • apps/server/src/lib/git.ts
    • Extended the system PATH for Git commands to improve reliability in various environments (e.g., Electron, CI).
  • apps/server/src/lib/settings-helpers.ts
    • Refactored provider and model resolution logic into a new resolveProviderContext function and introduced ProviderContextResult interface.
  • apps/server/src/providers/claude-provider.ts
    • Added a comment clarifying that Claude models do not use a provider prefix.
  • apps/server/src/providers/codex-provider.ts
    • Modified validateBareModelId to correctly handle codex as an expected model prefix.
  • apps/server/src/providers/copilot-provider.ts
    • Renamed SdkToolExecutionEndEvent to SdkToolExecutionCompleteEvent and updated its data structure.
    • Improved error message formatting for tool execution results, including optional error codes.
  • apps/server/src/providers/cursor-provider.ts
    • Modified validateBareModelId to correctly handle cursor as an expected model prefix and noted Gemini model prefix handling.
  • apps/server/src/providers/gemini-provider.ts
    • Modified validateBareModelId to correctly handle gemini as an expected model prefix.
  • apps/server/src/providers/mock-provider.ts
    • Added a new MockProvider for E2E and CI testing purposes.
  • apps/server/src/providers/opencode-provider.ts
    • Improved model display name formatting to correctly handle nested model IDs and tier/pricing suffixes.
  • apps/server/src/providers/provider-factory.ts
    • Integrated the new MockProvider for E2E/CI testing and added mock agent logic to getProviderNameForModel and getProviderForModelId.
  • apps/server/src/routes/app-spec/generate-features-from-spec.ts
    • Passed settingsService to parseAndCreateFeatures function.
  • apps/server/src/routes/app-spec/parse-and-create-features.ts
    • Implemented logic to apply default model and planning settings to newly generated features.
  • apps/server/src/routes/backlog-plan/index.ts
    • Passed settingsService to createApplyHandler.
  • apps/server/src/routes/backlog-plan/routes/apply.ts
    • Modified to apply default model and planning settings when creating features from a backlog plan.
  • apps/server/src/routes/features/index.ts
    • Added new routes for orphaned feature management: /orphaned, /orphaned/resolve, and /orphaned/bulk-resolve.
  • apps/server/src/routes/features/routes/list.ts
    • Modified detectOrphanedFeatures to accept an optional array of preloaded features.
  • apps/server/src/routes/features/routes/orphaned.ts
    • Added a new file containing logic for detecting and resolving orphaned features.
  • apps/server/src/routes/features/routes/update.ts
    • Added a null check for currentFeature before accessing its status.
  • apps/server/src/routes/fs/routes/read.ts
    • Expanded the list of OPTIONAL_FILES and improved ENOENT error handling for optional files.
  • apps/server/src/routes/fs/routes/stat.ts
    • Returned a 404 status for ENOENT errors in the stat handler.
  • apps/server/src/routes/github/routes/validate-issue.ts
    • Updated model/provider resolution to use resolveProviderContext and added providerId to the request body.
  • apps/server/src/routes/setup/routes/verify-claude-auth.ts
    • Added a mock agent check to skip real API calls in E2E/CI mock mode.
  • apps/server/src/routes/setup/routes/verify-codex-auth.ts
    • Added a mock agent check to skip real API calls in E2E/CI mock mode.
  • apps/server/src/routes/worktree/index.ts
    • Added featureLoader to createWorktreeRoutes and passed it to createDeleteHandler.
  • apps/server/src/routes/worktree/routes/delete.ts
    • Modified createDeleteHandler to emit a worktree:deleted event and move associated features to the main worktree.
  • apps/server/src/routes/worktree/routes/init-git.ts
    • Improved the init-git handler for robustness, including user config setup and partial cleanup on failure.
  • apps/server/src/routes/worktree/routes/list-branches.ts
    • Switched to execGitCommand for git operations and improved remote branch fetching.
  • apps/server/src/routes/worktree/routes/list.ts
    • Enhanced worktree listing to detect detached HEAD states, recover branch names, and improve PR info handling.
  • apps/server/src/routes/worktree/routes/pull.ts
    • Added a remoteBranch option to performPull for explicit branch pulling.
  • apps/server/src/services/agent-executor-types.ts
    • Added a status field to AgentExecutionOptions.
  • apps/server/src/services/agent-executor.ts
    • Implemented pipeline summary extraction and fallback logic, and updated updateTaskStatus to include task summary.
  • apps/server/src/services/auto-loop-coordinator.ts
    • Refined auto_mode_idle event emission logic to prevent premature idle events and introduced sleep interval constants.
  • apps/server/src/services/auto-mode/compat.ts
    • Modified detectOrphanedFeatures to accept an optional array of preloaded features.
  • apps/server/src/services/auto-mode/facade.ts
    • Updated model/provider resolution to use resolveProviderContext, added isFeatureEligibleForAutoMode helper, and passed status and providerId to AgentExecutor.
  • apps/server/src/services/codex-model-cache-service.ts
    • Added gpt-5.3-codex to the premium tier inference logic.
  • apps/server/src/services/dev-server-service.ts
    • Added persistence for running dev servers across restarts and improved URL detection mechanisms.
  • apps/server/src/services/event-hook-service.ts
    • Added support for ntfy event hooks.
  • apps/server/src/services/execution-service.ts
    • Refactored buildFeaturePrompt, passed providerId to runAgentFn, and improved worktree handling.
  • apps/server/src/services/execution-types.ts
    • Added providerId to RunAgentFn options.
  • apps/server/src/services/feature-loader.ts
    • Added a default createdAt timestamp to the create method.
  • apps/server/src/services/feature-state-manager.ts
    • Enhanced summary saving for pipeline features (accumulation), updated task status to include summary, and added notification handling for auto-mode errors.
  • apps/server/src/services/ntfy-service.ts
    • Added a new service for ntfy.sh notifications.
  • apps/server/src/services/pipeline-orchestrator.ts
    • Passed status and providerId to runAgentFn and added mandatory summary output instructions to pipeline prompts.
  • apps/server/src/services/pull-service.ts
    • Added a remoteBranch option to performPull for explicit branch pulling.
  • apps/server/src/services/settings-service.ts
    • Added wipe protection for ntfyEndpoints and included ntfyEndpoints in global settings.
  • apps/server/src/services/spec-parser.ts
    • Enhanced detectTaskCompleteMarker to extract task summary and extractSummary to include subsections.
  • apps/server/src/services/worktree-resolver.ts
    • Added branch name normalization for improved consistency.
  • apps/server/tests/unit/lib/file-editor-store-logic.test.ts
    • Added new unit tests for file editor dirty state logic.
  • apps/server/tests/unit/lib/settings-helpers.test.ts
    • Added new unit tests for provider and model resolution logic.
  • apps/server/tests/unit/providers/codex-provider.test.ts
    • Added integration tests for validateBareModelId with Codex provider.
  • apps/server/tests/unit/providers/copilot-provider.test.ts
    • Updated unit tests for copilot-provider.ts to reflect tool.execution_complete event changes.
  • apps/server/tests/unit/providers/cursor-provider.test.ts
    • Added unit tests for Cursor Gemini models support and validateBareModelId integration.
  • apps/server/tests/unit/providers/gemini-provider.test.ts
    • Added integration tests for validateBareModelId with Gemini provider.
  • apps/server/tests/unit/routes/app-spec/parse-and-create-features-defaults.test.ts
    • Added new unit tests for default fields applied to features created by parseAndCreateFeatures.
  • apps/server/tests/unit/routes/backlog-plan/apply.test.ts
    • Added new unit tests for createApplyHandler to verify default feature model and planning settings application.
  • apps/server/tests/unit/routes/running-agents.test.ts
    • Updated unit tests to include model and provider information for running agents.
  • apps/server/tests/unit/routes/worktree/list-detached-head.test.ts
    • Added new unit tests for worktree list endpoint handling of detached HEAD state and PR tracking precedence.
  • apps/server/tests/unit/services/agent-executor-summary.test.ts
    • Added new unit tests for AgentExecutor summary extraction and pipeline step summary fallback.
  • apps/server/tests/unit/services/agent-executor.test.ts
    • Added unit tests for passing claudeCompatibleProvider to executeQuery options and pipeline summary fallback with scaffold stripping.
  • apps/server/tests/unit/services/auto-loop-coordinator.test.ts
    • Added new unit tests for auto_mode_idle emission timing and idle check fixes.
  • apps/server/tests/unit/services/auto-mode-facade.test.ts
    • Added new unit tests for AutoModeServiceFacade agent runner, focusing on provider resolution and passthrough.
  • apps/server/tests/unit/services/dev-server-event-types.test.ts
    • Added new unit tests for DevServerService event types.
  • apps/server/tests/unit/services/dev-server-persistence.test.ts
    • Added new unit tests for DevServerService persistence and sync functionalities.
  • apps/server/tests/unit/services/event-hook-service.test.ts
    • Added new unit tests for ntfy event hook execution and variable substitution.
  • apps/server/tests/unit/services/execution-service.test.ts
    • Updated unit tests for ExecutionService to pass providerId to runAgentFn and handle worktree not found scenarios.
  • apps/server/tests/unit/services/feature-state-manager.test.ts
    • Updated unit tests for FeatureStateManager to include notification title logic, pipeline summary accumulation, and task summary updates.
  • apps/server/tests/unit/services/ntfy-service.test.ts
    • Added new unit tests for NtfyService covering validation, sending notifications, and variable substitution.
  • apps/server/tests/unit/services/pipeline-orchestrator-prompts.test.ts
    • Added new unit tests for PipelineOrchestrator prompts, ensuring mandatory summary requirement.
  • apps/server/tests/unit/services/pipeline-orchestrator-provider-id.test.ts
    • Added new unit tests for PipelineOrchestrator providerId passthrough.
  • apps/server/tests/unit/services/pipeline-orchestrator-status-provider.test.ts
    • Added new unit tests for PipelineOrchestrator status and providerId coexistence in options.
  • apps/server/tests/unit/services/pipeline-summary-accumulation.test.ts
    • Added new integration tests for pipeline summary accumulation across multiple steps.
  • apps/server/tests/unit/services/settings-service.test.ts
    • Added new unit tests for SettingsService covering ntfyEndpoints wipe protection and migration.
  • apps/server/tests/unit/services/spec-parser.test.ts
    • Updated unit tests for spec-parser.ts to include task summary extraction and improved summary section parsing.
  • apps/server/tests/unit/services/worktree-resolver.test.ts
    • Updated unit tests for WorktreeResolver to include branch name normalization.
  • apps/server/tests/unit/types/pipeline-types.test.ts
    • Added new unit tests for isPipelineStatus helper function.
  • apps/server/tests/unit/ui/agent-output-summary-e2e.test.ts
    • Added new end-to-end integration tests for agent output summary display flow.
  • apps/server/tests/unit/ui/agent-output-summary-priority.test.ts
    • Added new unit tests for agent output summary priority logic.
  • apps/server/tests/unit/ui/log-parser-mixed-format.test.ts
    • Added new unit tests for log-parser mixed summary format compatibility.
  • apps/server/tests/unit/ui/log-parser-phase-summary.test.ts
    • Added new unit tests for log-parser phase summary parsing functions.
  • apps/server/tests/unit/ui/log-parser-summary.test.ts
    • Added new unit tests for the UI's log-parser extractSummary() function.
  • apps/server/tests/unit/ui/summary-auto-scroll.test.ts
    • Added new unit tests for summary auto-scroll detection logic.
  • apps/server/tests/unit/ui/summary-normalization.test.ts
    • Added new unit tests for summary normalization between UI components and parser functions.
  • apps/server/tests/unit/ui/summary-source-flow.integration.test.ts
    • Added new integration tests for summary source flow.
  • apps/ui/.gitignore
    • Added tests/.auth/ to .gitignore.
  • apps/ui/package.json
    • Updated the UI package version to 1.0.0.
    • Added desktopName field for Linux desktop entry.
    • Added new testing dependencies: @testing-library/jest-dom, @testing-library/react, @testing-library/user-event, jsdom.
  • apps/ui/playwright.config.ts
    • Updated Playwright configuration for parallelism, improved server startup, and added e2eServerPath for Git.
    • Increased Node.js memory limit for tests.
    • Cleared VITE_SERVER_URL to force frontend to use Vite proxy.
  • apps/ui/scripts/kill-test-servers.mjs
    • Updated USE_EXTERNAL_SERVER logic to match Playwright config semantics.
  • apps/ui/scripts/rpm-after-install.sh
    • Added a new script for RPM post-install actions, including chmod for chrome-sandbox and icon cache updates.
  • apps/ui/scripts/setup-e2e-fixtures.mjs
    • Added creation of .automaker/context directory and context-metadata.json for E2E fixtures.
  • apps/ui/src/components/dialogs/board-background-modal.tsx
    • Adjusted SheetHeader padding for better layout.
  • apps/ui/src/components/dialogs/file-browser-dialog.tsx
    • Added addRecentFolder to the dependency array of useEffect.
  • apps/ui/src/components/dialogs/pr-comment-resolution-dialog.tsx
    • Updated model/thinking/reasoning normalization, added providerId, planningMode, requirePlanApproval, dependencies, and prUrl to created features.
  • apps/ui/src/components/layout/project-switcher/components/notification-bell.tsx
    • Added AlertCircle icon for error notifications and deep linking to the board with a feature ID.
  • apps/ui/src/components/layout/sidebar/components/project-selector-with-options.tsx
    • Changed setCurrentProjectWithInit to fire-and-forget for initializeProject and added toast for initialization errors.
  • apps/ui/src/components/layout/sidebar/hooks/use-navigation.ts
    • Removed projects.length from the dependency array of useNavigation.
  • apps/ui/src/components/session-manager.tsx
    • Improved session creation to select the new session immediately before invalidating the cache.
  • apps/ui/src/components/shared/model-override-trigger.tsx
    • Added providerMatch to the model override logic.
  • apps/ui/src/components/ui/description-image-dropzone.tsx
    • Added setPreviewImages to the dependency array of handleDrop and removeImage.
  • apps/ui/src/components/ui/git-diff-panel.tsx
    • Memoized the files array for stability and removed projectPath from dependency arrays in handleStageAll and handleUnstageAll.
  • apps/ui/src/components/ui/header-actions-panel.tsx
    • Added data-testid to the header actions panel trigger.
  • apps/ui/src/components/ui/sheet.tsx
    • Adjusted SheetContent close button styling for better positioning.
  • apps/ui/src/components/ui/spinner.tsx
    • Added data-testid to the spinner component.
  • apps/ui/src/components/ui/xterm-log-viewer.tsx
    • Added eslint-disable-next-line for useEffect dependencies.
  • apps/ui/src/components/views/agent-view/components/agent-header.tsx
    • Improved responsiveness and added aria-label to the clear chat button.
  • apps/ui/src/components/views/board-view.tsx
    • Added initialFeatureId prop for deep linking, refined runningAutoTasksAllWorktrees selector, and passed stopFeature to useBoardActions.
  • apps/ui/src/components/views/board-view/components/kanban-card/agent-info-panel.tsx
    • Added claudeCompatibleProviders to modelFormatOptions, taskSummaryMap, and effectiveSummary logic.
    • Updated shouldFetchData to include merge_conflict status.
    • Added task.summary to effective todos.
    • Expanded conditions for showing agent info panel to include effectiveSummary.
  • apps/ui/src/components/views/board-view/components/kanban-card/card-actions.tsx
    • Added showBacklogLogsButton and RotateCcw icon for merge conflicts.
    • Expanded conditions for showing actions to include merge_conflict status.
  • apps/ui/src/components/views/board-view/components/kanban-card/card-badges.tsx
    • Added merge_conflict badge and plan-approval badge.
  • apps/ui/src/components/views/board-view/components/kanban-card/card-header.tsx
    • Added claudeCompatibleProviders to modelFormatOptions and showBacklogLogsButton.
    • Expanded conditions for showing actions to include merge_conflict status.
  • apps/ui/src/components/views/board-view/components/kanban-card/kanban-card.tsx
    • Added merge_conflict to various status checks for visual treatment and selection logic.
  • apps/ui/src/components/views/board-view/components/kanban-card/summary-dialog.tsx
    • Refactored to support multi-phase summaries, added LogViewer, and view mode tabs.
    • Implemented step navigator for multi-phase summaries.
  • apps/ui/src/components/views/board-view/components/list-view/list-row.tsx
    • Added plan-approval badge and improved createdAt sorting by extracting timestamp from feature ID if createdAt is missing.
  • apps/ui/src/components/views/board-view/components/list-view/list-view.tsx
    • Added sortNewestCardOnTop prop and effectiveSortConfig for sorting features.
  • apps/ui/src/components/views/board-view/components/list-view/row-actions.tsx
    • Added merge_conflict status to primary action logic and isRunningTask actions.
    • Refactored setOpen to use useCallback.
  • apps/ui/src/components/views/board-view/constants.ts
    • Added isBacklogLikeStatus helper function and included merge_conflict in BASE_STATUS_DISPLAY and getStatusOrder.
  • apps/ui/src/components/views/board-view/dialogs/add-feature-dialog.tsx
    • Updated requirePlanApproval logic, used normalizeModelEntry, and added providerId to feature data.
  • apps/ui/src/lib/agent-context-parser.ts
    • Added formatModelName to display provider-specific model names.
  • apps/ui/src/lib/log-parser.ts
    • Added parseAllPhaseSummaries, extractPhaseSummary, extractImplementationSummary, and isAccumulatedSummary for multi-phase summary parsing.
  • apps/ui/src/lib/summary-selection.ts
    • Added getFirstNonEmptySummary helper for selecting the most relevant summary.
  • apps/ui/src/lib/utils.ts
    • Added formatRelativeTime and normalizeModelEntry helper functions.
  • apps/ui/src/routes/__root.tsx
    • Added initialFeatureId to BoardView component.
  • apps/ui/src/store/app-store.ts
    • Added claudeCompatibleProviders to the store and defaultSortNewestCardOnTop setting.
  • apps/ui/src/store/notifications-store.ts
    • Added formatRelativeTime helper.
  • apps/ui/src/store/types.ts
    • Added prUrl to Feature type.
  • apps/ui/tests/global-setup.ts
    • Updated global setup to use AUTH_STATE_PATH.
  • apps/ui/tests/global-teardown.ts
    • Added global teardown script.
  • apps/ui/tests/unit/components/dialogs/add-feature-dialog.test.tsx
    • Updated unit tests for AddFeatureDialog to reflect requirePlanApproval logic and model entry normalization.
  • apps/ui/tests/unit/components/dialogs/pr-comment-resolution-dialog.test.tsx
    • Updated unit tests for PRCommentResolutionDialog to reflect model entry normalization and new feature fields.
  • apps/ui/tests/unit/components/layout/project-switcher/notification-bell.test.tsx
    • Updated unit tests for NotificationBell to include error notification types and deep linking.
  • apps/ui/tests/unit/components/layout/sidebar/project-selector-with-options.test.tsx
    • Updated unit tests for ProjectSelectorWithOptions to reflect fire-and-forget initializeProject.
  • apps/ui/tests/unit/components/session-manager.test.tsx
    • Updated unit tests for SessionManager to reflect improved session creation logic.
  • apps/ui/tests/unit/components/shared/model-override-trigger.test.tsx
    • Updated unit tests for ModelOverrideTrigger to include providerId in override logic.
  • apps/ui/tests/unit/components/ui/git-diff-panel.test.tsx
    • Updated unit tests for GitDiffPanel to reflect memoized files array and updated staging action dependencies.
  • apps/ui/tests/unit/components/views/agent-view/agent-header.test.tsx
    • Updated unit tests for AgentHeader to reflect responsiveness and aria-label changes.
  • apps/ui/tests/unit/components/views/board-view/agent-info-panel.test.tsx
    • Updated unit tests for AgentInfoPanel to reflect new model formatting, task summary, and summary display logic.
  • apps/ui/tests/unit/components/views/board-view/board-view.test.tsx
    • Updated unit tests for BoardView to reflect initialFeatureId deep linking and runningAutoTasksAllWorktrees selector changes.
  • apps/ui/tests/unit/components/views/board-view/card-actions.test.tsx
    • Updated unit tests for CardActions to reflect merge_conflict status and showBacklogLogsButton.
  • apps/ui/tests/unit/components/views/board-view/card-badges.test.tsx
    • Updated unit tests for CardBadges to reflect merge_conflict and plan-approval badges.
  • apps/ui/tests/unit/components/views/board-view/card-header.test.tsx
    • Updated unit tests for CardHeaderSection to reflect new model formatting and showBacklogLogsButton.
  • apps/ui/tests/unit/components/views/board-view/kanban-card.test.tsx
    • Updated unit tests for KanbanCard to reflect merge_conflict status handling.
  • apps/ui/tests/unit/components/views/board-view/list-row.test.tsx
    • Updated unit tests for ListRow to reflect plan-approval badge and improved createdAt sorting.
  • apps/ui/tests/unit/components/views/board-view/list-view.test.tsx
    • Updated unit tests for ListView to reflect sortNewestCardOnTop prop.
  • apps/ui/tests/unit/components/views/board-view/row-actions.test.tsx
    • Updated unit tests for RowActions to reflect merge_conflict status and setOpen callback.
  • apps/ui/tests/unit/components/views/board-view/summary-dialog.test.tsx
    • Updated unit tests for SummaryDialog to reflect multi-phase summary support and view mode tabs.
  • apps/ui/tests/unit/lib/utils.test.ts
    • Updated unit tests for utils.ts to reflect modelSupportsThinking removal and normalizeModelEntry addition.
  • apps/ui/tests/unit/store/app-store.test.ts
    • Updated unit tests for app-store.ts to reflect claudeCompatibleProviders and defaultSortNewestCardOnTop settings.
  • apps/ui/tests/unit/store/notifications-store.test.ts
    • Updated unit tests for notifications-store.ts to reflect formatRelativeTime helper.
  • apps/ui/tests/unit/store/settings-store.test.ts
    • Updated unit tests for settings-store.ts to reflect ntfyEndpoints migration.
  • apps/ui/tests/unit/store/worktrees-store.test.ts
    • Updated unit tests for worktrees-store.ts to reflect worktree:deleted event handling.
  • apps/ui/tests/unit/utils/test-utils.tsx
    • Updated unit tests for test-utils.tsx to reflect TestApp component changes.
  • apps/ui/tests/unit/views/board-view/dialogs/add-feature-dialog.test.tsx
    • Updated unit tests for AddFeatureDialog to reflect requirePlanApproval logic and model entry normalization.
  • apps/ui/tests/unit/views/board-view/dialogs/pr-comment-resolution-dialog.test.tsx
    • Updated unit tests for PRCommentResolutionDialog to reflect model entry normalization and new feature fields.
  • apps/ui/tests/unit/views/board-view/kanban-card/agent-info-panel.test.tsx
    • Updated unit tests for AgentInfoPanel to reflect new model formatting, task summary, and summary display logic.
  • apps/ui/tests/unit/views/board-view/kanban-card/card-actions.test.tsx
    • Updated unit tests for CardActions to reflect merge_conflict status and showBacklogLogsButton.
  • apps/ui/tests/unit/views/board-view/kanban-card/card-badges.test.tsx
    • Updated unit tests for CardBadges to reflect merge_conflict and plan-approval badges.
  • apps/ui/tests/unit/views/board-view/kanban-card/card-header.test.tsx
    • Updated unit tests for CardHeaderSection to reflect new model formatting and showBacklogLogsButton.
  • apps/ui/tests/unit/views/board-view/kanban-card/kanban-card.test.tsx
    • Updated unit tests for KanbanCard to reflect merge_conflict status handling.
  • apps/ui/tests/unit/views/board-view/list-row.test.tsx
    • Updated unit tests for ListRow to reflect plan-approval badge and improved createdAt sorting.
  • apps/ui/tests/unit/views/board-view/list-view.test.tsx
    • Updated unit tests for ListView to reflect sortNewestCardOnTop prop.
  • apps/ui/tests/unit/views/board-view/row-actions.test.tsx
    • Updated unit tests for RowActions to reflect merge_conflict status and setOpen callback.
  • apps/ui/tests/unit/views/board-view/summary-dialog.test.tsx
    • Updated unit tests for SummaryDialog to reflect multi-phase summary support and view mode tabs.
  • apps/ui/tests/unit/views/board-view/worktree-panel/worktree-panel.test.tsx
    • Updated unit tests for WorktreePanel to reflect merge_conflict status handling.
  • apps/ui/tests/unit/views/settings-view/model-defaults.test.tsx
    • Updated unit tests for ModelDefaults to reflect providerId in model entry normalization.
  • apps/ui/tests/unit/views/settings-view/ntfy-endpoints.test.tsx
    • Updated unit tests for NtfyEndpoints to reflect new component structure.
  • apps/ui/tests/unit/views/settings-view/settings-view.test.tsx
    • Updated unit tests for SettingsView to reflect ntfyEndpoints migration.
  • apps/ui/tests/unit/views/settings-view/worktrees-settings.test.tsx
    • Updated unit tests for WorktreesSettings to reflect merge_conflict status handling.
  • apps/ui/tests/unit/views/worktrees-view/worktrees-view.test.tsx
    • Updated unit tests for WorktreesView to reflect merge_conflict status handling.
  • apps/ui/tests/unit/widgets/worktree-selector.test.tsx
    • Updated unit tests for WorktreeSelector to reflect merge_conflict status handling.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/e2e-tests.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request is a significant update, merging changes for version 1.0.0. It introduces major new features, critical bug fixes, and substantial improvements to robustness and user experience across the application. Key additions include support for custom Claude-compatible providers, ntfy.sh notifications, and a comprehensive system for handling multi-step pipeline summaries. The update also brings crucial stability enhancements, such as persistent dev server state across restarts, robust handling of Git worktree states (especially detached HEAD), and fixes for race conditions in the UI and auto-mode loop. The testing suite has been massively expanded, and many parts of the server and UI have been refactored for better performance and maintainability. Overall, this is an excellent and well-executed set of changes that greatly matures the application.

Note: Security Review did not run due to the size of the PR.

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.

2 participants