
Jesse_ChenandClaude Opus 5
d6c359b205
fix(db): 把校正标题/活跃时间修补搬成迁移
BUG-699 / BUG-704 的数据修补原先只存在于
frontend/scripts/repair-rectification-session-titles.mjs,需要
SCHEMA_DATABASE_URL 才能跑,产品负责人没有任何按钮能执行它,所以那批
错日期的会话标题一直没修。
脚本里本来就是纯 SQL,搬进一次性迁移即可复用现成的
`Migrate Staging Database` 按钮:
- 新增 20260916020000_rectification_session_title_repair.sql,两段 update
逐字取自脚本(合同测试比对,改了哪边都会红);权限守卫沿用
20260915010000 的 schema_owner 写法。
- 幂等:改完之后两段 where 都不再匹配同一行,重复应用影响 0 行。
- 各自 get diagnostics + raise notice 打出行数;db-migrate.mjs 加 notice
转发,否则 node-postgres 会把 NOTICE 丢掉,迁移日志里一个数字都看不到。
- 脚本降级为只读核对工具:--apply 改为报错并指向迁移;导入不再连库。
生产停在 7b620c7a(没有 use-rectification-surface.ts,标题固定且不写库),
两段 where 自然匹配 0 行,是预期内的 no-op。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JUei7K13cYxLHE3Axe4A45
2026-09-16 01:35:01 +00:00
..
2026-09-15 16:40:56 +08:00
2026-08-18 19:30:13 +08:00
2026-09-07 12:18:50 +08:00
2026-09-06 18:29:51 +08:00
2026-08-16 14:07:57 +08:00
2026-08-17 13:14:15 +08:00
2026-08-18 17:28:22 +08:00
2026-08-31 19:57:08 +08:00
2026-08-07 18:24:16 +08:00
2026-08-08 01:38:50 +08:00
2026-08-16 17:55:15 +08:00
2026-08-08 17:29:17 +08:00
2026-09-04 19:06:54 +08:00
2026-08-16 17:55:15 +08:00
2026-08-06 20:15:50 +08:00
2026-08-18 17:28:22 +08:00
2026-09-06 15:16:18 +08:00
2026-08-16 17:55:15 +08:00
2026-09-07 09:10:37 +08:00
2026-08-25 19:31:14 +08:00
2026-08-23 17:02:06 +08:00
2026-08-15 07:06:19 +08:00
2026-09-06 15:16:18 +08:00
2026-08-19 19:40:50 +08:00
2026-08-22 09:10:47 +08:00
2026-09-16 07:13:12 +08:00
2026-08-27 13:59:38 +08:00
2026-09-15 12:27:16 +08:00
2026-09-06 19:22:43 +08:00
2026-09-03 23:22:50 +08:00
2026-09-06 18:29:51 +08:00
2026-09-06 18:29:51 +08:00
2026-07-30 14:38:17 +08:00
2026-09-01 22:58:02 +08:00
2026-07-20 14:58:57 +08:00
2026-07-19 14:48:02 +08:00
2026-09-02 05:56:58 +08:00
2026-07-21 16:06:30 +08:00
2026-07-19 10:56:09 +08:00
2026-07-20 14:45:08 +08:00
2026-09-07 12:18:50 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 08:25:33 +08:00
2026-07-19 10:12:18 +08:00
2026-07-21 15:50:02 +08:00
2026-07-19 04:38:20 +08:00
2026-07-21 22:16:18 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 04:57:43 +08:00
2026-07-19 04:38:20 +08:00
2026-07-19 14:48:02 +08:00
2026-07-19 09:12:45 +08:00
2026-07-21 22:16:18 +08:00
2026-07-19 14:48:02 +08:00
2026-07-19 09:24:23 +08:00
2026-07-19 07:50:23 +08:00
2026-07-19 07:50:23 +08:00
2026-07-19 09:12:45 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-19 08:25:33 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 22:23:29 +08:00
2026-07-19 09:45:32 +08:00
2026-07-19 11:04:25 +08:00
2026-07-19 14:51:06 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-20 14:58:57 +08:00
2026-07-20 11:44:56 +08:00
2026-09-02 05:56:58 +08:00
2026-09-07 12:18:50 +08:00
2026-07-18 18:40:23 +08:00
2026-07-27 11:29:12 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-25 01:17:14 +08:00
2026-09-04 00:26:57 +08:00
2026-07-19 06:42:17 +08:00
2026-07-20 14:58:57 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 07:20:40 +08:00
2026-07-19 06:42:17 +08:00
2026-07-19 14:48:02 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 14:48:02 +08:00
2026-07-19 07:20:40 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-08-15 16:25:39 +08:00
2026-07-18 18:40:23 +08:00
2026-07-21 16:06:30 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 10:12:18 +08:00
2026-07-22 09:43:11 +08:00
2026-09-02 04:29:01 +00:00
2026-09-06 18:29:51 +08:00
2026-09-06 14:34:30 +08:00
2026-09-15 22:51:15 +08:00
2026-07-20 16:52:53 +08:00
2026-09-15 22:51:15 +08:00
2026-09-16 08:02:43 +08:00
2026-09-16 07:13:12 +08:00
2026-09-15 12:27:16 +08:00
2026-09-16 07:13:12 +08:00
2026-09-16 07:13:12 +08:00
2026-08-23 01:49:05 +08:00
2026-09-16 07:13:12 +08:00
2026-08-19 19:40:50 +08:00
2026-09-15 19:29:41 +08:00
2026-09-02 04:29:01 +00:00
2026-09-15 12:27:16 +08:00
2026-09-15 12:27:16 +08:00
2026-09-16 07:38:36 +08:00
2026-07-21 11:58:42 +08:00
2026-09-16 07:38:36 +08:00
2026-09-16 07:38:36 +08:00
2026-09-16 07:13:12 +08:00
2026-09-04 12:46:10 +08:00
2026-07-22 02:35:31 +08:00
2026-09-09 19:16:04 +08:00
2026-08-30 11:19:50 +08:00
2026-09-16 07:38:36 +08:00
2026-08-31 15:16:23 +08:00
2026-07-15 22:23:17 +08:00
2026-09-09 22:46:46 +08:00
2026-07-17 11:56:29 +08:00
2026-09-02 01:21:40 +08:00
2026-09-15 12:27:16 +08:00
2026-09-16 07:38:36 +08:00
2026-09-02 01:21:40 +08:00
2026-08-15 06:04:23 +08:00
2026-09-15 12:27:16 +08:00
2026-09-16 08:33:48 +08:00
2026-08-22 09:10:47 +08:00
2026-09-06 15:16:18 +08:00
2026-07-17 14:09:57 +08:00
2026-08-21 15:29:58 +08:00
2026-09-06 14:34:30 +08:00
2026-08-18 15:44:19 +08:00
2026-07-22 10:50:23 +08:00
2026-09-07 09:10:37 +08:00
2026-08-23 17:02:06 +08:00
2026-09-16 07:41:41 +08:00
2026-09-16 07:38:36 +08:00
2026-08-19 19:08:17 +08:00
2026-09-01 19:51:19 +08:00
2026-09-03 20:58:47 +08:00
2026-09-09 17:38:08 +08:00
2026-09-15 12:27:16 +08:00
2026-09-16 07:36:09 +08:00
2026-09-03 16:33:46 +08:00
2026-08-17 13:03:57 +08:00
2026-08-17 13:03:57 +08:00
2026-09-02 04:39:04 +00:00
2026-08-30 11:19:50 +08:00
2026-08-11 17:57:40 +08:00
2026-08-11 00:10:24 +08:00
2026-08-07 12:08:58 +08:00
2026-08-06 20:15:50 +08:00
2026-08-16 18:15:28 +08:00
2026-08-31 20:49:59 +08:00
2026-08-18 17:28:22 +08:00
2026-09-16 07:41:41 +08:00
2026-08-06 20:15:50 +08:00
2026-07-21 16:03:53 +08:00
2026-09-16 07:41:41 +08:00
2026-09-07 11:08:00 +08:00
2026-08-15 05:10:37 +08:00
2026-09-07 14:19:21 +08:00
2026-08-30 22:59:17 +08:00
2026-09-07 12:18:50 +08:00
2026-08-07 19:05:01 +08:00
2026-09-07 09:10:37 +08:00
2026-08-10 10:49:25 +08:00
2026-08-11 16:22:02 +08:00
2026-08-22 20:48:01 +08:00
2026-08-17 14:16:05 +08:00
2026-08-05 11:13:34 +08:00
2026-09-06 18:29:51 +08:00
2026-09-15 17:54:20 +08:00
2026-09-16 00:22:00 +08:00
2026-09-02 04:34:14 +08:00
2026-08-31 19:57:08 +08:00
2026-08-15 23:55:57 +08:00
2026-08-19 19:39:01 +08:00
2026-09-03 16:33:46 +08:00
2026-09-07 14:19:21 +08:00
2026-08-18 17:28:22 +08:00
2026-09-15 12:27:16 +08:00
2026-09-16 08:33:48 +08:00
2026-09-02 04:29:01 +00:00
2026-09-06 18:29:51 +08:00
2026-08-10 19:38:27 +08:00
2026-08-10 19:38:27 +08:00
2026-08-10 19:38:27 +08:00
2026-07-21 17:52:25 +08:00
2026-08-10 19:38:27 +08:00
2026-08-10 19:38:27 +08:00
2026-08-06 20:15:50 +08:00
2026-07-21 17:52:25 +08:00
2026-08-11 16:22:02 +08:00
2026-08-07 12:55:32 +08:00
2026-08-11 19:46:11 +08:00
2026-09-07 14:19:21 +08:00
2026-08-29 12:01:50 +00:00
2026-08-31 10:00:03 +08:00
2026-09-06 18:29:51 +08:00
2026-09-15 12:46:59 +08:00
2026-08-05 11:13:34 +08:00
2026-08-17 18:42:54 +08:00
2026-09-15 12:27:16 +08:00
2026-08-08 17:29:17 +08:00
2026-08-08 17:29:17 +08:00
2026-07-18 18:40:23 +08:00
2026-09-15 12:27:16 +08:00
2026-07-22 15:51:54 +08:00
2026-09-01 20:35:02 +00:00
2026-09-07 14:19:21 +08:00
2026-09-04 23:09:21 +08:00
2026-08-09 00:54:55 +08:00
2026-09-06 21:46:16 +08:00
2026-09-06 21:46:16 +08:00
2026-09-04 22:22:38 +08:00
2026-09-04 23:09:21 +08:00
2026-09-04 20:10:52 +08:00
2026-08-15 05:10:37 +08:00
2026-09-07 14:19:21 +08:00
2026-09-07 14:19:21 +08:00
2026-09-06 21:48:00 +08:00
2026-09-09 18:44:14 +08:00
2026-09-07 11:08:00 +08:00
2026-09-03 02:07:18 +08:00
2026-09-09 03:30:15 +00:00
2026-08-15 05:10:37 +08:00
2026-09-04 16:30:44 +08:00
2026-09-09 15:11:00 +08:00
2026-09-06 21:46:16 +08:00
2026-09-03 09:58:06 +08:00
2026-08-18 19:30:13 +08:00
2026-08-31 04:30:40 +08:00
2026-08-15 06:04:23 +08:00
2026-08-15 09:32:28 +08:00
2026-09-06 21:46:16 +08:00
2026-09-06 18:29:51 +08:00
2026-09-09 11:01:15 +08:00
2026-09-02 05:56:58 +08:00
2026-07-17 13:42:50 +08:00
2026-09-09 17:38:08 +08:00
2026-09-08 19:56:48 +08:00
2026-09-03 23:49:42 +08:00
2026-09-09 19:34:39 +08:00
2026-09-16 07:13:12 +08:00
2026-09-11 01:43:02 +08:00
2026-09-13 16:50:25 +08:00
2026-09-16 08:33:48 +08:00
2026-08-22 20:48:01 +08:00
2026-08-05 00:58:53 +08:00
2026-09-16 07:06:57 +08:00
2026-09-14 23:20:15 +08:00
2026-09-07 12:18:50 +08:00
2026-09-07 09:10:37 +08:00
2026-09-14 23:20:15 +08:00
2026-09-09 00:12:20 +08:00
2026-09-15 17:10:53 +08:00
2026-09-14 15:41:04 +08:00
2026-08-31 02:15:12 +08:00
2026-09-11 01:43:02 +08:00
2026-09-07 12:18:50 +08:00
2026-09-13 16:50:25 +08:00
2026-09-14 12:12:27 +08:00
2026-09-16 07:06:57 +08:00
2026-09-14 12:12:27 +08:00
2026-09-13 22:45:31 +08:00
2026-09-11 01:43:02 +08:00
2026-09-11 01:43:02 +08:00
2026-09-05 21:06:38 +08:00
2026-09-11 14:33:39 +08:00
2026-09-15 09:43:51 +08:00
2026-09-07 12:18:50 +08:00
2026-09-10 09:23:35 +08:00
2026-09-13 22:45:31 +08:00
2026-09-16 07:13:12 +08:00
2026-09-14 17:06:51 +08:00
2026-09-11 15:22:55 +08:00
2026-08-28 18:04:34 +08:00
2026-09-13 23:08:55 +08:00
2026-09-13 22:45:31 +08:00
2026-09-10 17:38:37 +08:00
2026-08-24 21:26:57 +08:00
2026-09-16 07:13:12 +08:00
2026-09-11 01:43:02 +08:00
2026-09-16 08:33:48 +08:00
2026-09-07 15:46:33 +08:00
2026-09-13 16:50:25 +08:00
2026-09-08 15:47:25 +08:00
2026-08-19 10:41:47 +08:00
2026-09-13 22:45:31 +08:00
2026-07-19 09:00:14 +08:00
2026-09-13 22:45:31 +08:00
2026-09-11 11:49:52 +08:00
2026-09-15 09:43:51 +08:00
2026-09-09 18:32:03 +08:00
2026-09-11 01:43:02 +08:00
2026-08-27 13:59:38 +08:00
2026-09-14 22:56:01 +08:00
2026-08-30 10:55:11 +08:00
2026-09-09 18:10:02 +08:00
2026-09-14 18:30:40 +08:00
2026-09-11 01:43:02 +08:00
2026-09-16 07:13:12 +08:00
2026-09-13 16:50:25 +08:00
2026-09-15 17:10:53 +08:00
2026-09-13 22:45:31 +08:00
2026-09-07 09:10:37 +08:00
2026-09-13 22:45:31 +08:00
2026-09-16 07:32:34 +08:00
2026-09-12 06:34:35 +08:00
2026-09-16 01:35:01 +00:00
2026-09-15 14:48:03 +08:00
2026-09-13 00:23:11 +08:00
2026-09-16 07:13:12 +08:00
2026-09-10 11:59:47 +08:00
2026-09-11 01:43:02 +08:00
2026-09-02 19:55:20 +08:00
2026-09-16 07:13:12 +08:00
2026-09-14 12:12:27 +08:00
2026-09-07 09:10:37 +08:00
2026-09-13 11:03:20 +08:00
2026-09-08 09:05:01 +08:00
2026-09-13 16:50:25 +08:00
2026-09-14 15:41:04 +08:00
2026-09-16 08:33:48 +08:00
2026-09-14 23:20:15 +08:00
2026-09-16 07:13:12 +08:00
2026-09-14 22:56:01 +08:00
2026-09-14 01:51:55 +08:00
2026-09-15 17:10:53 +08:00
2026-09-14 22:56:01 +08:00
2026-09-15 17:10:53 +08:00
2026-09-14 17:06:51 +08:00
2026-09-09 18:10:02 +08:00
2026-09-16 07:13:12 +08:00
2026-09-16 07:06:57 +08:00
2026-09-14 03:42:48 +08:00
2026-09-14 13:43:03 +08:00
2026-09-13 22:45:31 +08:00
2026-09-09 19:35:23 +08:00
2026-09-13 22:45:31 +08:00
2026-09-07 09:10:37 +08:00
2026-09-16 07:06:57 +08:00
2026-09-13 22:45:31 +08:00
2026-08-19 07:44:23 +08:00
2026-09-15 17:10:53 +08:00
2026-09-02 20:47:16 +08:00
2026-09-16 07:06:57 +08:00
2026-09-16 07:06:57 +08:00
2026-09-16 07:32:34 +08:00
2026-09-04 19:06:54 +08:00
2026-09-13 16:50:25 +08:00
2026-09-02 19:55:20 +08:00
2026-08-19 20:11:51 +08:00
2026-09-16 07:13:12 +08:00
2026-09-10 00:26:58 +08:00
2026-09-16 07:13:12 +08:00
2026-09-16 07:06:57 +08:00
2026-09-07 12:18:50 +08:00
2026-09-13 22:45:31 +08:00
2026-09-07 15:46:33 +08:00
2026-08-07 19:05:01 +08:00
2026-09-03 23:57:27 +08:00
2026-09-04 19:17:14 +08:00
2026-09-07 09:10:37 +08:00
2026-09-09 15:11:00 +08:00
2026-09-03 23:57:27 +08:00
2026-09-04 02:11:57 +08:00
2026-09-06 21:46:16 +08:00
2026-08-19 19:39:01 +08:00
2026-08-17 13:14:15 +08:00
2026-09-07 11:08:00 +08:00
2026-08-29 09:44:53 +08:00
2026-09-06 21:46:16 +08:00
2026-09-16 07:38:36 +08:00
2026-09-09 10:47:47 +08:00
2026-09-06 14:34:30 +08:00
2026-09-06 14:34:30 +08:00
2026-09-15 17:10:53 +08:00
2026-07-17 14:09:57 +08:00
2026-09-15 14:48:03 +08:00
2026-09-06 14:34:30 +08:00
2026-09-06 19:22:43 +08:00
2026-09-06 18:29:51 +08:00
2026-09-06 18:29:51 +08:00
2026-09-15 19:29:41 +08:00
2026-09-06 14:34:30 +08:00
2026-09-05 00:28:26 +08:00
2026-09-15 12:27:16 +08:00
2026-08-14 16:52:35 +08:00
2026-08-14 16:52:35 +08:00
2026-09-13 22:45:31 +08:00
2026-09-15 23:36:09 +08:00
2026-08-06 19:18:04 +08:00
2026-08-29 03:39:43 +08:00
2026-09-15 12:27:16 +08:00
2026-09-02 04:29:01 +00:00
2026-08-08 21:34:03 +08:00
2026-08-29 12:12:06 +00:00
2026-08-18 15:44:19 +08:00
2026-09-15 12:46:59 +08:00
2026-07-22 00:07:42 +08:00
2026-09-15 16:40:56 +08:00
2026-08-30 15:55:45 +08:00