yan9651688
9fc006546c
Make repeated group setup safer
...
Admins often recreate groups with the same pricing, routing, and account membership. A server-side duplicate creates an inactive copy for review, preserves eligible account priorities, and recovers ambiguous retries without creating extra groups.
Constraint: Group has no neutral JSON metadata field for durable operation recovery
Constraint: Model routing references account IDs, so copied configuration requires matching bindings
Rejected: Rebuild from the list response | it omits configuration and account priority details
Rejected: Store operation identity in business configuration | it would pollute real group settings
Confidence: high
Scope-risk: moderate
Reversibility: clean
Directive: Keep duplicated groups inactive until an administrator reviews the copied configuration
Tested: Go unit and full tests, go vet, integration-tag compile, frontend Vitest, lint, typecheck, production build, and Playwright duplicate flow
Not-tested: PostgreSQL container integration locally because Docker is unavailable; CI will execute the database-backed suite
2026-07-16 18:18:28 +08:00
..
2026-07-01 12:21:45 +08:00
2025-12-29 10:03:27 +08:00
2026-03-07 15:06:13 +08:00
2026-01-30 16:45:04 +08:00
2026-03-03 15:01:10 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-06 12:22:04 +08:00
2026-07-14 12:24:42 +08:00
2026-04-23 17:31:15 +08:00
2026-04-23 17:31:15 +08:00
2026-07-14 12:24:42 +08:00
2025-12-29 10:03:27 +08:00
2026-02-10 11:42:39 +08:00
2026-07-16 18:18:28 +08:00
2026-07-04 05:30:50 +08:00
2026-02-28 15:01:20 +08:00
2026-04-20 17:39:57 +08:00
2026-07-04 05:30:50 +08:00
2026-07-16 18:18:28 +08:00
2026-04-11 13:16:35 +08:00
2026-04-21 12:41:27 +08:00
2026-04-14 16:26:46 +08:00
2026-04-20 17:39:57 +08:00
2026-07-04 05:30:50 +08:00
2026-01-10 13:14:35 +08:00
2026-01-10 13:14:35 +08:00
2026-06-08 00:01:30 +08:00
2026-05-19 15:53:28 +08:00
2026-07-16 18:18:28 +08:00
2026-07-16 18:18:28 +08:00
2026-02-12 11:41:20 +08:00
2025-12-31 15:31:26 +08:00
2026-07-15 11:17:45 +08:00
2026-03-27 14:33:05 +08:00
2026-01-18 14:18:28 +08:00
2026-07-13 09:47:19 +08:00
2026-07-06 12:22:04 +08:00
2025-12-29 10:03:27 +08:00
2026-01-01 18:58:34 +08:00
2026-01-01 18:58:34 +08:00
2026-05-26 10:49:20 +08:00
2025-12-31 14:11:57 +08:00
2026-07-01 12:21:45 +08:00
2025-12-29 10:03:27 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2025-12-29 10:03:27 +08:00
2025-12-29 10:03:27 +08:00
2026-01-10 13:14:35 +08:00
2025-12-29 10:03:27 +08:00
2025-12-29 10:03:27 +08:00
2026-03-07 15:06:13 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-03-07 15:06:13 +08:00
2026-03-07 15:06:13 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-03-03 15:01:10 +08:00
2026-01-04 19:28:20 +08:00
2026-01-10 13:14:35 +08:00
2026-03-03 15:01:10 +08:00
2026-03-03 15:01:10 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-06 12:22:04 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-06 12:22:04 +08:00
2026-07-06 12:22:04 +08:00
2026-06-12 22:09:53 +08:00
2026-04-20 20:21:02 +08:00
2026-04-21 14:14:49 +08:00
2026-06-12 22:09:53 +08:00
2026-06-12 22:09:53 +08:00
2026-04-23 17:31:15 +08:00
2026-04-21 10:10:56 +08:00
2026-04-23 17:31:15 +08:00
2026-04-23 17:31:15 +08:00
2026-04-23 17:31:15 +08:00
2026-04-23 17:31:15 +08:00
2026-04-20 20:21:02 +08:00
2026-04-23 17:31:15 +08:00
2026-04-23 17:31:15 +08:00
2026-04-23 17:31:15 +08:00
2026-05-19 22:05:43 +08:00
2026-04-21 14:14:49 +08:00
2026-04-21 14:14:49 +08:00
2026-05-19 22:05:43 +08:00
2026-05-19 22:05:43 +08:00
2026-07-04 05:30:50 +08:00
2026-01-03 06:37:08 -08:00
2026-07-04 05:30:50 +08:00
2026-02-10 11:42:39 +08:00
2026-02-05 21:52:54 +08:00
2026-02-05 21:52:54 +08:00
2026-02-10 11:42:39 +08:00
2026-02-10 11:42:39 +08:00
2026-01-10 13:14:35 +08:00
2026-07-16 18:18:28 +08:00
2025-12-29 10:03:27 +08:00
2026-01-10 13:14:35 +08:00
2026-07-16 18:18:28 +08:00
2026-07-16 18:18:28 +08:00
2026-02-28 15:01:20 +08:00
2026-02-28 15:01:20 +08:00
2026-02-28 15:01:20 +08:00
2026-02-28 15:01:20 +08:00
2026-02-28 15:01:20 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-07-16 18:18:28 +08:00
2026-04-11 13:16:35 +08:00
2026-04-11 13:16:35 +08:00
2026-04-11 13:16:35 +08:00
2026-04-11 13:16:35 +08:00
2026-04-11 13:16:35 +08:00
2026-04-21 12:41:27 +08:00
2026-04-11 13:16:35 +08:00
2026-04-11 13:16:35 +08:00
2026-04-21 12:41:27 +08:00
2026-04-21 12:41:27 +08:00
2026-04-14 16:26:46 +08:00
2026-04-11 13:16:35 +08:00
2026-04-11 13:16:35 +08:00
2026-04-14 16:26:46 +08:00
2026-04-14 16:26:46 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-04-20 17:39:57 +08:00
2026-01-10 13:14:35 +08:00
2026-01-10 13:14:35 +08:00
2026-01-10 13:14:35 +08:00
2026-01-10 13:14:35 +08:00
2026-01-10 13:14:35 +08:00
2026-01-10 13:14:35 +08:00
2026-01-10 13:14:35 +08:00
2026-01-10 13:14:35 +08:00
2026-01-10 13:14:35 +08:00
2026-01-10 13:14:35 +08:00
2026-06-08 00:01:30 +08:00
2025-12-29 10:03:27 +08:00
2026-06-08 00:01:30 +08:00
2026-06-08 00:01:30 +08:00
2026-06-08 00:01:30 +08:00
2026-05-19 15:53:28 +08:00
2025-12-29 10:03:27 +08:00
2026-01-10 13:14:35 +08:00
2026-05-19 15:53:28 +08:00
2026-05-19 15:53:28 +08:00
2025-12-29 10:03:27 +08:00
2026-02-12 11:41:20 +08:00
2026-02-12 11:41:20 +08:00
2026-02-12 11:41:20 +08:00
2026-02-12 11:41:20 +08:00
2026-02-12 11:41:20 +08:00
2025-12-31 15:31:26 +08:00
2025-12-29 10:03:27 +08:00
2026-01-10 13:14:35 +08:00
2025-12-31 15:31:26 +08:00
2025-12-29 10:03:27 +08:00
2026-07-15 11:17:45 +08:00
2026-04-11 13:16:35 +08:00
2026-04-11 13:16:35 +08:00
2026-07-15 11:17:45 +08:00
2026-07-15 11:17:45 +08:00
2026-03-27 14:33:05 +08:00
2026-03-27 14:33:05 +08:00
2026-03-27 14:33:05 +08:00
2026-03-27 14:33:05 +08:00
2026-03-27 14:33:05 +08:00
2026-06-30 13:22:27 +08:00
2026-07-04 05:30:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-07-13 09:47:19 +08:00
2025-12-31 14:11:57 +08:00
2026-01-10 13:14:35 +08:00
2026-07-13 09:47:19 +08:00
2026-07-13 09:47:19 +08:00
2026-07-06 12:22:04 +08:00
2025-12-29 10:03:27 +08:00
2026-05-26 10:49:20 +08:00
2026-07-06 12:22:04 +08:00
2026-07-06 12:22:04 +08:00
2025-12-29 10:03:27 +08:00
2025-12-29 10:03:27 +08:00
2026-01-10 13:14:35 +08:00
2025-12-29 10:03:27 +08:00
2025-12-29 10:03:27 +08:00
2026-01-01 18:58:34 +08:00
2026-01-01 18:58:34 +08:00
2026-01-10 13:14:35 +08:00
2026-01-01 18:58:34 +08:00
2026-01-01 18:58:34 +08:00
2026-01-01 18:58:34 +08:00
2026-01-01 18:58:34 +08:00
2026-01-10 13:14:35 +08:00
2026-01-01 18:58:34 +08:00
2026-01-01 18:58:34 +08:00
2026-05-26 10:49:20 +08:00
2026-05-26 10:49:20 +08:00
2026-05-26 10:49:20 +08:00
2026-05-26 10:49:20 +08:00
2026-05-26 10:49:20 +08:00
2025-12-31 14:11:57 +08:00
2025-12-29 10:03:27 +08:00
2026-01-10 13:14:35 +08:00
2025-12-31 14:11:57 +08:00
2025-12-31 14:11:57 +08:00