V0.11.0rc#475
Merged
webdevcody merged 131 commits intomainfrom Jan 15, 2026
Merged
Conversation
…endpoints - apps/server/src/providers/claude-provider.ts Add ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN to the environment variable allowlist, enabling use of LLM gateways (LiteLLM, Helicone) and Anthropic- compatible providers (GLM 4.7, Minimax M2.1, etc.). Closes #338
…hrough - apps/server/tests/unit/providers/claude-provider.test.ts Verify custom endpoint environment variables are passed to the SDK.
This commit fixes several edge cases when resuming features stuck in pipeline steps: - Detect if feature is stuck in a pipeline step during resume - Handle case where context file is missing (restart from beginning) - Handle case where pipeline step no longer exists in config - Add dedicated resumePipelineFeature() method for pipeline-specific resume logic - Add detectPipelineStatus() to extract and validate pipeline step information - Add resumeFromPipelineStep() to resume from a specific pipeline step index - Update board view to check context availability for features with pipeline status Edge cases handled: 1. No context file → restart entire pipeline from beginning 2. Step no longer exists in config → complete feature without pipeline 3. Valid step exists → resume from the crashed step 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Reduce redundant file reads by loading the feature object once and passing it down the call chain instead of reloading it multiple times. Changes: - Pass feature object to resumePipelineFeature() instead of featureId - Pass feature object to resumeFromPipelineStep() instead of featureId - Remove redundant loadFeature() calls from these methods - Add FeatureStatusWithPipeline import for type safety This improves performance by eliminating unnecessary file I/O operations and makes the data flow clearer. Co-authored-by: gemini-code-assist bot 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Remove confusing and unnecessary delete calls from resumeFeature() and resumePipelineFeature() methods. These were leftovers from a previous implementation where temporary entries were added to runningFeatures. The resumeFeature() method already ensures the feature is not running at the start (via has() check that throws if already running), so these delete calls serve no purpose and only add confusion about state management. Removed delete calls from: - resumeFeature() non-pipeline flow (line 748) - resumePipelineFeature() no-context case (line 798) - resumePipelineFeature() step-not-found case (line 822) Co-authored-by: gemini-code-assist bot 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…cation Define a dedicated PipelineStatusInfo interface and use it consistently in both resumePipelineFeature() parameter and detectPipelineStatus() return type. This eliminates duplicate inline type definitions and improves maintainability by ensuring both locations always stay in sync. Any future changes to the pipeline status structure only need to be made in one place. Changes: - Add PipelineStatusInfo interface definition - Replace inline type in resumePipelineFeature() with PipelineStatusInfo - Replace inline return type in detectPipelineStatus() with PipelineStatusInfo Co-authored-by: gemini-code-assist bot 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Remove unnecessary call to pipelineService.getStep() which was causing a redundant file read of pipeline.json. The config is already loaded at line 2807, so we can find the step directly from the in-memory config. Changes: - Sort config.steps first - Find stepIndex using findIndex() - Get step directly from sortedSteps[stepIndex] instead of calling getStep() - Simplify null check to only check !step instead of stepIndex === -1 || !step This optimization reduces file I/O operations and improves performance when resuming pipeline features. Co-authored-by: gemini-code-assist bot 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Enable the Resume button to appear for features with pipeline status (e.g., 'pipeline_step_xyz') in addition to 'in_progress' status. Previously, features that crashed during pipeline execution would show a 'testing' status badge but no Resume button, making it impossible to resume them from the UI. Changes: - Update card-actions.tsx condition to include pipeline_ status check - Resume button now shows for both in_progress and pipeline_step_* statuses - Maintains all existing behavior for other feature states This fixes the UX issue where users could see a feature was stuck in a pipeline step but had no way to resume it. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Resolved conflict in card-actions.tsx by:
- Keeping pipeline_status check from our branch (supports pipeline_step_* statuses)
- Adopting simplified Resume button logic from main (removed hasContext check and onVerify fallback)
The Resume button now appears for features with:
- status === 'in_progress'
- status.startsWith('pipeline_')
This combines our pipeline support fix with main's simplified button rendering logic.
Re-add the onVerify fallback for in_progress/pipeline features without context, but fix the misleading UX issue where the button said 'Resume' but executed verification (tests/build). Changes: - Restore onVerify fallback as 3rd option after skipTests Verify and Resume - Change button label from 'Resume' to 'Verify' (honest!) - Change icon from PlayCircle to CheckCircle2 (matches action) - Keep same green styling for consistency This makes sense because if a feature is in_progress but has no context, it likely completed execution but the context was deleted. User should be able to verify it (run tests/build) rather than having no action available. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Auto-format all files to fix format-check CI failure. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add detailed JSDoc documentation to meet 80% docstring coverage requirement: - PipelineStatusInfo interface: Document all properties with types and descriptions - resumePipelineFeature(): Document edge case handling and parameters - resumeFromPipelineStep(): Document complete pipeline resume workflow - detectPipelineStatus(): Document pipeline status detection scenarios Each docstring includes: - Clear method purpose and behavior - All parameters with types and descriptions - Return value documentation - Error conditions and exceptions - @Private tags for internal methods This improves code maintainability and helps developers understand the complex pipeline resume logic. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add UID and GID build arguments to Dockerfiles to allow matching the container user to the host user. This fixes file permission issues when mounting host directories as volumes. Default remains 1001 for backward compatibility. To match host user: UID=$(id -u) GID=$(id -g) docker-compose build Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Sidebar now uses overlay pattern on mobile (fixed position when open) - Added backdrop overlay that dismisses sidebar on tap - Made collapse toggle button visible on all screen sizes - Made project options menu visible on all screen sizes Previously the sidebar was forced to collapsed width (w-16) on mobile even when sidebarOpen was true, and the toggle/options buttons were hidden with `hidden lg:flex`.
Integrate Claude Haiku to automatically generate commit messages when committing worktree changes. Shows a sparkle animation while generating and auto-populates the commit message field. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…provider auth initialization
- Implemented a new endpoint to generate commit messages based on git diffs. - Updated worktree routes to include the AI commit message generation functionality. - Enhanced the UI to support automatic generation of commit messages when the commit dialog opens, based on user settings. - Added settings for enabling/disabling AI-generated commit messages and configuring the model used for generation.
- Added a new section in the UI for customizing commit message prompts. - Integrated a system prompt for AI-generated commit messages, allowing users to define their own instructions. - Updated the backend to merge custom prompts with default settings for commit message generation. - Enhanced the commit message generation logic to utilize the effective system prompt based on user settings.
…alSettings interface - Eliminated unused properties related to notification commands and ntfy.sh integration from the GlobalSettings interface. - Updated default global settings to reflect the removal of these properties.
fix: ensure npm cache directory has correct permissions
Problem: - OpenRouter dynamic models only appeared after visiting settings page - PhaseModelSelector (used in Add/Edit Feature dialogs) only fetched Codex models - dynamicOpencodeModels remained empty until OpencodeSettingsTab mounted Solution: - Add fetchOpencodeModels() action to app-store mirroring fetchCodexModels pattern - Add state tracking: opencodeModelsLoading, opencodeModelsError, timestamps - Call fetchOpencodeModels() in PhaseModelSelector useEffect on mount - Use same caching strategy: 5min success cache, 30sec failure cooldown Files changed: - apps/ui/src/store/app-store.ts - Add OpenCode model loading state properties - Add fetchOpencodeModels action with error handling & caching - apps/ui/src/components/views/settings-view/model-defaults/phase-model-selector.tsx - Add opencodeModelsLoading, fetchOpencodeModels to store hook - Add useEffect to fetch OpenCode models on mount Result: - OpenRouter models now appear in Add/Edit Feature dialogs immediately - No need to visit settings page first - Consistent with Codex model loading behavior
… refactoring Implement per-project theme override capability in the Discord-like layout: - Add theme submenu to project context menu with live preview - Reuse existing theme constants and useThemePreview hook from sidebar - Extract reusable ThemeButton and ThemeColumn components (DRY principle) - Replace magic z-index values with named constants Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat: support ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN for custom endpoints
…13091-hnir feat(ui): Add project theme selection to context menu
…88678-28bn fix: adress pr comments task not respecting worktrees
…16676-kza4 feat: add feature request github template
- Use node-pty on all platforms instead of expect on macOS for more reliable PTY handling
- Use process.cwd() as working directory (project dir is likely already trusted)
- Add detection for new trust prompt text variants ("Ready to code here", "permission to work")
- Add specific error handling for trust prompt pending state
- Show helpful UI message when trust prompt needs manual approval
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Address PR review comment - use process.cwd() for Windows too instead of USERPROFILE/homedir fallback for consistency. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
fix: Claude usage parsing for CLI v2.x and trust prompt handling
- Updated the list-branches endpoint to accept an optional parameter for including remote branches. - Implemented logic to fetch and deduplicate remote branches alongside local branches. - Modified the CreatePRDialog component to utilize the updated API for branch selection, allowing users to select from both local and remote branches.
…nch exists The branch listing logic now correctly shows remote branches (e.g., "origin/main") even if a local branch with the same base name exists, since users need remote branches as PR base targets. Also extracted duplicate state reset logic in create-pr-dialog into a reusable function.
…27235-36uf feat: enhance pr dialog base branch selection
The merge handler previously hardcoded branch names as `feature/${featureId}`
and worktree paths as `.worktrees/${featureId}`, which failed for auto-generated
branches (e.g., `feature/v0.11.0rc-1768413895104-31pa`) and custom worktrees.
Changes:
- Server handler now accepts branchName and worktreePath directly from the UI
- Added branch existence validation before attempting merge
- Updated merge dialog with 2-step confirmation (type "merge" to confirm)
- Removed feature branch naming restriction - any branch can now be merged
- Updated API types and client to pass correct parameters
Closes #408
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ndling in agent info panel - Reduced the maximum height of the task progress panel from 300px to 200px for better UI consistency. - Introduced a new `effectiveTodos` calculation in the agent info panel to correctly display tasks from `planSpec` when available, ensuring accurate task counts and statuses. - Updated references to use `effectiveTodos` instead of the original `agentInfo.todos` for task display logic in the agent info panel. - Adjusted the height of various modal components to align with the new task progress panel height.
Fix OpenCode GitHub Copilot authentication detection
fix: load OpenCode models on Kanban
… fresh planSpec integration - Added support for real-time task status updates using WebSocket events, allowing the Kanban card to reflect current task progress accurately. - Introduced a new state for fresh planSpec data fetched from the API to ensure the agent info panel displays up-to-date task information. - Updated the effectiveTodos calculation to prioritize fresh planSpec data and incorporate real-time status, improving task display accuracy. - Enhanced the logic to listen for relevant WebSocket events and update task statuses accordingly, ensuring synchronization with the agent output modal.
…09856-a0al fix: agent output modal ui/ux and task list with spec/full plan mode
…95104-31pa feat: merge worktree to main in dropdown menu
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.