mirror of
https://github.com/davidkaya/aryx.git
synced 2026-07-27 23:18:46 +02:00
Remove the restriction that prevented users from deleting built-in patterns (those with IDs prefixed 'pattern-'). Built-in patterns are intended as starting points, not permanent fixtures. Changes: - Add deletedBuiltinPatternIds field to WorkspaceState to track which built-in patterns the user has removed - Update mergePatterns to skip deleted built-ins during workspace load, preventing them from being re-added - Remove the isBuiltinPattern guard from AryxAppService.deletePattern; when a built-in is deleted, its ID is recorded in the tracking list - Enable the delete button in SettingsPanel and PatternEditor for all patterns (keep the 'Built-in pattern' label for context) - Add 3 tests covering built-in deletion, custom deletion, and selectedPatternId fallback Users can still restore deleted built-ins via workspace reset. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
import type { PatternDefinition } from '@shared/domain/pattern';
|
|
import { createBuiltinPatterns } from '@shared/domain/pattern';
|
|
import type { ProjectRecord } from '@shared/domain/project';
|
|
import type { SessionRecord } from '@shared/domain/session';
|
|
import { createWorkspaceSettings, type WorkspaceSettings } from '@shared/domain/tooling';
|
|
import { nowIso } from '@shared/utils/ids';
|
|
|
|
export interface WorkspaceState {
|
|
projects: ProjectRecord[];
|
|
patterns: PatternDefinition[];
|
|
sessions: SessionRecord[];
|
|
settings: WorkspaceSettings;
|
|
/** IDs of built-in patterns the user has deleted. Prevents re-adding on load. */
|
|
deletedBuiltinPatternIds?: string[];
|
|
/** Runtime-only MCP probe progress for live UI updates. */
|
|
mcpProbingServerIds?: string[];
|
|
selectedProjectId?: string;
|
|
selectedPatternId?: string;
|
|
selectedSessionId?: string;
|
|
lastUpdatedAt: string;
|
|
}
|
|
|
|
export function createWorkspaceSeed(): WorkspaceState {
|
|
const timestamp = nowIso();
|
|
return {
|
|
projects: [],
|
|
patterns: createBuiltinPatterns(timestamp),
|
|
sessions: [],
|
|
settings: createWorkspaceSettings(),
|
|
lastUpdatedAt: timestamp,
|
|
};
|
|
}
|