fix(chat): keep rectification sessions findable and keep the delivery card
Independent Staging Quality Gate / validate (push) Failing after 6m45s
Independent Staging Quality Gate / publish (push) Skipped

Rectification answers now advance chat_sessions.updated_at (BUG-704).
A ?c= id missing from the loaded page is fetched before anyone may call
it deleted (BUG-705). The range card no longer has a post-card tie-break
button; live questions leave the card visible with adopt locked
(BUG-706/708). Spoken copy bans 相对支持度 (BUG-709).

Task docs assigned 700-704; qizheng already took 700-703.
This commit is contained in:
jesse-ux
2026-09-15 17:10:53 +08:00
parent d3a2c48ba5
commit f51e494c5a
37 changed files with 799 additions and 177 deletions
@@ -382,9 +382,8 @@ export function interviewChoiceCardUnavailable(input: Readonly<{
// A choice question without a GET card is a dead tap target, not a
// collect-wait. The repair-exit path must take over.
if (input.questionKind === "choice" && !input.hasChoiceCard) return true;
// Spoken targeted existence is the same dead end: the stem is a card
// question stored as collect_spoken. Year-stage targeted questions stay spoken.
const questionId = (input.questionId ?? "").replace(/:(?:next|next2|next3)$/, "");
if (!input.hasChoiceCard && /^varga\./.test(questionId)) return true;
if (
input.questionKind === "collect_spoken"
&& !input.hasChoiceCard