feat: add Discuss and Explore subagents for dynamic critique and code exploration

- Implement Discuss Subagent for multi-perspective critique with dynamic perspectives.
- Create Explore Subagent for shared codebase exploration with centralized caching.
- Add tests for CcwToolsMcpCard component to ensure enabled tools are preserved on config save.
- Introduce SessionPreviewPanel component for previewing and selecting sessions for Memory V2 extraction.
- Develop CommandCreateDialog component for creating/importing commands with import and CLI generate modes.
This commit is contained in:
catlog22
2026-02-27 17:25:52 +08:00
parent 3db74cc7b0
commit 3b92bfae8c
45 changed files with 6508 additions and 128 deletions

View File

@@ -74,7 +74,8 @@
"categories": {
"notification": "Notification",
"indexing": "Indexing",
"automation": "Automation"
"automation": "Automation",
"utility": "Utility"
},
"templates": {
"session-start-notify": {
@@ -116,6 +117,30 @@
"project-state-inject": {
"name": "Project State Inject",
"description": "Inject project guidelines and recent dev history at session start"
},
"memory-v2-extract": {
"name": "Memory V2 Extract",
"description": "Trigger Phase 1 extraction when session ends (after idle period)"
},
"memory-v2-auto-consolidate": {
"name": "Memory V2 Auto Consolidate",
"description": "Trigger Phase 2 consolidation after extraction jobs complete"
},
"memory-sync-dashboard": {
"name": "Memory Sync Dashboard",
"description": "Sync memory V2 status to dashboard on changes"
},
"memory-auto-compress": {
"name": "Auto Memory Compress",
"description": "Automatically compress memory when entries exceed threshold"
},
"memory-preview-extract": {
"name": "Memory Preview & Extract",
"description": "Preview extraction queue and extract eligible sessions"
},
"memory-status-check": {
"name": "Memory Status Check",
"description": "Check memory extraction and consolidation status"
}
},
"actions": {

View File

@@ -10,7 +10,8 @@
"collapseAll": "Collapse All",
"copy": "Copy",
"showDisabled": "Show Disabled",
"hideDisabled": "Hide Disabled"
"hideDisabled": "Hide Disabled",
"cancel": "Cancel"
},
"source": {
"builtin": "Built-in",
@@ -57,5 +58,45 @@
"clickToDisableAll": "Click to disable all",
"noCommands": "No commands in this group",
"noEnabledCommands": "No enabled commands in this group"
},
"create": {
"title": "Create Command",
"location": "Location",
"locationProject": "Project Commands",
"locationProjectHint": ".claude/commands/",
"locationUser": "Global Commands",
"locationUserHint": "~/.claude/commands/",
"mode": "Creation Mode",
"modeImport": "Import File",
"modeImportHint": "Import command from existing file",
"modeGenerate": "AI Generate",
"modeGenerateHint": "Generate command using AI",
"sourcePath": "Source File Path",
"sourcePathPlaceholder": "Enter absolute path to command file",
"sourcePathHint": "File must be a valid command markdown file",
"customName": "Custom Name",
"customNamePlaceholder": "Leave empty to use original name",
"customNameHint": "Optional, overrides default command name",
"commandName": "Command Name",
"commandNamePlaceholder": "Enter command name",
"commandNameHint": "Used as the command file name",
"descriptionLabel": "Command Description",
"descriptionPlaceholder": "Describe what this command should do...",
"descriptionHint": "AI will generate command content based on this description",
"generateInfo": "AI will use CLI tools to generate the command",
"generateTimeHint": "Generation may take some time",
"validate": "Validate",
"import": "Import",
"generate": "Generate",
"validating": "Validating...",
"validCommand": "Validation passed",
"invalidCommand": "Validation failed",
"creating": "Creating...",
"created": "Command \"{name}\" created successfully",
"createError": "Failed to create command",
"sourcePathRequired": "Please enter source file path",
"commandNameRequired": "Please enter command name",
"descriptionRequired": "Please enter command description",
"validateFirst": "Please validate the command file first"
}
}

View File

@@ -169,6 +169,10 @@
"saveConfig": "Save Configuration",
"saving": "Saving..."
},
"feedback": {
"saveSuccess": "Configuration saved",
"saveError": "Failed to save configuration"
},
"scope": {
"global": "Global",
"project": "Project",

View File

@@ -180,6 +180,28 @@
"statusBanner": {
"running": "Pipeline Running - {count} job(s) in progress",
"hasErrors": "Pipeline Idle - {count} job(s) failed"
},
"preview": {
"title": "Extraction Queue Preview",
"selectSessions": "Search sessions...",
"sourceCcw": "CCW",
"sourceNative": "Native",
"selectAll": "Select All",
"selectNone": "Select None",
"extractSelected": "Extract Selected ({count})",
"noSessions": "No sessions found",
"total": "Total",
"eligible": "Eligible",
"extracted": "Already Extracted",
"ready": "Ready",
"previewQueue": "Preview Queue",
"includeNative": "Include Native Sessions",
"selected": "{count} sessions selected",
"selectHint": "Select sessions to extract",
"ineligible": "Ineligible"
},
"extraction": {
"selectiveTriggered": "Selective extraction triggered"
}
}
}