* Changes from feature/worktree-view-customization
* Feature: Git sync, set-tracking, and push divergence handling (#796)
* Add quick-add feature with improved workflows (#802)
* Changes from feature/quick-add
* feat: Clarify system prompt and improve error handling across services. Address PR Feedback
* feat: Improve PR description parsing and refactor event handling
* feat: Add context options to pipeline orchestrator initialization
* fix: Deduplicate React and handle CJS interop for use-sync-external-store
Resolve "Cannot read properties of null (reading 'useState')" errors by
deduplicating React/react-dom and ensuring use-sync-external-store is
bundled together with React to prevent CJS packages from resolving to
different React instances.
* Changes from feature/worktree-view-customization
* refactor: Remove unused worktree swap and highlight props
* refactor: Consolidate feature completion logic and improve thinking level defaults
* feat: Increase max turn limit to 10000
- Update DEFAULT_MAX_TURNS from 1000 to 10000 in settings-helpers.ts and agent-executor.ts
- Update MAX_ALLOWED_TURNS from 2000 to 10000 in settings-helpers.ts
- Update UI clamping logic from 2000 to 10000 in app-store.ts
- Update fallback values from 1000 to 10000 in use-settings-sync.ts
- Update default value from 1000 to 10000 in DEFAULT_GLOBAL_SETTINGS
- Update documentation to reflect new range: 1-10000
Allows agents to perform up to 10000 turns for complex feature execution.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* feat: Add model resolution, improve session handling, and enhance UI stability
* refactor: Remove unused sync and tracking branch props from worktree components
* feat: Add PR number update functionality to worktrees. Address pr feedback
* feat: Optimize Gemini CLI startup and add tool result tracking
* refactor: Improve error handling and simplify worktree task cleanup
---------
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* Changes from feature/quick-add
* feat: Clarify system prompt and improve error handling across services. Address PR Feedback
* feat: Improve PR description parsing and refactor event handling
* feat: Add context options to pipeline orchestrator initialization
* fix: Deduplicate React and handle CJS interop for use-sync-external-store
Resolve "Cannot read properties of null (reading 'useState')" errors by
deduplicating React/react-dom and ensuring use-sync-external-store is
bundled together with React to prevent CJS packages from resolving to
different React instances.
* Changes from fix/dev-server-state-bug
* feat: Add configurable max turns setting with user overrides. Address pr comments
* fix: Update default behaviors and improve state management across server and UI
* feat: Extract branch sync logic to separate service. Fix settings sync bug. Address pr comments
* refactor: Extract magic numbers to named constants and improve branch tracking logic
- Add DEFAULT_MAX_TURNS (1000) and MAX_ALLOWED_TURNS (2000) constants to settings-helpers
- Replace hardcoded 1000 values with DEFAULT_MAX_TURNS constant throughout codebase
- Improve max turns validation with explicit Number.isFinite check
- Update getTrackingBranch to split on first slash instead of last for better remote parsing
- Change isBranchCheckedOut return type from boolean to string|null to return worktree path
- Add comments explaining skipFetch parameter in worktree creation
- Fix cleanup order in AgentExecutor finally block to run before logging
```
* feat: Add comment refresh and improve model sync in PR dialog
- Improved session handling by implementing ensureSession to load sessions from disk if not in memory, reducing "session not found" errors.
- Enhanced error messages for non-existent sessions, providing clearer diagnostics.
- Updated CodexProvider and OpencodeProvider to improve error handling and messaging.
- Refactored various routes to use async/await for better readability and error handling.
- Added event emission for merge and stash operations in the MergeService and StashService.
- Cleaned up error messages in AgentExecutor to remove redundant prefixes and ANSI codes for better clarity.
- Replaced synchronous feature retrieval with asynchronous logic in both AutoModeServiceFacade and GlobalAutoModeService.
- Updated filtering logic to resolve the primary branch name for main worktrees, improving accuracy in feature status checks.
- This change enhances the responsiveness and correctness of feature handling in auto mode operations.
- Updated getStatusForProject method in AutoModeServiceCompat and its facade to be asynchronous, allowing for better handling of feature status retrieval.
- Modified related status handlers in the server routes to await the updated method.
- Introduced a new method, getRunningFeaturesForWorktree, in ConcurrencyManager to improve feature ID retrieval based on branch normalization.
- Adjusted BoardView component to ensure consistent handling of running auto tasks across worktrees.
These changes improve the responsiveness and accuracy of the auto mode feature in the application.
- agent-executor: move executeQuery into try block for proper heartbeat cleanup,
re-parse tasks when edited plan is approved
- auto-loop-coordinator: handle feature execution failures with proper logging
and failure tracking, support backward-compatible method signatures
- facade: delegate getActiveAutoLoopProjects/Worktrees to coordinator,
always create own AutoLoopCoordinator (not shared), pass projectPath
to approval methods and branchName to failure tracking
- global-service: document shared autoLoopCoordinator is for monitoring only
- execution-types: fix ExecuteFeatureFn type to match implementation
- feature-state-manager: use readJsonWithRecovery for loadFeature
- pipeline-orchestrator: add defensive null check and try/catch for
merge response parsing
- plan-approval-service: use project-scoped keys to prevent cross-project
collisions, maintain backward compatibility for featureId-only lookups
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The PipelineOrchestrator passes previousContent to preserve the agent
output history when running pipeline steps. This was being lost because
the facade's runAgentFn callback wasn't forwarding it to AgentExecutor.
Without this fix, pipeline steps would overwrite the agent-output.md
file instead of appending to it with a "Follow-up Session" separator.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The facade had stubs for runAgentFn that threw errors, causing feature
execution to fail with "runAgentFn not implemented in facade".
This fix wires both ExecutionService and PipelineOrchestrator runAgentFn
callbacks to properly call AgentExecutor.execute() with:
- Provider from ProviderFactory.getProviderForModel()
- Bare model from stripProviderPrefix()
- Proper AgentExecutorCallbacks for waitForApproval, saveFeatureSummary, etc.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Delete the 2705-line auto-mode-service.ts monolith
- Create AutoModeServiceCompat as compatibility layer for routes
- Create GlobalAutoModeService for cross-project operations
- Update all routes to use AutoModeServiceCompat type
- Add SharedServices interface for state sharing across facades
- Add getActiveProjects/getActiveWorktrees to AutoLoopCoordinator
- Delete obsolete monolith test files
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>