feat(admin): 资源与策略 - 后台统一维护账号配额与运行时请求限制 (#37)

Fixes #35

Co-authored-by: ddCat <ddcat666@88.com>
This commit is contained in:
ddcat666
2026-07-23 21:19:07 +08:00
committed by GitHub
parent 78e27507c4
commit d3dfede48f
40 changed files with 1202 additions and 488 deletions

View File

@@ -1,9 +1,9 @@
import type { CanvasGenerationBatch, CanvasGenerationBatchStatus } from "@/types/canvas";
const TASK_CAPACITY_MESSAGE = "同时排队或运行的任务最多 5 个";
const TASK_CAPACITY_MESSAGE = /同时排队或运行的任务最多 \d+ 个/;
export function isGenerationTaskCapacityError(error: unknown) {
return error instanceof Error && error.message.includes(TASK_CAPACITY_MESSAGE);
return error instanceof Error && TASK_CAPACITY_MESSAGE.test(error.message);
}
export function isGenerationCostUncertainError(error: unknown) {

View File

@@ -19,6 +19,7 @@ export async function applyUserSession(payload: AuthSessionPayload) {
]);
const persistedConfig = scopedLocalStorage.getItem(CONFIG_STORE_KEY);
useUserStore.getState().setUser(payload.user);
useUserStore.getState().setRuntimeLimits(payload.runtimeLimits);
await Promise.all([useCanvasStore.persist.rehydrate(), useAssetStore.persist.rehydrate(), useConfigStore.persist.rehydrate()]);
// Zustand 在目标 scope 没有快照时会保留旧内存,必须显式恢复该 scope 的空状态。
if (!persistedCanvas) useCanvasStore.setState({ projects: [] });