/** * 服务端状态 —— TanStack Query(编码规范 §1 / §9.2)。 * 「SSE 事件到达 → 按信封目标失效对应缓存,由订阅层统一做;组件禁止自行轮询或手写缓存。」 */ import { QueryClient } from '@tanstack/react-query'; export const queryClient = new QueryClient({ defaultOptions: { queries: { // 缓存失效由 SSE 订阅层驱动,不靠组件轮询 refetchOnWindowFocus: false, retry: 1, staleTime: 5_000, }, }, }); export const queryKeys = { session: ['session'] as const, tasks: ['desk', 'tasks'] as const, task: (id: string) => ['desk', 'task', id] as const, messages: ['desk', 'messages'] as const, approvals: ['desk', 'approvals'] as const, };