Merge remote-tracking branch 'origin/v0.14.0rc' into feature/v0.14.0rc-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
This commit is contained in:
Shirone
2026-01-21 17:46:22 +01:00
61 changed files with 4752 additions and 213 deletions

View File

@@ -47,6 +47,12 @@ export type EventType =
| 'dev-server:started'
| 'dev-server:output'
| 'dev-server:stopped'
| 'test-runner:started'
| 'test-runner:progress'
| 'test-runner:output'
| 'test-runner:completed'
| 'test-runner:error'
| 'test-runner:result'
| 'notification:created';
export type EventCallback = (type: EventType, payload: unknown) => void;

View File

@@ -49,6 +49,7 @@ export interface Feature {
// Branch info - worktree path is derived at runtime from branchName
branchName?: string; // Name of the feature branch (undefined = use current worktree)
skipTests?: boolean;
excludedPipelineSteps?: string[]; // Array of pipeline step IDs to skip for this feature
thinkingLevel?: ThinkingLevel;
reasoningEffort?: ReasoningEffort;
planningMode?: PlanningMode;

View File

@@ -19,6 +19,8 @@ export type {
McpHttpServerConfig,
AgentDefinition,
ReasoningEffort,
// System prompt configuration for CLAUDE.md auto-loading
SystemPromptPreset,
} from './provider.js';
// Provider constants and utilities
@@ -34,6 +36,10 @@ export type {
CodexApprovalPolicy,
CodexCliConfig,
CodexAuthStatus,
// Event types for CLI event parsing
CodexEventType,
CodexItemType,
CodexEvent,
} from './codex.js';
export * from './codex-models.js';
@@ -332,3 +338,6 @@ export { PR_STATES, validatePRState } from './worktree.js';
// Terminal types
export type { TerminalInfo } from './terminal.js';
// Test runner types
export type { TestRunnerInfo } from './test-runner.js';

View File

@@ -863,6 +863,10 @@ export interface GlobalSettings {
/** Enable HTTP request logging (Morgan). Default: true */
enableRequestLogging?: boolean;
// Developer Tools
/** Show React Query DevTools panel (only in development mode). Default: true */
showQueryDevtools?: boolean;
// AI Commit Message Generation
/** Enable AI-generated commit messages when opening commit dialog (default: true) */
enableAiCommitMessages: boolean;
@@ -1178,6 +1182,14 @@ export interface ProjectSettings {
/** Maximum concurrent agents for this project (overrides global maxConcurrency) */
maxConcurrentAgents?: number;
// Test Runner Configuration
/**
* Custom command to run tests for this project.
* If not specified, auto-detection will be used based on project structure.
* Examples: "npm test", "yarn test", "pnpm test", "pytest", "go test ./..."
*/
testCommand?: string;
// Phase Model Overrides (per-project)
/**
* Override phase model settings for this project.
@@ -1186,6 +1198,13 @@ export interface ProjectSettings {
*/
phaseModelOverrides?: Partial<PhaseModelConfig>;
// Feature Defaults Override (per-project)
/**
* Override the default model for new feature cards in this project.
* If not specified, falls back to the global defaultFeatureModel setting.
*/
defaultFeatureModel?: PhaseModelEntry;
// Deprecated Claude API Profile Override
/**
* @deprecated Use phaseModelOverrides instead.
@@ -1279,6 +1298,7 @@ export const DEFAULT_GLOBAL_SETTINGS: GlobalSettings = {
muteDoneSound: false,
serverLogLevel: 'info',
enableRequestLogging: true,
showQueryDevtools: true,
enableAiCommitMessages: true,
phaseModels: DEFAULT_PHASE_MODELS,
enhancementModel: 'sonnet', // Legacy alias still supported

View File

@@ -0,0 +1,17 @@
/**
* Test runner types for the test runner functionality
*/
/**
* Information about an available test runner
*/
export interface TestRunnerInfo {
/** Unique identifier for the test runner (e.g., 'vitest', 'jest', 'pytest') */
id: string;
/** Display name of the test runner (e.g., "Vitest", "Jest", "Pytest") */
name: string;
/** CLI command to run all tests */
command: string;
/** Optional: CLI command pattern to run a specific test file */
fileCommand?: string;
}