fix: P0 panic风险修复 + P1编译warnings清零 + P2代码/文档清理
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled

P0 安全性:
- account/handlers.rs: .unwrap() → .expect() 语义化错误信息
- relay/handlers.rs: SSE Response .unwrap() → .expect()

P1 编译质量 (6 warnings → 0):
- kernel.rs: 移除未使用的 Capability import 和 config_clone 变量
- pipeline_commands.rs: 未使用变量 id → _id
- db.rs: 移除多余括号
- relay/service.rs: 移除未使用的 StreamExt import
- telemetry/service.rs: 抑制 param_idx 未读赋值警告
- main.rs: TcpKeepalive::with_retries() Linux-only 条件编译

P2 代码清理:
- 移除 handStore/HandsPanel/HandTaskPanel/gateway-api/SchedulerPanel 调试 console.log
- SchedulerPanel: 修复 updateWorkflow 未解构导致 TS 编译错误
- 文档清理 zclaw-channels 已移除 crate 的引用
This commit is contained in:
iven
2026-03-30 11:33:47 +08:00
parent 813b49a986
commit 834aa12076
17 changed files with 51 additions and 42 deletions

View File

@@ -93,11 +93,9 @@ export function HandTaskPanel({ handId, onBack }: HandTaskPanelProps) {
}
setIsActivating(true);
console.log(`[HandTaskPanel] Activating hand: ${selectedHand.id} (${selectedHand.name})`);
try {
const result = await triggerHand(selectedHand.id);
console.log(`[HandTaskPanel] Activation result:`, result);
if (result) {
toast(`Hand "${selectedHand.name}" 已成功启动`, 'success');

View File

@@ -475,11 +475,9 @@ export function HandsPanel() {
const handleActivate = useCallback(async (hand: Hand, params?: Record<string, unknown>) => {
setActivatingHandId(hand.id);
console.log(`[HandsPanel] Activating hand: ${hand.id} (${hand.name})`, params ? 'with params:' : '', params);
try {
const result = await triggerHand(hand.id, params);
console.log(`[HandsPanel] Hand activation result:`, result);
if (result) {
toast(`Hand "${hand.name}" 已成功激活`, 'success');

View File

@@ -653,6 +653,7 @@ export function SchedulerPanel() {
const workflows = useWorkflowStore((s) => s.workflows);
const loadWorkflows = useWorkflowStore((s) => s.loadWorkflows);
const createWorkflow = useWorkflowStore((s) => s.createWorkflow);
const updateWorkflow = useWorkflowStore((s) => s.updateWorkflow);
const executeWorkflow = useWorkflowStore((s) => s.triggerWorkflow);
const handLoading = useHandStore((s) => s.isLoading);
const workflowLoading = useWorkflowStore((s) => s.isLoading);
@@ -707,7 +708,7 @@ export function SchedulerPanel() {
try {
if (editingWorkflow) {
// Update existing workflow
console.log('Update workflow:', editingWorkflow.id, data);
await updateWorkflow(editingWorkflow.id, data);
} else {
// Create new workflow
await createWorkflow(data);
@@ -721,7 +722,7 @@ export function SchedulerPanel() {
} finally {
setIsSavingWorkflow(false);
}
}, [editingWorkflow, createWorkflow, loadWorkflows]);
}, [editingWorkflow, createWorkflow, updateWorkflow, loadWorkflows]);
const handleExecuteWorkflow = useCallback(async (workflowId: string) => {
try {