refactor(chat): rely on server message limits

This commit is contained in:
2026-06-23 11:20:48 +08:00
parent d81abd6efd
commit 6bcc070ba1
19 changed files with 46 additions and 489 deletions
-15
View File
@@ -18,23 +18,12 @@ export interface ChatState {
* - 非 VIP / 游客:固定 false,走 HTTP
*/
wsConnected: boolean;
/** 游客剩余配额(次/天)—— 仅游客业务展示用
*/
guestRemainingQuota: number;
/** 游客总配额(仅游客展示用) */
guestTotalQuota: number;
quotaExceededTrigger: number;
paywallTriggered: boolean;
paywallReason: "daily_limit" | "photo_paywall" | null;
paywallDetail: { usedToday: number; limit: number } | null;
isLoadingMore: boolean;
hasMore: boolean;
historyOffset: number;
/** 游客配额加载完成标志(仅 guestSession 期间) —— default false
* - guestSession.initializing 走 always barrier`quotaLoaded && historyLoaded` 才进 ready
* - user sessions 永不为 true(不调 loadQuota)—— OK,不影响 barrier
*/
quotaLoaded: boolean;
/** history 加载完成标志(initial load —— local → network → save 跑完)
* - guestSession.initializing / user sessions initializing 走 always barrier
* - 不被 `loadMoreHistoryActor` 设置(翻页是另一码事)
@@ -46,15 +35,11 @@ export const initialState: ChatState = {
messages: [],
isReplyingAI: false,
wsConnected: false,
guestRemainingQuota: 0,
guestTotalQuota: 0,
quotaExceededTrigger: 0,
paywallTriggered: false,
paywallReason: null,
paywallDetail: null,
isLoadingMore: false,
hasMore: true,
historyOffset: 0,
quotaLoaded: false,
historyLoaded: false,
};