root
a44ed21967
feat(tenant): add brand publish-records list and harden enterprise site management
...
- Add GET /api/tenant/publish-records: brand-scoped paginated list that merges
in-flight (queued/publishing) records ahead of history (success/failed/cancelled),
enriched with article title and latest desktop task id; wire up
service/handler/router/swagger/router_test
- Rework PublishManagementView to consume publish-records instead of desktop
publish tasks; add publishRecordsApi + shared-types
(ListPublishRecordsParams, PublishRecordListResponse)
- Enterprise site Update: distinguish explicit null from missing PATCH fields via
EnterpriseSitePatchString, dedup site_url before write, verify RowsAffected,
and map unique-constraint violations to a clear conflict
- MediaView: enterprise site edit/delete flows with favicon fallback handling
- Localize enterprise site / PBootCMS error messages to Chinese across the
backend and the admin-web error map, plus legacy raw-message translation
- deploy: gate migration-coupled service rollouts behind RUN_MIGRATIONS unless
ALLOW_SKIP_MIGRATIONS_FOR_APP_ROLLOUT=true; handle empty SERVICES safely
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 11:40:46 +08:00
..
2026-04-28 11:33:47 +08:00
2026-05-13 15:59:39 +08:00
2026-04-15 14:20:26 +08:00
2026-04-15 14:20:26 +08:00
2026-06-02 14:50:12 +08:00
2026-05-20 15:37:25 +08:00
2026-05-20 15:37:25 +08:00
2026-04-16 21:12:35 +08:00
2026-06-06 13:06:14 +08:00
2026-05-24 22:19:43 +08:00
2026-05-24 22:19:43 +08:00
2026-05-20 18:09:53 +08:00
2026-05-20 18:09:53 +08:00
2026-04-12 09:56:18 +08:00
2026-05-20 15:37:25 +08:00
2026-05-11 11:11:21 +08:00
2026-05-03 02:02:39 +08:00
2026-05-24 11:33:17 +08:00
2026-05-20 15:37:25 +08:00
2026-05-06 13:13:11 +08:00
2026-06-07 19:15:20 +08:00
2026-06-07 19:15:20 +08:00
2026-05-06 18:25:05 +08:00
2026-05-20 15:37:25 +08:00
2026-04-22 00:24:21 +08:00
2026-06-07 19:15:20 +08:00
2026-06-07 19:15:20 +08:00
2026-05-15 23:50:50 +08:00
2026-06-07 19:15:20 +08:00
2026-05-30 19:52:17 +08:00
2026-06-07 19:15:20 +08:00
2026-06-06 13:06:14 +08:00
2026-06-06 13:06:14 +08:00
2026-06-08 11:40:46 +08:00
2026-06-08 11:40:46 +08:00
2026-06-02 14:50:12 +08:00
2026-06-02 14:50:12 +08:00
2026-05-20 18:09:53 +08:00
2026-04-16 20:40:41 +08:00
2026-04-16 20:40:41 +08:00
2026-04-16 20:40:41 +08:00
2026-04-18 20:56:05 +08:00
2026-05-22 23:51:45 +08:00
2026-04-05 20:41:42 +08:00
2026-05-20 11:22:37 +08:00
2026-04-05 20:41:42 +08:00
2026-06-01 15:49:14 +08:00
2026-06-02 14:50:12 +08:00
2026-06-02 14:50:12 +08:00
2026-06-02 14:50:12 +08:00
2026-05-11 19:48:21 +08:00
2026-05-11 19:48:21 +08:00
2026-05-01 16:01:23 +08:00
2026-04-17 13:52:01 +08:00
2026-04-25 22:41:40 +08:00
2026-04-28 11:33:47 +08:00
2026-05-01 16:01:23 +08:00
2026-05-13 17:31:22 +08:00
2026-05-24 11:33:17 +08:00
2026-05-24 11:33:17 +08:00
2026-05-24 11:33:17 +08:00
2026-05-13 17:31:22 +08:00
2026-04-18 14:05:09 +08:00
2026-05-24 11:33:17 +08:00
2026-05-24 11:33:17 +08:00
2026-04-18 14:03:07 +08:00
2026-04-18 14:03:07 +08:00
2026-04-17 09:19:30 +08:00
2026-05-24 01:47:51 +08:00
2026-05-24 01:47:51 +08:00
2026-04-18 15:01:40 +08:00
2026-04-18 15:01:40 +08:00
2026-06-08 11:40:46 +08:00
2026-06-03 22:11:22 +08:00
2026-06-02 14:50:36 +08:00
2026-06-03 22:11:22 +08:00
2026-06-03 22:11:22 +08:00
2026-05-29 23:17:01 +08:00
2026-06-03 22:11:22 +08:00
2026-05-29 23:17:01 +08:00
2026-05-29 23:17:01 +08:00
2026-06-03 22:11:22 +08:00
2026-04-12 09:56:18 +08:00
2026-04-12 09:56:18 +08:00
2026-04-30 20:55:53 +08:00
2026-05-15 23:50:50 +08:00
2026-05-15 23:50:50 +08:00
2026-05-01 11:46:17 +08:00
2026-05-08 20:02:57 +08:00
2026-04-24 22:19:57 +08:00
2026-04-24 22:19:57 +08:00
2026-05-20 12:19:27 +08:00
2026-04-15 14:19:57 +08:00
2026-04-24 22:19:57 +08:00
2026-04-24 22:19:57 +08:00
2026-05-20 12:19:27 +08:00
2026-05-05 23:43:10 +08:00
2026-05-08 20:02:57 +08:00
2026-05-15 23:50:50 +08:00
2026-04-12 09:56:18 +08:00
2026-04-15 14:19:57 +08:00
2026-04-25 16:48:28 +08:00
2026-05-20 12:19:27 +08:00
2026-04-20 13:52:35 +08:00
2026-04-15 14:19:57 +08:00
2026-05-08 20:02:57 +08:00
2026-05-20 01:27:14 +08:00
2026-04-15 14:19:57 +08:00
2026-04-23 09:11:53 +08:00
2026-04-23 09:11:53 +08:00
2026-04-12 09:56:18 +08:00
2026-04-15 14:19:57 +08:00
2026-05-05 20:48:14 +08:00
2026-06-02 14:50:12 +08:00
2026-05-20 18:09:53 +08:00
2026-05-29 23:17:01 +08:00
2026-06-07 19:15:20 +08:00
2026-05-26 18:43:07 +08:00
2026-05-01 11:02:21 +08:00
2026-05-11 12:26:38 +08:00
2026-05-11 12:26:38 +08:00
2026-05-20 15:37:25 +08:00
2026-05-13 20:24:51 +08:00
2026-05-20 01:27:14 +08:00
2026-05-13 20:24:51 +08:00
2026-05-26 10:18:28 +08:00
2026-05-24 22:19:57 +08:00
2026-05-24 22:19:57 +08:00
2026-06-01 15:49:14 +08:00
2026-05-22 23:51:45 +08:00
2026-05-22 23:51:45 +08:00
2026-05-24 01:47:51 +08:00
2026-04-01 00:58:42 +08:00
2026-04-15 14:20:26 +08:00
2026-05-20 01:27:14 +08:00
2026-05-24 22:19:43 +08:00
2026-05-20 01:27:14 +08:00
2026-06-02 14:50:12 +08:00
2026-06-02 14:50:12 +08:00
2026-04-02 00:31:28 +08:00
2026-05-20 15:37:25 +08:00