+
{t('skillsClawhubStatus')}: {clawhubInstalled ? t('installed') : t('notInstalled')}
{!clawhubInstalled && (
@@ -223,9 +223,16 @@ const Skills: React.FC = () => {
-
{t('skillsClawhubMissingTitle')}
-
{t('skillsInstallPanelHint')}
+
+
+
+
+
+
+
{t('skillsClawhubMissingTitle')}
+
{t('skillsInstallPanelHint')}
+
+
)}
diff --git a/webui/src/pages/SubagentProfiles.tsx b/webui/src/pages/SubagentProfiles.tsx
index 4a4b283..68499ca 100644
--- a/webui/src/pages/SubagentProfiles.tsx
+++ b/webui/src/pages/SubagentProfiles.tsx
@@ -1,5 +1,6 @@
import React, { useEffect, useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next';
+import { Check } from 'lucide-react';
import { useAppContext } from '../context/AppContext';
import { useUI } from '../context/UIContext';
@@ -8,7 +9,6 @@ type SubagentProfile = {
name?: string;
notify_main_policy?: string;
role?: string;
- system_prompt?: string;
system_prompt_file?: string;
tool_allowlist?: string[];
memory_namespace?: string;
@@ -33,7 +33,6 @@ const emptyDraft: SubagentProfile = {
name: '',
notify_main_policy: 'final_only',
role: '',
- system_prompt: '',
system_prompt_file: '',
memory_namespace: '',
status: 'active',
@@ -81,7 +80,6 @@ const SubagentProfiles: React.FC = () => {
name: next.name || '',
notify_main_policy: next.notify_main_policy || 'final_only',
role: next.role || '',
- system_prompt: next.system_prompt || '',
system_prompt_file: next.system_prompt_file || '',
memory_namespace: next.memory_namespace || '',
status: (next.status as string) || 'active',
@@ -142,7 +140,6 @@ const SubagentProfiles: React.FC = () => {
name: p.name || '',
notify_main_policy: p.notify_main_policy || 'final_only',
role: p.role || '',
- system_prompt: p.system_prompt || '',
system_prompt_file: p.system_prompt_file || '',
memory_namespace: p.memory_namespace || '',
status: (p.status as string) || 'active',
@@ -195,7 +192,6 @@ const SubagentProfiles: React.FC = () => {
name: draft.name || '',
notify_main_policy: draft.notify_main_policy || 'final_only',
role: draft.role || '',
- system_prompt: draft.system_prompt || '',
system_prompt_file: draft.system_prompt_file || '',
memory_namespace: draft.memory_namespace || '',
status: draft.status || 'active',
@@ -295,11 +291,20 @@ const SubagentProfiles: React.FC = () => {
system_prompt_file content
diff --git a/webui/src/pages/Subagents.tsx b/webui/src/pages/Subagents.tsx
index 6354ad3..326cfc3 100644
--- a/webui/src/pages/Subagents.tsx
+++ b/webui/src/pages/Subagents.tsx
@@ -91,7 +91,6 @@ type RegistrySubagent = {
display_name?: string;
role?: string;
description?: string;
- system_prompt?: string;
system_prompt_file?: string;
prompt_file_found?: boolean;
memory_namespace?: string;
@@ -392,7 +391,6 @@ const Subagents: React.FC = () => {
const [configAgentID, setConfigAgentID] = useState('');
const [configRole, setConfigRole] = useState('');
const [configDisplayName, setConfigDisplayName] = useState('');
- const [configSystemPrompt, setConfigSystemPrompt] = useState('');
const [configSystemPromptFile, setConfigSystemPromptFile] = useState('');
const [configToolAllowlist, setConfigToolAllowlist] = useState('');
const [configRoutingKeywords, setConfigRoutingKeywords] = useState('');
diff --git a/webui/src/pages/TaskAudit.tsx b/webui/src/pages/TaskAudit.tsx
index e41147b..bb3327b 100644
--- a/webui/src/pages/TaskAudit.tsx
+++ b/webui/src/pages/TaskAudit.tsx
@@ -1,5 +1,6 @@
import React, { useEffect, useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next';
+import { Check } from 'lucide-react';
import { useAppContext } from '../context/AppContext';
import { formatLocalDateTime } from '../utils/time';
@@ -143,11 +144,20 @@ const TaskAudit: React.FC = () => {
);
})}
@@ -240,11 +250,20 @@ const TaskAudit: React.FC = () => {
);
})}