fix(chat): keep rectification sessions findable and keep the delivery card
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:
@@ -1547,3 +1547,22 @@ test("host-fallback phase migration is forward-only and does not rewrite the fro
|
||||
/answer\.host_fallback/,
|
||||
);
|
||||
});
|
||||
|
||||
test("rectification activity touches chat_sessions.updated_at without a metadata PATCH", () => {
|
||||
const filename = "20260915010000_rectification_touch_chat_session.sql";
|
||||
const touch = readFileSync(
|
||||
new URL(`../supabase/migrations/${filename}`, import.meta.url),
|
||||
"utf8",
|
||||
);
|
||||
assert.match(touch, /^begin;[\s\S]*^commit;$/m);
|
||||
assert.equal(
|
||||
existsSync(fileURLToPath(new URL(`../db/migrations/${filename}`, import.meta.url))),
|
||||
false,
|
||||
"business migration must not be copied into frontend/db/migrations (BUG-127/BUG-144)",
|
||||
);
|
||||
assert.match(touch, /rectification_touch_chat_session_requires_schema_owner/);
|
||||
assert.match(touch, /touch_chat_session_from_rectification_case/);
|
||||
assert.match(touch, /after update of last_activity_at/);
|
||||
assert.match(touch, /session_type = 'birth_time_rectification'/);
|
||||
assert.doesNotMatch(touch, /persistSession/);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user