Archived
`app/fallback-poll.ts`:任务界面开着时每 10 秒把 `desk` 下**在用的**查询(清单 / 这一单 / 角标, `type:'active'`)各重取一次,推送漏了画面最多旧 10 秒。**不取消在途**(`cancelRefetch:false` —— 慢接口不被兜底打成永远取不回)、页签藏起不打、回前台先补一趟;壳层 `useEffect` 起停, 切模块 / 卸载即 `stop()`(定时器与可见性监听一起摘)。`doc` 可注入,4 测钉死 (周期 / 停止 / 可见性 / 在途去重,第四条做过变异验证)。 `queryKeys.desk` 新增作整支前缀,订阅层的裸 `['desk']` 改用它。 编码规范 §9.2「组件禁止自行轮询」照旧,补一句:兜底只此一处、由壳层起停。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0167qWjeyBwvfdGovd7FWbCu
16 lines
731 B
TypeScript
16 lines
731 B
TypeScript
/**
|
|
* 查询键 —— 纯数据,自 `app/query.ts` 析出(2026-08-25):
|
|
* feature 层(desk-me)也要按同一批键共享缓存,而 feature 不许回引 app 内部(§11.3),
|
|
* 键放 shared 两面都能取。键名仍以此处为唯一出处,不手写字面量。
|
|
*/
|
|
export const queryKeys = {
|
|
/** 「我是谁、能进哪几个端」—— ADR-012 后身份来自 `GET /api/me`(Principal) */
|
|
me: ['me'] as const,
|
|
/** 工作台整支 —— 失效 / 兜底轮询按这个前缀扫,下面四把都在它名下 */
|
|
desk: ['desk'] 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,
|
|
};
|