Skip to content

V0.14.0rc#769

Merged
webdevcody merged 208 commits intomainfrom
v0.14.0rc
Feb 13, 2026
Merged

V0.14.0rc#769
webdevcody merged 208 commits intomainfrom
v0.14.0rc

Conversation

@webdevcody
Copy link
Copy Markdown
Collaborator

No description provided.

firstfloris and others added 30 commits December 28, 2025 20:09
The @automaker/* packages in server-bundle/node_modules are symlinks
pointing to ../../libs/. Without including the libs directory in
extraResources, these symlinks are broken in the packaged app,
causing 'Server failed to start' error on launch.
- Modified paths for macOS, Windows, and Linux artifacts to use explicit file patterns instead of wildcard syntax.
- Ensured all relevant file types are included for each platform, improving artifact management during releases.
- Added support for excluding specific pipeline steps in feature management, allowing users to skip certain steps during execution.
- Introduced a new `PipelineExclusionControls` component for managing exclusions in the UI.
- Updated relevant dialogs and components to handle excluded pipeline steps, including `AddFeatureDialog`, `EditFeatureDialog`, and `MassEditDialog`.
- Enhanced the `getNextStatus` method in `PipelineService` to account for excluded steps when determining the next status in the pipeline flow.
- Updated tests to cover scenarios involving excluded pipeline steps.
…8936017583-e6ni

# Conflicts:
#	apps/ui/src/components/views/board-view.tsx
* refactor: replace crypto.randomUUID with generateUUID in spec editor

Use the centralized generateUUID utility from @/lib/utils instead of
direct crypto.randomUUID calls in spec editor components. This provides
better fallback handling for non-secure contexts (e.g., Docker via HTTP).

Files updated:
- array-field-editor.tsx
- features-section.tsx
- roadmap-section.tsx

* refactor: simplify generateUUID to always use crypto.getRandomValues

Remove conditional checks and fallbacks - crypto.getRandomValues() works
in all modern browsers including non-secure HTTP contexts (Docker).
This simplifies the code while maintaining the same security guarantees.

* refactor: add defensive check for crypto availability

Add check for crypto.getRandomValues() availability before use.
Throws a meaningful error if the crypto API is not available,
rather than failing with an unclear runtime error.

---------

Co-authored-by: Claude <noreply@anthropic.com>
* fix: hide Cursor models in selector when provider is disabled

The Cursor Models section was appearing in model dropdown selectors even
when the Cursor provider was toggled OFF in Settings → AI Providers.

This fix adds a !isCursorDisabled check to the rendering condition,
matching the pattern already used by Codex and OpenCode providers.
This ensures consistency across all provider types.

Fixes the issue where:
- Codex/OpenCode correctly hide models when disabled
- Cursor incorrectly showed models even when disabled

* style: fix Prettier formatting
* feat: add per-project default model override for new features

- Add defaultFeatureModel to ProjectSettings type for project-level override
- Add defaultFeatureModel to Project interface for UI state
- Display Default Feature Model in Model Defaults section alongside phase models
- Include Default Feature Model in global Bulk Replace dialog
- Add Default Feature Model override section to Project Settings
- Add setProjectDefaultFeatureModel store action for project-level overrides
- Update clearAllProjectPhaseModelOverrides to also clear defaultFeatureModel
- Update add-feature-dialog to use project override when available
- Include Default Feature Model in Project Bulk Replace dialog

This allows projects with different complexity levels to use different
default models (e.g., Haiku for simple tasks, Opus for complex projects).

* fix: add server-side __CLEAR__ handler for defaultFeatureModel

- Add handler in settings-service.ts to properly delete defaultFeatureModel
  when '__CLEAR__' marker is sent from the UI
- Fix bulk-replace-dialog.tsx to correctly return claude-opus when resetting
  default feature model to Anthropic Direct (was incorrectly using
  enhancementModel's settings which default to sonnet)

These fixes ensure:
1. Clearing project default model override properly removes the setting
   instead of storing literal '__CLEAR__' string
2. Global bulk replace correctly resets default feature model to opus

* fix: include defaultFeatureModel in Reset to Defaults action

- Updated resetPhaseModels to also reset defaultFeatureModel to claude-opus
- Fixed initial state to use canonical 'claude-opus' instead of 'opus'

* refactor: use DEFAULT_GLOBAL_SETTINGS constant for defaultFeatureModel

Address PR review feedback:
- Replace hardcoded { model: 'claude-opus' } with DEFAULT_GLOBAL_SETTINGS.defaultFeatureModel
- Fix Prettier formatting for long destructuring lines
- Import DEFAULT_GLOBAL_SETTINGS from @automaker/types where needed

This improves maintainability by centralizing the default value.
…17583-e6ni

feat: implement pipeline step exclusion functionality
- Introduced new routes for exporting and importing features, enhancing project management capabilities.
- Added UI components for export and import dialogs, allowing users to easily manage feature data.
- Updated HTTP API client to support export and import operations with appropriate options and responses.
- Enhanced board view with controls for triggering export and import actions, improving user experience.
- Defined new types for feature export and import, ensuring type safety and clarity in data handling.
- Introduced a new Projects Overview link in the sidebar footer for easy navigation.
- Added a button for Projects Overview in the dashboard view, enhancing accessibility to project insights.
- Updated types to include project overview-related definitions, supporting the new features.
* feat(ui): make React Query DevTools configurable

- Add showQueryDevtools setting to app store with persistence
- Add toggle in Global Settings > Developer section
- Move DevTools button from bottom-left to bottom-right (less intrusive)
- Support VITE_HIDE_QUERY_DEVTOOLS env variable to disable
- DevTools only available in development mode

Users can now:
1. Toggle DevTools on/off via Settings > Developer
2. Set VITE_HIDE_QUERY_DEVTOOLS=true to hide permanently
3. DevTools are now positioned at bottom-right to avoid overlapping UI controls

* chore: update package-lock.json

* fix(ui): hide React Query DevTools toggle in production mode

* refactor(ui): remove VITE_HIDE_QUERY_DEVTOOLS env variable

The persisted toggle in Settings > Developer is sufficient for controlling
DevTools visibility. No need for an additional env variable override.

* fix(ui): persist showQueryDevtools setting across page refreshes

- Add showQueryDevtools to GlobalSettings type
- Add showQueryDevtools to hydrateStoreFromSettings function
- Add default value in DEFAULT_GLOBAL_SETTINGS

* fix: restore package-lock.json from base branch

Removes git+ssh:// URL that was accidentally introduced

---------

Co-authored-by: Claude <noreply@anthropic.com>
- Introduced a new `useEventRecency` hook to track the recency of WebSocket events, allowing for conditional polling based on event activity.
- Updated `AgentInfoPanel` to utilize the new hook, adjusting polling intervals based on WebSocket activity.
- Implemented debounced invalidation for auto mode events to optimize query updates during rapid event streams.
- Added utility functions for managing event recency checks in various query hooks, improving overall responsiveness and reducing unnecessary polling.
- Introduced debounce and throttle utilities for better control over function execution rates.

This enhancement improves the application's performance by reducing polling when real-time updates are available, ensuring a more efficient use of resources.
- Added Test Runner Service to manage test execution processes for worktrees.
- Introduced endpoints for starting and stopping tests, and retrieving test logs.
- Created UI components for displaying test logs and managing test sessions.
- Integrated test runner events for real-time updates in the UI.
- Updated project settings to include configurable test commands.

This enhancement allows users to run tests directly from the UI, view logs in real-time, and manage test sessions effectively.
Address PR review feedback:
- Use WS_ACTIVITY_THRESHOLD constant instead of hardcoded 10000 in agent-info-panel.tsx
- Extract AGENT_OUTPUT_POLLING_INTERVAL constant for 5000ms value in use-features.ts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add path validation middleware for optional projectPath and worktreePath
parameters in test runner routes to maintain parity with other worktree
routes and ensure proper security validation when ALLOWED_ROOT_DIRECTORY
is configured.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat(tests): implement test runner functionality with API integration
…ttings

Relocate the export and import features functionality from the board header
dropdown menu to a new "Data" section in project settings for better UX.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…c-1768981415660-tt2v

# Conflicts:
#	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
…tments

- Bumped version from 0.12.0rc to 0.13.0 across the project.
- Updated package-lock.json to reflect changes in dependencies, including marking certain dependencies as `devOptional`.
- Adjusted import paths in the UI for better module organization.

This update ensures consistency in versioning and improves the structure of utility imports.
- Updated the ideation service to utilize phase settings for model resolution, improving flexibility in handling model aliases.
- Introduced `getPhaseModelWithOverrides` to fetch model and provider information, allowing for dynamic adjustments based on project settings.
- Enhanced logging to provide clearer insights into the model and provider being used during suggestion generation.

This update streamlines the process of generating suggestions by leveraging phase-specific configurations, ensuring better alignment with user-defined settings.
- Introduced a new route for adding remotes to git worktrees.
- Enhanced the PushToRemoteDialog component to support adding new remotes, including form handling and error management.
- Updated the API client to include an endpoint for adding remotes.
- Modified the worktree state management to track the presence of remotes.
- Improved the list branches handler to check for configured remotes.

This update allows users to easily add remotes through the UI, enhancing the overall git workflow experience.
Address PR #650 review feedback from gemini-code-assist. The call to
resolveModelString was redundant because resolvePhaseModel already
returns the fully resolved canonical model ID. When providerId is set,
it returns the provider-specific model ID unchanged; otherwise, it
already calls resolveModelString internally.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Updated the comment to better explain why resolveModelString is not
needed after resolvePhaseModel - the latter already handles model
alias resolution internally.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
DhanushSantosh and others added 24 commits January 28, 2026 19:55
The Copilot icon had a hardcoded white fill that made it invisible on
light theme backgrounds. Changed to use currentColor so it adapts to
theme and respects CSS text color classes.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Dev server test was failing on non-localhost hostnames (e.g., 'fedora')
because it expected 'localhost' in the URL. Now sets HOSTNAME env var
in test setup and restores it in teardown for consistent test behavior
across all environments.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Updated the sidebar header and navigation components to increase top padding for macOS Electron users from 10px to 38px, ensuring better layout and avoiding overlap with the traffic light controls. This change enhances the user experience on macOS platforms.
Extract the hardcoded 'pt-[38px]' magic number into a shared constant
MACOS_ELECTRON_TOP_PADDING_CLASS for better maintainability. This
addresses the PR #732 review feedback from Gemini Code Assist.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…cher

Updated the ProjectSwitcher component to conditionally apply top padding based on the operating system and Electron environment. This change utilizes the newly created MACOS_ELECTRON_TOP_PADDING_CLASS for improved maintainability and consistency across the UI.
…artup

Fixes #742

This commit resolves two critical issues that prevented the Electron app from starting:

1. **Broken symlinks in server bundle**
   - After npm install, local @automaker/* packages were symlinked in node_modules
   - These symlinks broke after electron-builder packaging since relative paths no longer existed
   - Solution: Added Step 6b in prepare-server.mjs to replace symlinks with real directory copies
   - Added lstatSync and resolve imports to support symlink detection and replacement

2. **electronUserDataWriteFileSync fails on first launch**
   - The userData directory doesn't exist on first app launch
   - Writing .api-key file would fail with ENOENT error
   - Solution: Added directory existence check and creation with { recursive: true } before writing

Files modified:
- apps/ui/scripts/prepare-server.mjs: Added symlink replacement logic after npm install
- libs/platform/src/system-paths.ts: Added parent directory creation in electronUserDataWriteFileSync

Verification: After these fixes, npm run build:electron produces a working app that starts without ERR_MODULE_NOT_FOUND errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Use lstatSync with try/catch for robust broken symlink detection
- Remove redundant existsSync check before mkdirSync with recursive: true

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
fix(electron): Fix broken symlinks in server bundle preventing app startup
Git initialization now explicitly specifies --initial-branch=main to match
GitHub's default branch standard (since October 2020). This prevents the
branch name mismatch that caused features to disappear from the UI when
pushing to GitHub.

Fixes #734

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…anch

fix(server): Use 'main' as default branch for new git projects
…cy-null-worktree

fix(ui): handle null selectedWorktree in max concurrency handler
* feat(terminal): Add core infrastructure for custom terminal configurations

- Add TerminalConfig types to settings schema (global & project-specific)
- Create RC generator with hex-to-xterm-256 color mapping
- Create RC file manager for .automaker/terminal/ directory
- Add terminal theme color data (40 themes) to platform package
- Integrate terminal config injection into TerminalService
- Support bash, zsh, and sh with proper env var injection (BASH_ENV, ZDOTDIR, ENV)
- Add onThemeChange hook for theme synchronization

Part of custom terminal configurations feature implementation.

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

* feat(terminal): Wire terminal service with settings service

- Pass SettingsService to TerminalService constructor
- Initialize terminal service with settings service dependency
- Enable terminal config injection to work with actual settings

This completes Steps 1-4 of the terminal configuration plan:
- RC Generator (color mapping, prompt formats)
- RC File Manager (file I/O, atomic writes)
- Settings Schema (GlobalSettings + ProjectSettings)
- Terminal Service Integration (env var injection)

Next steps: Settings UI and theme change hooks.

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

* feat(terminal): Add Settings UI and theme change synchronization

Complete Steps 5 & 6 of terminal configuration implementation:

Settings UI Components:
- Add PromptPreview component with live theme-aware rendering
- Add TerminalConfigSection with comprehensive controls:
  * Enable/disable toggle with confirmation dialog
  * Custom prompt toggle
  * Prompt format selector (4 formats)
  * Git branch/status toggles
  * Custom aliases textarea
  * Custom env vars key-value editor with validation
  * Info box explaining behavior
- Integrate into existing TerminalSection

Theme Change Hook:
- Add theme detection in update-global settings route
- Regenerate RC files for all projects when theme changes
- Skip projects with terminal config disabled
- Error handling with per-project logging
- Inject terminal service with settings service dependency

This completes the full terminal configuration feature:
✓ RC Generator (color mapping, prompts)
✓ RC File Manager (file I/O, versioning)
✓ Settings Schema (types, defaults)
✓ Terminal Service Integration (env vars, PTY spawn)
✓ Settings UI (comprehensive controls, preview)
✓ Theme Synchronization (automatic RC regeneration)

New terminals will use custom prompts matching app theme.
Existing terminals unaffected. User RC files preserved.

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

* fix(terminal): Add error handling and explicit field mapping for terminal config

- Add try-catch block to handleToggleEnabled
- Explicitly set all required terminalConfig fields
- Add console logging for debugging
- Show error toast if update fails
- Include rcFileVersion: 1 in config object

This should fix the issue where the toggle doesn't enable after
clicking OK in the confirmation dialog.

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

* fix(terminal): Use React Query mutation hook for settings updates

The issue was that `updateGlobalSettings` doesn't exist in the app store.
The correct pattern is to use the `useUpdateGlobalSettings` hook from
use-settings-mutations.ts, which is a React Query mutation.

Changes:
- Import useUpdateGlobalSettings from mutations hook
- Use mutation.mutate() instead of direct function call
- Add proper onSuccess/onError callbacks
- Remove async/await pattern (React Query handles this)

This fixes the toggle not enabling after clicking OK in the confirmation dialog.

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

* fix(terminal): Use React Query hook for globalSettings instead of store

The root cause: Component was reading globalSettings from the app store,
which doesn't update reactively when the mutation completes.

Solution: Use useGlobalSettings() React Query hook which:
- Automatically refetches when the mutation invalidates the cache
- Triggers re-render with updated data
- Makes the toggle reflect the new state

Now the flow is:
1. User clicks toggle → confirmation dialog
2. Click OK → mutation.mutate() called
3. Mutation succeeds → invalidates queryKeys.settings.global()
4. Query refetches → component re-renders with new globalSettings
5. Toggle shows enabled state ✓

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

* debug(terminal): Add detailed logging for terminal config application

Add logging to track:
- When terminal config check happens
- CWD being used
- Global and project enabled states
- Effective enabled state

This will help diagnose why RC files aren't being generated
when opening terminals in Automaker.

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

* Fix terminal rc updates and bash rcfile loading

* feat(terminal): add banner on shell start

* feat(terminal): colorize banner per theme

* chore(terminal): bump rc version for banner colors

* feat(terminal): match banner colors to launcher

* feat(terminal): add prompt customization controls

* feat: integrate oh-my-posh prompt themes

* fix: resolve oh-my-posh theme path

* fix: correct oh-my-posh config invocation

* docs: add terminal theme screenshot

* fix: address review feedback and stabilize e2e test

* ui: split terminal config into separate card

* fix: enable cross-platform Warp terminal detection

- Remove macOS-only platform restriction for Warp
- Add Linux CLI alias 'warp-terminal' (primary on Linux)
- Add CLI launch handler using --cwd flag
- Fixes issue where Warp was not detected on Linux systems

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

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Fix #684: Prevent Windows reserved filename creation
- Add sanitizeFilename() utility to detect and prefix Windows reserved names
  (NUL, CON, PRN, AUX, COM1-9, LPT1-9)
- Apply sanitization to save-image route to prevent "nul" file creation
- Add 23 comprehensive tests for filename sanitization edge cases

Fix #576: Detect actual dev server port from output
- Parse stdout/stderr for real server URLs (Vite, Next.js, generic formats)
- Update server URL when detected instead of using allocated PORT
- Emit dev-server:url-detected event for frontend updates
- Add 6 tests for URL detection patterns

Fix #193: Commit only feature-specific changes
- Change from 'git add -A' to branch-aware file staging
- Use git diff to find files changed on feature branch only
- Prevent committing unrelated changes from other features
- Maintain backward compatibility with main branch workflow

All fixes include comprehensive tests and maintain backward compatibility.
Test results: 1,968 tests passed (547 package + 1,421 server tests)
Fix #689: Improve auto-generated commit message quality
- Add generateCommitMessage() method that includes description summary
- Include first 5 lines of feature description (up to 300 chars)
- Add git diff stats to provide file change context
- Commit messages now reflect the actual scope of work performed
- Maintains backward compatibility with fallback for missing features

Fix #601: Improve scroll indicator visibility on small screens
- Enhanced scroll indicator with gradient fade effect
- Show indicator on both expanded and collapsed sidebar states
- Added "Scroll" text label for better discoverability
- More prominent brand-colored chevron with animation
- Prevents Project Settings from being hidden on smaller laptop screens

Both fixes improve user experience without breaking existing functionality.
Test results: All 1,421 server tests pass
- Replace the Automaker License Agreement with a simplified project status section in the README, indicating that the project is no longer actively maintained.
- Update the LICENSE file to reflect the new MIT License.
- Add license information to package.json for clarity.
@webdevcody webdevcody merged commit 61d4310 into main Feb 13, 2026
3 of 5 checks passed
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 13, 2026

Important

Review skipped

Too many files!

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

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
  • Commit unit tests in branch v0.14.0rc

Tip

Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord.


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.

@webdevcody webdevcody deleted the v0.14.0rc branch February 13, 2026 18:47
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @webdevcody, 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 release candidate focuses on expanding AI model compatibility and significantly improving the stability and feature set of the core application. New integrations with GitHub Copilot and Google Gemini provide users with more choices for AI-driven development. A major emphasis has been placed on making the auto-mode more resilient to interruptions and enhancing project management capabilities through new export/import features and a comprehensive project overview dashboard. Additionally, a dedicated test runner has been integrated for streamlined development workflows, alongside numerous UI/UX enhancements and critical build process adjustments.

Highlights

  • New AI Provider Integrations: Integrated GitHub Copilot SDK and Google Gemini CLI, significantly expanding the range of available AI models and capabilities for various tasks.
  • Enhanced Auto-Mode Reliability and Recovery: Implemented robust recovery mechanisms for auto-mode, including handling server crashes, persisting task-level progress, and gracefully marking interrupted features for resumption. This ensures continuity and reduces data loss during unexpected disruptions.
  • Comprehensive Feature Management: Introduced new functionalities for exporting and importing features in JSON or YAML formats, complete with pre-import conflict checking to prevent accidental overwrites.
  • Multi-Project Dashboard: Added a new dashboard view that provides an aggregate overview of all projects, their health status, feature counts, and recent activity, offering a centralized management interface.
  • Integrated Test Runner: A new service and UI component have been added for running project tests directly within the application, featuring real-time log streaming and session management.
  • Improved Git Integration: Enhanced git capabilities include the ability to add new remotes, initializing new repositories with 'main' as the default branch, and generating more comprehensive commit messages based on feature details.
  • Dynamic Dev Server URL Detection: Improved development server monitoring to automatically detect and display the actual server URL from process output, enhancing usability for various dev setups.
  • License Update and Project Status Clarity: The project's licensing has been updated from a custom 'Automaker License Agreement' to the more permissive MIT License. Corresponding documentation has been updated to clearly state that the project is no longer actively maintained.
  • UI/UX Refinements: Various user interface and experience improvements have been made, including splash screen persistence, a refactored sidebar with collapsible sections and project switching shortcuts, and enhanced markdown rendering for task lists.

🧠 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
  • Dockerfile
    • Updated Dockerfile to include libs/spec-parser in the build context.
  • LICENSE
    • Replaced the custom Automaker License Agreement with the MIT License and added a project status notice.
  • README.md
    • Updated README with a project maintenance warning, Docker UID/GID instructions for Linux/WSL, and changed the license reference to MIT.
  • SECURITY_TODO.md
    • Removed the security audit findings document.
  • TODO.md
    • Removed the general project TODO list.
  • apps/server/package.json
    • Added @github/copilot-sdk and yaml as dependencies.
  • apps/server/src/index.ts
    • Refactored Claude authentication checks to support CLI authentication.
    • Removed suggestions routes.
    • Added test-runner and projects services/routes.
    • Updated createFeaturesRoutes to pass autoModeService.
    • Updated getTerminalService to pass settingsService.
    • Enhanced graceful shutdown logic to mark running features as interrupted and include a timeout.
  • apps/server/src/lib/terminal-themes-data.ts
    • Added a new file to re-export terminal theme data from the platform library.
  • apps/server/src/providers/codex-provider.ts
    • Adjusted the base timeout for Codex models during feature generation with high reasoning effort.
  • apps/server/src/providers/copilot-provider.ts
    • Added a new provider for GitHub Copilot SDK, supporting session management, authentication, and tool normalization.
  • apps/server/src/providers/cursor-provider.ts
    • Enhanced Windows CLI detection for cursor-agent to support direct execution.
    • Modified buildCliArgs to use --mode ask for read-only and --force otherwise.
    • Removed platform-specific checks for Cursor versions directory.
    • Added embedSystemPromptIntoPrompt call.
  • apps/server/src/providers/gemini-provider.ts
    • Added a new provider for Google Gemini CLI, supporting streaming, authentication, and tool normalization.
  • apps/server/src/providers/index.ts
    • Exported the newly added GeminiProvider and CopilotProvider.
  • apps/server/src/providers/provider-factory.ts
    • Registered GeminiProvider and CopilotProvider with appropriate priorities.
    • Updated model ID parsing logic to include gemini in replacement patterns.
  • apps/server/src/providers/tool-normalization.ts
    • Added a new utility file for normalizing tool input parameters across different AI providers.
  • apps/server/src/providers/types.ts
    • Exported additional types related to agent definitions, reasoning effort, and system prompt presets.
  • apps/server/src/routes/app-spec/generate-features-from-spec.ts
    • Implemented structured output for feature generation using json_schema for compatible models.
    • Improved JSON extraction from model responses using extractJsonWithArray.
  • apps/server/src/routes/app-spec/generate-spec.ts
    • Updated spec generation to leverage structured output capabilities of compatible models.
  • apps/server/src/routes/app-spec/sync-spec.ts
    • Implemented structured output for tech stack analysis using json_schema.
    • Improved JSON extraction from model responses using extractJson.
  • apps/server/src/routes/backlog-plan/generate-plan.ts
    • Ensured model aliases are resolved for explicit model overrides in plan generation.
  • apps/server/src/routes/enhance-prompt/routes/enhance.ts
    • Integrated project context, including app spec and existing features, into prompt enhancement requests.
    • Modified simpleQuery to accept an array of prompt parts.
  • apps/server/src/routes/features/index.ts
    • Added new API routes for feature export, import, and conflict checking.
    • Updated createFeaturesRoutes to accept AutoModeService.
  • apps/server/src/routes/features/routes/create.ts
    • Standardized the featureName emitted in the feature:created event to use feature.title or 'Untitled Feature'.
  • apps/server/src/routes/features/routes/export.ts
    • Added a new API route for exporting features in JSON or YAML format.
  • apps/server/src/routes/features/routes/import.ts
    • Added new API routes for importing features and checking for conflicts.
  • apps/server/src/routes/features/routes/list.ts
    • Implemented background detection of orphaned features when listing project features.
  • apps/server/src/routes/fs/routes/save-board-background.ts
    • Updated the regex for decoding base64 image data to support more data URL formats.
  • apps/server/src/routes/fs/routes/save-image.ts
    • Updated the regex for decoding base64 image data.
    • Added filename sanitization for saved images.
  • apps/server/src/routes/github/routes/validate-issue.ts
    • Updated issue validation to use structured output capabilities of compatible models.
  • apps/server/src/routes/ideation/routes/suggestions-generate.ts
    • Updated ideation suggestion generation to accept configurable context sources and use phase model overrides.
  • apps/server/src/routes/projects/common.ts
    • Added common utilities for the new projects API routes.
  • apps/server/src/routes/projects/index.ts
    • Added new API routes for multi-project overview and management.
  • apps/server/src/routes/projects/routes/overview.ts
    • Added a new API route to retrieve an aggregate overview of all projects.
  • apps/server/src/routes/settings/routes/update-global.ts
    • Implemented logic to regenerate terminal RC files when the global theme setting is changed.
  • apps/server/src/routes/setup/common.ts
    • Added a constant for the Copilot disconnected marker file.
  • apps/server/src/routes/setup/index.ts
    • Added new API routes for Gemini and Copilot CLI setup, authentication, deauthentication, and model discovery.
  • apps/server/src/routes/setup/routes/auth-copilot.ts
    • Added a new API route to connect the Copilot CLI to the application.
  • apps/server/src/routes/setup/routes/auth-gemini.ts
    • Added a new API route to connect the Gemini CLI to the application.
  • apps/server/src/routes/setup/routes/copilot-models.ts
    • Added new API routes for managing Copilot models, including refreshing and clearing the cache.
  • apps/server/src/routes/setup/routes/copilot-status.ts
    • Added a new API route to retrieve the installation and authentication status of the Copilot CLI.
  • apps/server/src/routes/setup/routes/deauth-copilot.ts
    • Added a new API route to disconnect the Copilot CLI from the application.
  • apps/server/src/routes/setup/routes/deauth-gemini.ts
    • Added a new API route to disconnect the Gemini CLI from the application.
  • apps/server/src/routes/setup/routes/gemini-status.ts
    • Added a new API route to retrieve the installation and authentication status of the Gemini CLI.
  • apps/server/src/routes/suggestions/common.ts
    • Removed the common utilities file for suggestions routes.
  • apps/server/src/routes/suggestions/generate-suggestions.ts
    • Removed the file containing logic for generating suggestions.
  • apps/server/src/routes/suggestions/index.ts
    • Removed the API routes for AI-powered feature suggestions.
  • apps/server/src/routes/suggestions/routes/generate.ts
    • Removed the API route for generating suggestions.
  • apps/server/src/routes/suggestions/routes/status.ts
    • Removed the API route for getting suggestion generation status.
  • apps/server/src/routes/suggestions/routes/stop.ts
    • Removed the API route for stopping suggestion generation.
  • apps/server/src/routes/worktree/index.ts
    • Added new API routes for test runner functionality and adding git remotes.
  • apps/server/src/routes/worktree/routes/add-remote.ts
    • Added a new API route for adding a remote to a git repository.
  • apps/server/src/routes/worktree/routes/init-git.ts
    • Modified git initialization to set main as the default branch.
  • apps/server/src/routes/worktree/routes/list-branches.ts
    • Included information about whether any git remotes are configured in the branch listing.
  • apps/server/src/routes/worktree/routes/list.ts
    • Enhanced GitHub PR fetching with caching and stale data handling.
  • apps/server/src/routes/worktree/routes/start-dev.ts
    • Integrated custom development server commands from project settings.
  • apps/server/src/routes/worktree/routes/start-tests.ts
    • Added a new API route for starting test execution in a worktree.
  • apps/server/src/routes/worktree/routes/stop-tests.ts
    • Added a new API route for stopping a running test session.
  • apps/server/src/routes/worktree/routes/switch-branch.ts
    • Refined the detection of uncommitted changes to exclude untracked files and .automaker directories.
  • apps/server/src/routes/worktree/routes/test-logs.ts
    • Added a new API route for retrieving buffered test logs.
  • apps/server/src/services/auto-mode-service.ts
    • Implemented robust auto-mode recovery mechanisms, including feature lease counting, resetting stuck features, and improved commit message generation.
    • Added markFeatureInterrupted and markAllRunningFeaturesInterrupted for graceful shutdown.
    • Enhanced spec detection logic to include fallback for non-Claude models and handle existing approved plans.
    • Added detectOrphanedFeatures for identifying features with deleted branches.
  • apps/server/src/services/copilot-connection-service.ts
    • Added a new service to manage the connection status of the Copilot CLI.
  • apps/server/src/services/dev-server-service.ts
    • Implemented dynamic detection of dev server URLs from process output.
    • Added support for custom dev commands from project settings.
  • apps/server/src/services/event-hook-service.ts
    • Improved feature name resolution for event context.
  • apps/server/src/services/feature-export-service.ts
    • Added a new service for exporting and importing features in various formats.
  • apps/server/src/services/ideation-service.ts
    • Enhanced ideation context gathering by allowing configurable sources and improved suggestion parsing.
  • apps/server/src/services/pipeline-service.ts
    • Updated getNextStatus to correctly skip excluded pipeline steps.
  • apps/server/src/services/settings-service.ts
    • Improved the merging logic for autoModeByWorktree.
    • Added special handling for clearing project-specific command settings.
  • apps/server/src/services/terminal-service.ts
    • Integrated terminal configuration from settings, including theme-based RC file regeneration and environment variable setup.
  • apps/server/src/services/test-runner-service.ts
    • Added a new service for managing test execution processes with output streaming and session management.
  • apps/server/tests/integration/helpers/git-test-repo.ts
    • Updated git repository initialization to use main as the default branch.
  • apps/server/tests/integration/routes/worktree/create.integration.test.ts
    • Updated git repository initialization to use main as the default branch.
  • apps/server/tests/unit/providers/codex-provider.test.ts
    • Adjusted the expected timeout for Codex provider tests.
  • apps/server/tests/unit/providers/copilot-provider.test.ts
    • Added comprehensive unit tests for the Copilot provider.
  • apps/server/tests/unit/providers/provider-factory.test.ts
    • Updated unit tests for the provider factory to include new Gemini and Copilot providers.
  • apps/server/tests/unit/routes/worktree/add-remote.test.ts
    • Added unit tests for the add-remote API route, covering validation and success/failure scenarios.
  • apps/server/tests/unit/routes/worktree/switch-branch.test.ts
    • Added unit tests for the switch-branch API route, focusing on handling untracked files.
  • apps/server/tests/unit/services/auto-mode-service.test.ts
    • Added extensive unit tests for auto-mode recovery, feature interruption, and orphaned feature detection.
  • apps/server/tests/unit/services/auto-mode-task-parsing.test.ts
    • Added unit tests for fallback spec detection in auto-mode task parsing.
  • apps/server/tests/unit/services/dev-server-service.test.ts
    • Added unit tests for dev server URL detection from process output.
  • apps/server/tests/unit/services/feature-export-service.test.ts
    • Added comprehensive unit tests for the feature export and import service.
  • apps/server/tests/unit/services/ideation-service.test.ts
    • Added unit tests for ideation service's context building, including app spec integration.
  • apps/server/tests/unit/services/pipeline-service.test.ts
    • Added unit tests for pipeline service's getNextStatus method with step exclusions.
  • apps/ui/eslint.config.mjs
    • Updated ESLint configuration to include new globals and adjust no-unused-vars rule.
  • apps/ui/package.json
    • Updated UI project dependencies, adding rehype-sanitize, remark-gfm, and zod.
  • apps/ui/scripts/kill-test-servers.mjs
    • Minor cleanup in error handling for killing processes.
  • apps/ui/scripts/prepare-server.mjs
    • Added a step to replace symlinks with real copies for local packages during server preparation.
  • apps/ui/scripts/setup-e2e-fixtures.mjs
    • Updated the model name for ideation in E2E test fixtures.
  • apps/ui/src/app.tsx
    • Implemented persistence for the splash screen display preference.
    • Wrapped the application with TooltipProvider.
  • apps/ui/src/assets/icons/gemini-icon.svg
    • Added a new SVG icon for Gemini.
  • apps/ui/src/components/codex-usage-popover.tsx
    • Removed an unused isLoading state variable.
  • apps/ui/src/components/dialogs/file-browser-dialog.tsx
    • Removed an unused constant MAX_RECENT_FOLDERS.
  • apps/ui/src/components/dialogs/new-project-modal.tsx
    • Simplified the conditional check for the Electron API.
  • apps/ui/src/components/layout/project-switcher/components/edit-project-dialog.tsx
    • Improved handling of project icons, including custom image uploads with validation and toast notifications.
  • apps/ui/src/components/layout/project-switcher/components/notification-bell.tsx
    • Removed an unused ExternalLink import.
  • apps/ui/src/components/layout/project-switcher/components/project-context-menu.tsx
    • Refined theme selection logic and removed an unused removeConfirmed state.
    • Changed setTheme to setProjectTheme to only affect project-specific theme.
    • Added type="button" to theme buttons.
  • apps/ui/src/components/layout/project-switcher/components/project-switcher-item.tsx
    • Added image error handling for custom project icons to prevent broken image display.
  • apps/ui/src/components/layout/project-switcher/project-switcher.tsx
    • Adjusted styling for macOS Electron environments and updated Electron API usage.
  • apps/ui/src/components/layout/sidebar/components/automaker-logo.tsx
    • Updated the navigation target for the Automaker logo to /overview.
  • apps/ui/src/components/layout/sidebar/components/collapse-toggle-button.tsx
    • Adjusted the positioning of the sidebar collapse toggle button.
  • apps/ui/src/components/layout/sidebar/components/project-selector-with-options.tsx
    • Removed redundant theme setting logic.
  • apps/ui/src/components/layout/sidebar/components/sidebar-footer.tsx
    • Enhanced the sidebar footer with version information, documentation, and feedback links.
    • Refactored its rendering for collapsed state.
  • apps/ui/src/components/layout/sidebar/components/sidebar-header.tsx
    • Refactored the sidebar header to support both expanded and collapsed states, integrating project selection dropdowns and new project/open folder actions.
  • apps/ui/src/components/layout/sidebar/components/sidebar-navigation.tsx
    • Implemented collapsible navigation sections with state persistence.
    • Added a scroll indicator.
    • Updated navigation to /overview for dashboard.
  • apps/ui/src/components/layout/sidebar/components/theme-menu-item.tsx
    • Changed the base component for theme menu items to DropdownMenuRadioItem.
  • apps/ui/src/components/layout/sidebar/constants.ts
    • Added a constant for macOS Electron top padding.
  • apps/ui/src/components/layout/sidebar/hooks/use-navigation.ts
    • Updated navigation structure to include a Dashboard link.
    • Made Project, Tools, and GitHub sections collapsible.
  • apps/ui/src/components/layout/sidebar/index.ts
    • Added an export for the main Sidebar component.
  • apps/ui/src/components/layout/sidebar/sidebar.tsx
    • Refactored the main Sidebar component, integrating new header/footer logic, context menus, and keyboard shortcuts for project switching.
  • apps/ui/src/components/shared/model-override-trigger.tsx
    • Removed unused imports and variables.
  • apps/ui/src/components/shared/use-model-override.ts
    • Removed an unused extractModel function.
  • apps/ui/src/components/ui/button.tsx
    • Enhanced the Button component to support different spinner variants based on button styling.
  • apps/ui/src/components/ui/collapsible.tsx
    • Removed an unnecessary React import.
  • apps/ui/src/components/ui/git-diff-panel.tsx
    • Updated onClick handlers to explicitly void the promise return.
  • apps/ui/src/components/ui/keyboard-map.tsx
    • Removed TooltipProvider wrapper.
  • apps/ui/src/components/ui/log-viewer.tsx
    • Removed unused useEffect and Play icon import.
  • apps/ui/src/components/ui/markdown.tsx
    • Enhanced Markdown rendering with remarkGfm plugin.
    • Added custom TasksBlock component for rendering task lists from code blocks.
    • Improved table styling.
  • apps/ui/src/components/ui/provider-icon.tsx
    • Added new provider icons for Gemini and Copilot.
    • Updated icon mapping logic to include copilot.
  • apps/ui/src/components/ui/spinner.tsx
    • Introduced SpinnerVariant type and variant prop for customizable spinner colors.
  • apps/ui/src/components/ui/task-progress-panel.tsx
    • Updated the TaskProgressPanel to use the new Feature type and Spinner with a foreground variant.
  • apps/ui/src/components/ui/test-logs-panel.tsx
    • Added a new UI component for displaying real-time test logs.
  • apps/ui/src/components/usage-popover.tsx
    • Refined the display of Claude and Codex usage metrics, including session window information.
  • apps/ui/src/components/views/agent-tools-view.tsx
    • Removed an unused ToolExecution interface and related imports.
  • apps/ui/src/components/views/agent-view.tsx
    • Removed an unused agentError variable.
  • apps/ui/src/components/views/analysis-view.tsx
    • Updated the feature creation logic to directly pass a Feature object.
  • apps/ui/src/components/views/board-view.tsx
    • Updated DialogAwarePointerSensor to use ReactPointerEvent.
    • Removed unused state and settings from useAppStore destructuring.
    • Added useUpdateGlobalSettings mutation.
    • Refactored selectedWorktree memoization to ensure all fields are present.
    • Implemented refreshBoardState for comprehensive board state refresh.
    • Removed handleCommitFeature and handleMergeFeature from useBoardActions.
    • Updated api.backlogPlan.onEvent to handle unknown data type.
    • Updated columnFeaturesMap to use pipelineConfig ?? null.
    • Updated onConcurrencyChange to persist maxConcurrency to server settings.
    • Added onRefreshBoard prop to BoardHeader.
    • Updated runningFeatureIds in WorktreePanel to use runningAutoTasksAllWorktrees.
    • Added projectPath prop to AddFeatureDialog, PlanDialog, FeatureDetailPanel.
    • Updated pipelineConfig prop in PipelineSettingsDialog to pipelineConfig ?? null.
  • apps/ui/src/components/views/board-view/board-controls.tsx
    • Removed TooltipProvider wrapper.
  • apps/ui/src/components/views/board-view/board-header.tsx
    • Added a refresh button and associated logic to the board header.
  • apps/ui/src/components/views/board-view/components/kanban-card/agent-info-panel.tsx
    • Improved agent info panel with WebSocket activity tracking and dynamic polling intervals.
    • Simplified conditional rendering for the panel.
  • apps/ui/src/components/views/board-view/components/kanban-card/card-actions.tsx
    • Minor code cleanup, renaming a prop.
  • apps/ui/src/components/views/board-view/components/kanban-card/card-badges.tsx
    • Added new badges for pipeline exclusions.
    • Removed TooltipProvider wrapper.
    • Added projectPath prop to PriorityBadges.
  • apps/ui/src/components/views/board-view/components/kanban-card/card-content-sections.tsx
    • Updated ts-nocheck comment.
  • apps/ui/src/components/views/board-view/components/kanban-card/card-header.tsx
    • Updated ts-nocheck comment.
  • apps/ui/src/components/views/board-view/components/kanban-card/kanban-card.tsx
    • Updated ts-nocheck comment.
    • Modified drag-and-drop logic for dependency linking to allow dropping on any non-completed card.
  • apps/ui/src/components/views/board-view/components/kanban-card/summary-dialog.tsx
    • Updated ts-nocheck comment.
  • apps/ui/src/components/views/board-view/components/kanban-column.tsx
    • Improved styling for Kanban column titles to prevent overflow.
  • apps/ui/src/components/views/board-view/components/list-view/list-header.tsx
    • Improved styling for list header column labels to prevent overflow.
  • apps/ui/src/components/views/board-view/components/list-view/list-row.tsx
    • Updated ts-nocheck comment.
    • Removed TooltipProvider wrapper.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/release.yml
Activity
  • The pull request was created by webdevcody.
  • No human activity (comments, reviews) has been recorded on this pull request yet.
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
Copy Markdown
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 introduces a significant number of changes for the v0.14.0 release candidate. Key updates include re-licensing the project to MIT and marking it as unmaintained, adding new AI providers for Gemini and GitHub Copilot, and introducing a multi-project overview dashboard. The sidebar UI has been substantially refactored for improved usability and a new "discord" style.
On the backend, there are major enhancements to the auto-mode service for better robustness, including improved recovery for interrupted features and more sophisticated git operations. The PR also adds a test runner, feature import/export functionality, and terminal prompt customization.
Overall, this is a massive and impressive update that adds a lot of value and polish. My only minor finding is a duplicated line in the Dockerfile.

Comment thread Dockerfile
COPY libs/model-resolver/package*.json ./libs/model-resolver/
COPY libs/dependency-resolver/package*.json ./libs/dependency-resolver/
COPY libs/git-utils/package*.json ./libs/git-utils/
COPY libs/spec-parser/package*.json ./libs/spec-parser/
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

This line is a duplicate of line 28 and should be removed to avoid redundancy in the Docker image layers.

KenTokyo added a commit to KenTokyo/automaker that referenced this pull request Feb 15, 2026
Merge PR AutoMaker-Org#769 from AutoMaker-Org/v0.14.0rc with custom features preserved:
- Resolved conflicts in app-store.ts (custom state fields: docs panel, browser panel, project colors, editor theme)
- Extended state-types.ts and ui-types.ts with custom type definitions (BrowserTab, RecentDoc)
- Upstream adds: Copilot/Gemini providers, test runner, feature export/import, project overview, terminal themes, electron refactor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.