Files
rootandClaude Opus 5.5 fa76d7563c feat(控制台): 去掉待处理中心,问题回到发生处
- 侧栏与命令面板没有「待处理」;/console/inbox?kind= 按问题类型跳到整理记录「需要处理」、下载面板、运行状态或订阅
- 整理记录加「需要处理」筛选,行内写原因与推荐动作(指定作品 / 重新整理 / 让智能体识别 / 替换·保留两者·跳过 / 忽略),
  详情页同样可处理;处理按钮从原待处理页抽成 components/decisions/decision-actions.tsx 复用
- 铃铛只放等你批准的智能体操作与系统健康;首页「要我处理」与运行状态「需要关注」放汇总计数,运行状态加智能体用量
- 设置 → 智能体:预算卡改为「用量与限制」(只剩单次工具调用与时长,附花费统计),自动调查卡加「整理识别不到作品时叫智能体识别」
- 集数待确认的原因显示在作品页集数映射(可确认建议规则 / 智能体建议)与订阅详情;未识别资源在媒体库「未识别」里直接选候选或指定
- 下载、站点、任务里指向待处理的链接改到对应页面

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 16:47:25 +08:00

38 lines
1.5 KiB
TypeScript

import { useQuery, useQueryClient } from "@tanstack/react-query";
import { AgentSpend, AttentionSummary } from "@umt/contracts";
import { useRef } from "react";
import { useSse } from "~/lib/sse.ts";
import { apiParsed } from "./parse.ts";
// 需要关注的汇总(2026-10-06 去掉待处理中心后):铃铛只放等你批准的智能体操作与系统健康,
// 首页 / 运行状态放汇总计数(整理需要处理的条数等),点进去到对应页面。
export const attentionKeys = { all: ["attention"] as const, spend: ["attention", "agent-spend"] as const };
/** 事项、整理记录变化时(节流)刷新;另有 60 秒兜底轮询 */
export function useAttention() {
const qc = useQueryClient();
const timer = useRef<ReturnType<typeof setTimeout> | null>(null);
useSse(["decision.created", "decision.updated", "organization.changed"], () => {
if (timer.current) return;
timer.current = setTimeout(() => {
timer.current = null;
void qc.invalidateQueries({ queryKey: attentionKeys.all });
}, 800);
});
return useQuery({
queryKey: attentionKeys.all,
queryFn: ({ signal }) => apiParsed(AttentionSummary, "/api/v1/attention", { signal }),
refetchInterval: 60_000,
});
}
/** 智能体用量:今天与最近 7 天按会话类型的次数、token 与费用(不设上限,只展示) */
export function useAgentSpend() {
return useQuery({
queryKey: attentionKeys.spend,
queryFn: ({ signal }) => apiParsed(AgentSpend, "/api/v1/agent/usage", { signal }),
refetchInterval: 5 * 60_000,
});
}