fix(web): 会话列表合同跟着外壳搬家,无活跃会话不再静默吞发送
Independent Staging Quality Gate / validate (push) Failing after 6m30s
Independent Staging Quality Gate / publish (push) Skipped

四条源码合同改到 (app)/layout 与注册载荷两端对断。列表只剩校正会话时普通输入框锁定,发送会打开校正或给出提示。
This commit is contained in:
jesse-ux
2026-09-17 23:06:01 +08:00
parent 38cb81ff75
commit db5b0a214b
13 changed files with 201 additions and 20 deletions
+14 -1
View File
@@ -64,6 +64,7 @@ import { completedOnboardingTranscript, isProfileComplete, selectedBirthPlace }
import { pendingConsultationStorageKey, timestamp } from "@/lib/home-types";
import {
consultSendBlockedByRectificationSession,
missingActiveSessionSendAction,
SESSION_NOT_CONSULTATION_CODE,
} from "@/lib/rectification-session-composer-guard";
import type {
@@ -514,7 +515,19 @@ export function useConsultationRun(params: ConsultationRunParams) {
? sessions.find((session) => session.id === targetSessionId)
: activeSession;
const currentSession = options.sessionOverride ?? liveSession;
if (!question || !currentSession || !modelCatalog || !account) return false;
if (!question) return false;
if (!currentSession) {
const action = missingActiveSessionSendAction(sessions);
if ("openSessionId" in action) {
setDraft(originalQuestion);
await openRectificationSession(action.openSessionId);
setDraft(originalQuestion);
return false;
}
setComposerNotice(action.notice);
return false;
}
if (!modelCatalog || !account) return false;
if (consultSendBlockedByRectificationSession(currentSession)) {
if (resuming) {
pendingConsultation.current = null;