root
24dd832218
feat(publish-dedup): reject duplicate publish jobs and expose target task ids
...
Build a per-target dedup_key (tenant/workspace/article/platform/account) on
publish job creation, take an xact advisory lock on the keys, look up
already-active publish_records via the payload index, and skip creating
duplicate desktop_tasks. Surface created vs existing task ids on
CreatePublishJobResponse (and shared-types) so callers can tell the
difference, return `desktop_publish_duplicate` on unique-constraint races,
and expose desktop_account_id on PublishRecordResponse so the modal can
disable already-published accounts. Make the compliance ack consumer
accept a nullable job id since the dedup short-circuit no longer creates
one.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-26 18:43:27 +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-05-24 22:19:43 +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-05-20 15:37:25 +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-05-13 19:36:24 +08:00
2026-05-13 19:36:24 +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-05-06 18:25:05 +08:00
2026-05-13 19:36:24 +08:00
2026-05-15 23:50:50 +08:00
2026-04-22 00:24:21 +08:00
2026-05-26 10:19:00 +08:00
2026-05-26 10:19:00 +08:00
2026-05-05 23:43:10 +08:00
2026-05-05 23:43:10 +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-04-27 11:02:37 +08:00
2026-05-20 11:22:37 +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-05-26 18:43:27 +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-05-24 22:19:43 +08:00
2026-05-20 18:09:53 +08:00
2026-05-26 18:43:27 +08:00
2026-05-26 18:43:27 +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-05-11 11:11:21 +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-05-24 22:19:43 +08:00
2026-05-24 22:19:43 +08:00
2026-04-02 00:31:28 +08:00
2026-05-20 15:37:25 +08:00