Skip to content

Conversation

@Shironex
Copy link
Collaborator

@Shironex Shironex commented Dec 28, 2025

Cursor CLI Integration

Overview

This PR integrates Cursor Agent CLI (cursor-agent) as an alternative AI provider in AutoMaker, enabling users to use Cursor models alongside Claude. The implementation follows AutoMaker's existing provider architecture and integrates seamlessly with setup, settings, profiles, and task execution flows.

Implementation Status

Completed Phases: 0-9 (Analysis through Task Execution Integration)
Pending: Phase 10 (Testing & Validation)

Key Features

1. Core Provider Implementation

  • CursorProvider class extending BaseProvider
  • ✅ Spawns cursor-agent CLI with --output-format stream-json for streaming responses
  • ✅ Normalizes Cursor stream events to AutoMaker's ProviderMessage format
  • ✅ Platform-specific CLI path detection (Linux/macOS/Windows)
  • ✅ Version directory scanning for installed versions
  • ✅ Comprehensive error handling with recovery suggestions

2. Type System Extensions

  • ✅ Added CursorModelId type with 18 supported models
  • ✅ Extended ModelProvider type to include 'cursor'
  • ✅ Created CursorStreamEvent types for CLI output parsing
  • ✅ Added CursorCliConfig interface for configuration management
  • ✅ Updated ModelOption interface to support both providers

3. Provider Factory Integration

  • ProviderFactory automatically routes models to correct provider
  • ✅ Automatic detection via model ID patterns (cursor-* prefix or known Cursor model IDs)
  • getProviderForModel() returns appropriate provider instance
  • ✅ Support for mixed provider sessions

4. Setup & Configuration

  • Setup Wizard: CursorSetupStep component with:
    • CLI installation detection
    • Authentication status checking
    • Browser login flow guidance
    • Skip option for later setup
  • Settings View: CursorSettingsTab with:
    • Provider status display
    • Default model selection
    • Enabled models management
    • Real-time status refresh
  • API Endpoints:
    • GET /api/setup/cursor-status - Installation and auth status
    • GET /api/setup/cursor-config - Configuration retrieval
    • POST /api/setup/cursor-config/default-model - Update default model
    • POST /api/setup/cursor-config/models - Update enabled models

5. Log Parser Integration

  • ✅ Added normalizeCursorEvent() function for Cursor stream events
  • ✅ Support for system, assistant, tool_call, and result events
  • ✅ Tool call normalization (read/write/function tools)
  • ✅ Integration with existing log viewer UI

6. AI Profiles Integration

  • ✅ Extended AIProfile interface to support Cursor provider
  • ✅ Cursor-specific model selection (cursorModel field)
  • ✅ Thinking mode handling: embedded in model ID (e.g., claude-sonnet-4-thinking)
  • ✅ Profile form updates with provider-specific fields
  • ✅ Helper functions: profileHasThinking(), getProfileModelString()

7. Task Execution Integration

  • ✅ Updated AgentService to use ProviderFactory for model routing
  • ✅ Updated AutoModeService for feature execution
  • ✅ Provider tracking in execution events
  • ✅ Model selector includes Cursor models with thinking badges

Architecture Decisions

  1. Shared Packages: Uses @automaker/types, @automaker/utils, @automaker/platform

    • Reuses InstallationStatus (no new status types)
    • Uses spawnJSONLProcess() for JSONL streaming
    • Uses createLogger() and isAbortError() utilities
  2. UI Components: All UI uses existing @/components/ui/* components

    • Consistent styling with Card, Button, Select, Badge, etc.
    • Icons from lucide-react (Terminal for Cursor, Bot for Claude)
  3. Model Resolution: Does NOT extend @automaker/model-resolver

    • Cursor models use CURSOR_MODEL_MAP directly
    • Model IDs are final-form (no aliasing needed)
  4. Configuration Storage: Uses .automaker/cursor-config.json

    • Managed by CursorConfigManager
    • Project-specific configuration

Files Changed

Created Files

  • libs/types/src/cursor-models.ts - Model definitions and metadata
  • libs/types/src/cursor-cli.ts - CLI types and stream events
  • apps/server/src/providers/cursor-provider.ts - Main provider implementation
  • apps/server/src/providers/cursor-config-manager.ts - Configuration management
  • apps/server/src/routes/setup/routes/cursor-status.ts - Status endpoint
  • apps/server/src/routes/setup/routes/cursor-config.ts - Config endpoints
  • apps/ui/src/components/views/setup-view/steps/cursor-setup-step.tsx - Setup wizard step
  • apps/ui/src/components/views/settings-view/providers/cursor-settings-tab.tsx - Settings tab
  • apps/ui/src/components/views/settings-view/providers/provider-tabs.tsx - Tab container

Modified Files

  • libs/types/src/settings.ts - Extended ModelProvider type
  • libs/types/src/model-display.ts - Updated ModelOption interface
  • libs/types/src/model.ts - Added Cursor default model
  • libs/types/src/index.ts - Exported new types
  • apps/server/src/providers/provider-factory.ts - Added Cursor routing
  • apps/server/src/providers/index.ts - Exported CursorProvider
  • apps/server/src/routes/setup/index.ts - Registered Cursor routes
  • apps/ui/src/lib/log-parser.ts - Added Cursor event normalization
  • apps/ui/src/lib/http-api-client.ts - Added Cursor API methods
  • apps/ui/src/components/views/setup-view.tsx - Added Cursor setup step
  • apps/ui/src/components/views/profiles-view/components/profile-form.tsx - Added Cursor fields
  • apps/server/src/services/agent-service.ts - Updated to use ProviderFactory
  • apps/server/src/services/auto-mode-service.ts - Updated to use ProviderFactory

Supported Cursor Models

  • auto - Auto-select (recommended)
  • composer-1 - Cursor Composer agent
  • sonnet-4.5 - Claude Sonnet 4.5
  • sonnet-4.5-thinking - Claude Sonnet 4.5 with extended thinking
  • opus-4.5 - Claude Opus 4.5
  • opus-4.5-thinking - Claude Opus 4.5 with extended thinking
  • opus-4.1 - Claude Opus 4.1
  • gemini-3-pro - Google Gemini 3 Pro
  • gemini-3-flash - Google Gemini 3 Flash
  • gpt-5.2 - OpenAI GPT-5.2
  • gpt-5.1 - OpenAI GPT-5.1
  • gpt-5.2-high - OpenAI GPT-5.2 with high compute
  • gpt-5.1-high - OpenAI GPT-5.1 with high compute
  • gpt-5.1-codex - OpenAI GPT-5.1 Codex for code generation
  • gpt-5.1-codex-high - OpenAI GPT-5.1 Codex with high compute
  • gpt-5.1-codex-max - OpenAI GPT-5.1 Codex Max capacity
  • gpt-5.1-codex-max-high - OpenAI GPT-5.1 Codex Max with high compute
  • grok - xAI Grok

Testing Status

Unit Tests: Pending (Phase 10)
Integration Tests: Pending (Phase 10)

UI Preview ( might be changed )

image image image image image

Next Steps

  1. Complete Phase 10: Testing & Validation

    • Unit tests for CursorProvider
    • Integration tests for setup flow
    • End-to-end tests for task execution
  2. Documentation Updates

    • User guide for Cursor setup
    • Troubleshooting guide for common issues
  3. Performance Optimization

    • Stream buffering improvements
    • Error recovery mechanisms

References


Note: This PR implements a complete provider integration following AutoMaker's extensible architecture. The implementation is production-ready pending comprehensive testing in Phase 10.

- Introduced a comprehensive integration plan for the Cursor CLI, including detailed phases for implementation.
- Created initial markdown files for each phase, outlining objectives, tasks, and verification steps.
- Established a global prompt template for starting new sessions with the Cursor CLI.
- Added necessary types and configuration for Cursor models and their integration into the AutoMaker architecture.
- Implemented routing logic to ensure proper model handling between Cursor and Claude providers.
- Developed UI components for setup and settings management related to Cursor integration.
- Included extensive testing and validation plans to ensure robust functionality across all scenarios.
- Created a comprehensive analysis document detailing the existing Claude CLI integration architecture and the planned Cursor CLI implementation.
- Document includes sections on current architecture, service integration, UI components, and a thorough examination of Cursor CLI behavior.
- Outlined integration strategy, including types to add, provider implementation, setup flow changes, and UI updates.
- Marked the completion of Phase 0 analysis and documentation tasks.
- Introduced new types and interfaces for Cursor CLI configuration, authentication status, and event handling.
- Created a comprehensive model definition for Cursor models, including metadata and helper functions.
- Updated existing interfaces to support both Claude and Cursor models in the UI.
- Enhanced the default model configuration to include Cursor's recommended default.
- Updated type exports to include new Cursor-related definitions.
- Added CursorConfigManager to manage Cursor CLI configuration, including loading, saving, and resetting settings.
- Introduced CursorProvider to integrate the cursor-agent CLI, handling installation checks, authentication, and query execution.
- Enhanced error handling with detailed CursorError codes for better debugging and user feedback.
- Updated documentation to reflect the completion of the Cursor Provider implementation phase.
- Added CursorProvider to the ProviderFactory for handling cursor-* models.
- Updated getProviderNameForModel method to determine the appropriate provider based on model identifiers.
- Enhanced getAllProviders method to return both ClaudeProvider and CursorProvider.
- Updated documentation to reflect the completion of the Provider Factory integration phase.
- Implemented new routes for managing Cursor CLI configuration, including getting current settings and updating default models.
- Created status endpoint to check Cursor CLI installation and authentication status.
- Updated HttpApiClient to include methods for interacting with the new Cursor API endpoints.
- Marked completion of the setup routes and status endpoints phase in the integration plan.
- Added functions to detect and normalize Cursor stream events, including tool calls and system messages.
- Updated `parseLogLine` to handle Cursor events and integrate them into the log entry structure.
- Marked completion of the log parser integration phase in the project plan.
- Introduced a new `CursorSetupStep` component for optional Cursor CLI configuration during the setup process.
- Updated `SetupView` to include the cursor step in the setup flow, allowing users to skip or proceed with Cursor CLI setup.
- Enhanced state management to track Cursor CLI installation and authentication status.
- Updated Electron API to support fetching Cursor CLI status.
- Marked completion of the UI setup wizard phase in the integration plan.
- Added a new `ProviderTabs` component to manage different AI providers (Claude and Cursor) within the settings view.
- Created `ClaudeSettingsTab` and `CursorSettingsTab` components for provider-specific configurations.
- Updated navigation to reflect the new provider structure, replacing the previous Claude-only setup.
- Marked completion of the settings view provider tabs phase in the integration plan.
- Updated AIProfile type to include support for Cursor provider, adding cursorModel and validation logic.
- Enhanced ProfileForm component to handle provider selection and corresponding model configurations for both Claude and Cursor.
- Implemented display functions for model and thinking configurations in ProfileQuickSelect.
- Added default Cursor profiles to the application state.
- Updated UI components to reflect provider-specific settings and validations.
- Marked completion of the AI Profiles Integration phase in the project plan.
- Updated AutoModeService to track model and provider for running features, improving logging and state management.
- Modified AddFeatureDialog to handle model selection for both Claude and Cursor, adjusting thinking level logic accordingly.
- Expanded ModelSelector to allow provider selection and dynamically display models based on the selected provider.
- Introduced new model constants for Cursor models, integrating them into the existing model management structure.
- Updated README and project plan to reflect the completion of task execution integration for Cursor models.
- Created a comprehensive documentation file detailing the steps to add new Cursor CLI models to AutoMaker.
- Included an overview of the necessary types and configurations, along with a step-by-step guide for model integration.
- Provided examples and a checklist to ensure proper implementation and verification of new models in the UI.
- Added support for Cursor models in the model resolver, allowing cursor-prefixed models to pass through unchanged.
- Implemented logic to handle bare Cursor model IDs by adding the cursor- prefix.
- Updated logging to provide detailed information on model resolution processes for both Claude and Cursor models.
- Expanded unit tests to cover new Cursor model handling scenarios, ensuring robust validation of model resolution logic.
- Introduced a new environment variable `AUTOMAKER_DEBUG_RAW_OUTPUT` to enable raw output logging for agent streams.
- Added a new endpoint `/raw-output` to retrieve raw JSONL output for debugging purposes.
- Implemented functionality in `AutoModeService` to log raw output events and save them to `raw-output.jsonl`.
- Enhanced `FeatureLoader` to provide access to raw output files.
- Updated UI components to clean fragmented streaming text for better log parsing.
…analyzing Cursor CLI behavior

- Created a detailed documentation file on adding new Cursor CLI models to AutoMaker, including a step-by-step guide and model configuration examples.
- Developed an analysis document for the Cursor CLI integration, outlining the current architecture, CLI behavior, and proposed integration strategies for the Cursor provider.
- Included verification checklists and next steps for implementation phases.
- Replaced outdated model IDs with new versions, including Claude Sonnet 4.5 and Claude Opus 4.5.
- Added new models such as Gemini 3 Pro, GPT-5.1, and GPT-5.2 with various configurations.
- Enhanced model metadata with descriptions and thinking capabilities for improved clarity and usability.
@coderabbitai
Copy link

coderabbitai bot commented Dec 28, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

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


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.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @Shironex, 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 introduces a significant enhancement to AutoMaker by integrating the Cursor Agent CLI as an alternative AI provider. This allows users to seamlessly utilize Cursor models alongside existing Claude models, expanding the range of available AI capabilities. The integration is deeply woven into AutoMaker's architecture, affecting everything from initial setup and user settings to AI profile management and the core task execution flow, ensuring a consistent and robust user experience. The changes also include new debugging capabilities for streaming outputs and refined UI elements to clearly distinguish between providers and their specific features.

Highlights

  • Core Provider Implementation: Introduced a new CursorProvider class that extends BaseProvider, enabling AutoMaker to interact with the cursor-agent CLI. This provider spawns the CLI with —output-format stream-json for real-time responses and normalizes Cursor stream events into AutoMaker's ProviderMessage format. It includes platform-specific CLI path detection, version scanning, and comprehensive error handling with recovery suggestions.
  • Type System Extensions: Expanded the type system to support Cursor models, including CursorModelId for 18 supported models, extended ModelProvider to include 'cursor', and defined CursorStreamEvent types for parsing CLI output. CursorCliConfig and ModelOption interfaces were also updated to accommodate both providers.
  • Provider Factory Integration: The ProviderFactory now intelligently routes model requests to either the ClaudeProvider or CursorProvider based on model ID patterns (e.g., cursor-* prefix or known Cursor model IDs), supporting mixed provider sessions.
  • Setup & Configuration: Integrated Cursor CLI into the setup wizard with a new CursorSetupStep component for installation detection, authentication status, and browser login guidance. A dedicated CursorSettingsTab was added to the settings view for managing provider status, default model selection, and enabled models. New API endpoints (/api/setup/cursor-status, /api/setup/cursor-config) were created for status and configuration management.
  • Log Parser Integration: Enhanced the log-parser.ts to include normalizeCursorEvent() for processing Cursor stream events, supporting system, assistant, tool_call, and result events, and normalizing tool calls (read/write/function tools) for display in the existing log viewer UI. A new cleanFragmentedText utility was added to improve parsing of streaming text.
  • AI Profiles Integration: Extended the AIProfile interface to support Cursor provider, allowing Cursor-specific model selection (cursorModel field). Thinking modes for Cursor models are now embedded within the model ID (e.g., claude-sonnet-4-thinking), and profile forms and helper functions were updated accordingly.
  • Task Execution Integration: Updated AgentService and AutoModeService to leverage the ProviderFactory for dynamic model routing. Execution events now track the provider, and the model selector in the UI includes Cursor models with appropriate badges. Additionally, a new AUTOMAKER_DEBUG_RAW_OUTPUT environment variable was introduced to enable raw output logging for agent streams, aiding in debugging.

🧠 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.

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 is an impressive and extensive pull request that successfully integrates the Cursor CLI as a new AI provider. The implementation is well-structured, following existing architectural patterns and introducing thoughtful improvements, such as the robust provider factory and the advanced log parsing for streaming events. The new UI components for setup and settings are also well-designed and user-friendly. I've identified a few issues, including a critical one regarding the removed lockfile and a high-severity bug in the default configuration. I've also included some medium-severity suggestions to improve code quality and complete the feature integration. Overall, this is a fantastic contribution.

I am having trouble creating individual review comments. Click here to see my feedback.

pnpm-lock.yaml (1-407)

critical

The lockfile pnpm-lock.yaml has been removed. This is a critical issue as it breaks deterministic dependency installation, which can lead to "works on my machine" problems and inconsistent builds in CI/CD environments. Please restore this file. If you intended to update dependencies, you should run pnpm install or pnpm update and commit the resulting changes to the lockfile.

apps/server/src/providers/cursor-config-manager.ts (46-49)

high

The default models ['auto', 'claude-sonnet-4', 'gpt-4o-mini'] used here and in the reset method are not valid CursorModelIds according to the definitions in @automaker/types. This will cause a runtime error if the config file is missing or reset, as these invalid models will be written to the config and later fail validation in other parts of the system. Please update these to valid model IDs from CURSOR_MODEL_MAP, for example, ['auto', 'sonnet-4.5', 'gemini-3-flash'].

    return {
      defaultModel: 'auto',
      models: ['auto', 'sonnet-4.5', 'gemini-3-flash'],
    };

apps/server/src/routes/setup/routes/cursor-status.ts (17-31)

medium

This handler duplicates logic from CursorProvider.detectInstallation(). To improve maintainability and avoid using a type assertion hack to access the private cliPath property, you can simplify this by calling provider.detectInstallation() and provider.checkAuth() separately. This centralizes the detection logic within the provider while still giving you access to the specific authentication method.

  return async (_req: Request, res: Response): Promise<void> => {
    try {
      const provider = new CursorProvider();
      const [status, auth] = await Promise.all([
        provider.detectInstallation(),
        provider.checkAuth(),
      ]);

      res.json({
        success: true,
        installed: status.installed,
        version: status.version || null,
        path: status.path || null,
        auth: {
          authenticated: auth.authenticated,
          method: auth.method,
        },
        installCommand,
        loginCommand,
      });

apps/ui/src/components/views/board-view/shared/profile-quick-select.tsx (52-54)

medium

This component currently filters out Cursor profiles and only displays Claude profiles for quick selection. The comment mentions this is temporary, but other parts of the application, like the backend services, seem ready to handle provider selection. To provide a complete feature, this component should be updated to allow quick selection of Cursor profiles as well. This might involve adding a provider switcher or grouping profiles by provider in the UI.

apps/ui/src/lib/log-parser.ts (14-30)

medium

The cleanFragmentedText function is also defined in apps/ui/src/lib/agent-context-parser.ts. To adhere to the DRY (Don't Repeat Yourself) principle and improve maintainability, this function should be extracted into a shared utility file within the apps/ui/src/lib/ directory and imported into both log-parser.ts and agent-context-parser.ts.

@Shironex Shironex mentioned this pull request Dec 28, 2025
6 tasks
@Shironex Shironex added Enhancement Improvements to existing functionality or UI. Testers-Requested Request for others to test an enhancement or bug fix/etc. Work-In-Progress Currently being addressed. Do Not Merge Use this label if something should not be merged. labels Dec 28, 2025
Shironex and others added 4 commits December 28, 2025 11:20
- Replaced hardcoded model IDs with a call to `getAllCursorModelIds()` for dynamic retrieval of available models.
- Updated comments to reflect the change in configuration logic, enhancing clarity on the default model setup.
- Added checks to skip processing for partial streaming events when tool call arguments are not yet populated.
- Updated the event emission logic to include both tool_use and tool_result for completed events, ensuring the UI reflects all tool calls accurately even if the 'started' event is skipped.
- Add reusable WSL utilities in @automaker/platform (wsl.ts):
  - isWslAvailable() - Check if WSL is available on Windows
  - findCliInWsl() - Find CLI tools in WSL, tries multiple distributions
  - execInWsl() - Execute commands in WSL
  - createWslCommand() - Create spawn-compatible command/args for WSL
  - windowsToWslPath/wslToWindowsPath - Path conversion utilities
  - getWslDistributions() - List available WSL distributions

- Update CursorProvider to use WSL on Windows:
  - Detect cursor-agent in WSL distributions (prioritizes Ubuntu)
  - Use full path to wsl.exe for spawn() compatibility
  - Pass --cd flag for working directory inside WSL
  - Store and use WSL distribution for all commands
  - Show "(WSL:Ubuntu) /path" in installation status

- Add 'wsl' to InstallationStatus.method type

- Fix bugs:
  - Fix ternary in settings-view.tsx that always returned 'claude'
  - Fix findIndex -1 handling in WSL command construction
  - Remove 'gpt-5.2' from unknown models test (now valid Cursor model)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed label text from "Auto Plus" to "Auto Mode" in the BoardHeader component to improve user understanding of the feature.
- Integrated a centralized logging system using createLogger from @automaker/utils, replacing console.log and console.error statements with logger methods for consistent log formatting and improved readability.
- Updated various modules, including auth, events, and services, to utilize the new logging system, enhancing error tracking and operational visibility.
- Refactored logging messages to provide clearer context and information, ensuring better maintainability and debugging capabilities.

This update significantly enhances the observability of the server components, facilitating easier troubleshooting and monitoring.
@Shironex Shironex self-assigned this Jan 2, 2026
- Replaced console.log and console.error statements with logger methods from @automaker/utils in various UI components, ensuring consistent log formatting and improved readability.
- Enhanced error handling by utilizing logger methods to provide clearer context for issues encountered during operations.
- Updated multiple views and hooks to integrate the new logging system, improving maintainability and debugging capabilities.

This update significantly enhances the observability of UI components, facilitating easier troubleshooting and monitoring.
- Enhanced multiple server and UI components to include an optional thinking level parameter, improving the configurability of model interactions.
- Updated request handlers and services to manage and pass the thinking level, ensuring consistent data handling across the application.
- Refactored UI components to display and manage the selected model along with its thinking level, enhancing user experience and clarity.
- Adjusted the Electron API and HTTP client to support the new thinking level parameter in requests, ensuring seamless integration.

This update significantly improves the application's ability to adapt reasoning capabilities based on user-defined thinking levels, enhancing overall performance and user satisfaction.
…ment

- Removed the centralized logging system in favor of direct console.log and console.error statements for subprocess management.
- Updated logging messages to include context for subprocess actions, such as spawning commands, handling errors, and process completion.
- This change simplifies the logging approach in subprocess handling, making it easier to track subprocess activities during development.
- Introduced maxThinkingTokens to the query options for Claude models, allowing for more precise control over the SDK's reasoning capabilities.
- Refactored the enhance handler to utilize the new getThinkingTokenBudget function, improving the integration of thinking levels into the query process.
- Updated the query options structure for clarity and maintainability, ensuring consistent handling of model parameters.

This update enhances the application's ability to adapt reasoning capabilities based on user-defined thinking levels, improving overall performance.
- Modified test cases in logger.test.ts to assert that log messages include appropriate log level prefixes (INFO, ERROR, WARN, DEBUG).
- Ensured consistency in log output formatting across various logging methods, enhancing clarity in test results.
- Added routeTree.gen.ts to .prettierignore to prevent formatting of generated files.
- Reformatted the external dependencies list in vite.config.mts for improved readability.
- Deleted the Cursor CLI integration analysis document, phase prompt, README, and related phase files as they are no longer relevant to the current project structure.
- This cleanup helps streamline the project and remove outdated references, ensuring a more maintainable codebase.
@Shironex Shironex removed the Work-In-Progress Currently being addressed. label Jan 3, 2026
@Shironex Shironex marked this pull request as ready for review January 3, 2026 01:06
Shironex and others added 10 commits January 3, 2026 02:40
- Updated the useModelOverride hook to include a fallback to DEFAULT_PHASE_MODELS when phase models are not available, ensuring smoother handling of model overrides.
- This change addresses scenarios where settings may not have been migrated to include new phase models, improving overall robustness and user experience.
- Introduced a new phase model for AI Suggestions, enhancing the functionality of the settings view.
- Updated the phase model handling to utilize DEFAULT_PHASE_MODELS as a fallback, ensuring robust behavior when specific models are not set.
- This addition improves the user experience by providing more options for project analysis and suggestions.
Previously, colors were only enabled when stdout was a TTY, which caused
colored output to be stripped when the server ran as a subprocess. Now
colors are enabled by default in Node.js and can be disabled with
LOG_COLORS=false if needed.

Also removed the unused isTTY() function.
- scrolling was broken when we used component inside modal / dialog
…rrides

- Updated the generateSuggestions function to accept model and thinking level overrides, allowing for more flexible suggestion generation.
- Modified the API client and UI components to support passing these new parameters, improving user control over the suggestion process.
- Introduced a new phase model for AI Suggestions in settings, enhancing the overall functionality and user experience.
- Modified logger test cases to reflect that the warn method uses console.log in Node.js implementation.
- Updated expectations in feature-loader tests to align with the new logging behavior.
- Ensured consistent logging behavior across tests for improved clarity and accuracy.
…fixes

- Add getCliPath() public method to CursorProvider to avoid private field access
- Add path validation to cursor-config routes to prevent traversal attacks
- Add supportsVision field to CursorModelConfig (all false - CLI limitation)
- Consolidate duplicate types in providers/types.ts (re-export from @automaker/types)
- Add MCP servers warning log instead of error (not yet supported by Cursor CLI)
- Fix debug log type safety (replace 'as any' with proper type narrowing)
- Update docs to remove non-existent tier field, add supportsVision field
- Remove outdated TODO comment in sdk-options.ts

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

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

- Updated imports and references from 'phase-models' to 'model-defaults' across various components.
- Removed obsolete phase models index file to streamline the codebase.
@webdevcody webdevcody changed the base branch from main to v0.8.0rc January 4, 2026 02:42
Shironex and others added 5 commits January 4, 2026 03:45
- Added a 30-minute timeout for user plan approval to prevent indefinite waiting and memory leaks.
- Wrapped resolve/reject functions in the waitForPlanApproval method to ensure timeout is cleared upon resolution.
- Enhanced error handling in the stream processing loop to ensure proper cleanup and logging of errors.
- Improved the handling of task execution and phase completion events for better tracking and user feedback.
- Added immediate invocation of abort handler if the abort signal is already triggered, ensuring proper cleanup.
- Updated test to use setImmediate for aborting, allowing the generator to start processing before the abort is called, enhancing reliability.
Resolved conflicts:
- sdk-options.ts: kept HEAD (MCP & thinking level features)
- auto-mode-service.ts: kept HEAD (MCP features + fallback code)
- agent-output-modal.tsx: used v0.8.0rc (effectiveViewMode + pr-8 spacing)
- feature-suggestions-dialog.tsx: accepted deletion
- electron.ts: used v0.8.0rc (Ideation types)
- package-lock.json: regenerated

Fixed sdk-options.test.ts to expect 'default' permissionMode for read-only operations.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v0.8.0rc removed getMCPPermissionSettings and related properties.
Removed all references from auto-mode-service.ts to fix build.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@webdevcody webdevcody merged commit 4f3ac27 into v0.8.0rc Jan 4, 2026
6 checks passed
@webdevcody webdevcody deleted the feat/cursor-cli branch January 4, 2026 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Do Not Merge Use this label if something should not be merged. Enhancement Improvements to existing functionality or UI. Testers-Requested Request for others to test an enhancement or bug fix/etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants