eomsangdon and Claude Opus 5.5
ac481a0764
feat(B01): 프로젝트 휴지통 — 지움 = 휴지통 · 7 일 뒤 영구 삭제 · 되살리기 (PLAN 592-1 · 요구 454 · 455)
...
- 대시보드 지움 = 늘 휴지통(deleted_at) · PROJECT_DELETE_HARD_ENABLED 스위치 걷음 → TRASH_RETENTION_DAYS(7)
- 영구 삭제(hard_delete_project) = 휴지통 것만 · FOR UPDATE · 이미 지운 것 False 로 건너뜀 · 감사 기록 동작 이름 받음
- 정리 루프에 purge_expired_trash — GET_LOCK 이름 잠금(두 PC 서버 중 하나만) · 기한 지난 것 PROJECT_PURGE
- API /api/dashboard/trash/projects — 보기 · 되살리기 = 시스템 관리자(전부) · 회사 관리자(자기 회사) · 영구 삭제 = 시스템 관리자만
- 화면 휴지통 — 시스템 관리 › 휴지통 · 회사 관리 › 휴지통(회사 관리자 · 되살리기만) · 지운 사람 = 감사 기록
- 시험 test_592_1_trash 새로 · test_546 메뉴 기대값에 휴지통 · test_573 복제본 지움을 휴지통 거쳐 영구 삭제로(영구 삭제 = 휴지통 것만)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 08:31:11 +09:00
..
2026-10-29 19:08:40 +09:00
2026-10-28 17:24:07 +09:00
2026-10-26 22:29:22 +09:00
2026-10-26 22:29:22 +09:00
2026-10-26 22:51:58 +09:00
2026-10-29 19:08:40 +09:00
2026-10-28 21:09:50 +09:00
2026-10-29 11:33:06 +09:00
2026-10-29 11:33:06 +09:00
2026-10-29 11:33:06 +09:00
2026-10-29 11:33:06 +09:00
2026-10-29 15:05:16 +09:00
2026-10-29 15:05:16 +09:00
2026-10-28 22:51:17 +09:00
2026-10-27 20:23:16 +09:00
2026-10-26 22:29:22 +09:00
2026-10-28 21:09:50 +09:00
2026-10-28 18:07:58 +09:00
2026-10-28 18:06:14 +09:00
2026-10-26 22:29:22 +09:00
2026-10-26 22:36:33 +09:00
2026-10-28 18:06:14 +09:00
2026-10-28 21:09:50 +09:00
2026-10-28 07:10:21 +09:00
2026-10-28 18:06:14 +09:00
2026-10-26 22:59:18 +09:00
2026-10-26 09:46:24 +09:00
2026-10-29 11:33:06 +09:00
2026-10-28 22:59:17 +09:00
2026-10-29 19:08:40 +09:00
2026-10-28 22:51:17 +09:00
2026-10-28 18:06:14 +09:00
2026-10-28 17:24:07 +09:00
2026-10-29 18:42:16 +09:00
2026-10-28 21:09:50 +09:00
2026-10-29 18:42:16 +09:00
2026-10-28 22:59:17 +09:00
2026-10-30 05:45:35 +09:00
2026-10-28 22:51:17 +09:00
2026-10-29 11:33:06 +09:00
2026-10-29 11:33:06 +09:00
2026-10-29 11:33:06 +09:00
2026-10-29 11:33:06 +09:00
2026-10-29 11:33:06 +09:00
2026-10-28 18:07:58 +09:00
2026-10-28 21:51:29 +09:00
2026-10-26 22:59:18 +09:00
2026-10-28 18:06:14 +09:00
2026-10-26 10:31:27 +09:00
2026-10-29 14:41:59 +09:00
2026-10-29 18:44:10 +09:00
2026-10-29 18:50:41 +09:00
2026-10-29 21:45:41 +09:00
2026-10-29 20:21:39 +09:00
2026-10-28 21:09:50 +09:00
2026-10-26 22:29:22 +09:00
2026-10-26 22:33:35 +09:00
2026-10-28 21:51:29 +09:00
2026-10-29 18:36:16 +09:00
2026-10-28 17:24:07 +09:00
2026-10-26 23:20:19 +09:00
2026-10-26 23:08:13 +09:00
2026-10-26 22:29:22 +09:00
2026-10-29 13:32:24 +09:00
2026-10-26 20:59:03 +09:00
2026-10-26 23:08:13 +09:00
2026-10-26 22:29:22 +09:00
2026-10-26 23:08:13 +09:00
2026-10-27 10:53:34 +09:00
2026-10-26 22:33:35 +09:00
2026-10-26 22:33:35 +09:00
2026-10-28 18:07:58 +09:00
2026-10-26 23:08:13 +09:00
2026-10-29 18:50:41 +09:00
2026-10-26 22:51:58 +09:00
2026-10-28 21:09:50 +09:00
2026-10-26 22:33:35 +09:00
2026-10-29 18:40:49 +09:00
2026-10-29 18:40:49 +09:00
2026-10-29 18:40:49 +09:00
2026-10-27 10:53:34 +09:00
2026-10-26 22:33:35 +09:00
2026-10-27 10:53:34 +09:00
2026-10-27 10:53:34 +09:00
2026-10-28 22:02:25 +09:00
2026-10-29 11:33:06 +09:00
2026-10-29 15:05:16 +09:00
2026-10-27 10:53:34 +09:00
2026-10-27 20:23:16 +09:00
2026-10-28 21:09:50 +09:00
2026-10-28 18:06:14 +09:00
2026-10-28 18:06:14 +09:00
2026-10-26 09:17:40 +09:00
2026-10-26 22:33:35 +09:00
2026-10-26 18:33:32 +09:00
2026-10-26 20:59:03 +09:00
2026-10-29 11:33:06 +09:00
2026-10-29 13:32:24 +09:00
2026-10-29 09:25:12 +09:00
2026-10-28 21:09:50 +09:00
2026-10-29 18:50:41 +09:00
2026-10-28 07:10:21 +09:00
2026-10-28 07:10:21 +09:00
2026-10-29 13:13:39 +09:00
2026-10-30 05:45:35 +09:00
2026-10-29 09:25:12 +09:00
2026-10-29 18:50:41 +09:00
2026-10-28 07:10:21 +09:00
2026-10-26 09:46:24 +09:00
2026-10-28 21:09:50 +09:00
2026-10-28 22:59:17 +09:00
2026-10-29 09:25:12 +09:00
2026-10-28 21:09:50 +09:00
2026-10-28 22:59:17 +09:00
2026-10-29 18:42:16 +09:00
2026-10-29 09:25:12 +09:00
2026-10-28 22:51:17 +09:00
2026-10-28 21:09:50 +09:00
2026-10-29 11:33:06 +09:00
2026-10-29 15:05:16 +09:00
2026-10-29 11:33:06 +09:00
2026-10-28 21:51:29 +09:00
2026-10-26 21:55:11 +09:00
2026-10-29 13:32:24 +09:00
2026-10-26 20:59:03 +09:00
2026-10-29 11:33:06 +09:00
2026-10-27 20:23:16 +09:00
2026-10-29 18:40:49 +09:00
2026-10-28 07:00:10 +09:00
2026-10-29 18:40:49 +09:00
2026-10-29 18:40:49 +09:00
2026-10-29 18:51:04 +09:00
2026-10-27 20:37:18 +09:00
2026-10-27 20:37:18 +09:00
2026-10-27 20:25:21 +09:00
2026-10-27 20:25:21 +09:00
2026-10-27 20:38:55 +09:00
2026-10-27 20:25:43 +09:00
2026-10-27 21:24:23 +09:00
2026-10-27 22:13:49 +09:00
2026-10-27 20:28:59 +09:00
2026-10-26 10:31:27 +09:00
2026-10-27 10:22:46 +09:00
2026-10-26 08:57:47 +09:00
2026-10-27 20:23:15 +09:00
2026-10-30 08:31:11 +09:00
2026-10-26 18:01:25 +09:00
2026-10-26 18:20:21 +09:00
2026-10-26 18:08:18 +09:00
2026-10-26 18:26:27 +09:00
2026-10-26 18:19:47 +09:00
2026-10-27 00:59:05 +09:00
2026-10-27 10:53:34 +09:00
2026-10-30 05:45:35 +09:00
2026-10-26 20:49:09 +09:00
2026-10-29 18:42:16 +09:00
2026-10-26 21:39:26 +09:00
2026-10-26 21:55:11 +09:00
2026-10-26 21:28:29 +09:00
2026-10-26 21:28:29 +09:00
2026-10-26 21:55:11 +09:00
2026-10-26 21:29:58 +09:00
2026-10-26 21:28:29 +09:00
2026-10-26 21:28:29 +09:00
2026-10-26 21:28:29 +09:00
2026-10-26 21:55:11 +09:00
2026-10-26 21:28:29 +09:00
2026-10-26 21:55:11 +09:00
2026-10-26 23:04:33 +09:00
2026-10-26 21:28:29 +09:00
2026-10-26 21:55:11 +09:00
2026-10-26 21:28:29 +09:00
2026-10-28 06:59:33 +09:00
2026-10-26 23:38:33 +09:00
2026-10-27 00:07:37 +09:00
2026-10-26 22:29:22 +09:00
2026-10-29 18:51:04 +09:00
2026-10-27 00:06:50 +09:00
2026-10-26 22:46:03 +09:00
2026-10-26 21:56:42 +09:00
2026-10-27 00:06:32 +09:00
2026-10-27 06:56:26 +09:00
2026-10-27 06:55:34 +09:00
2026-10-27 07:02:59 +09:00
2026-10-27 10:31:39 +09:00
2026-10-27 10:53:34 +09:00
2026-10-28 18:23:18 +09:00
2026-10-27 19:58:56 +09:00
2026-10-27 20:51:52 +09:00
2026-10-27 20:37:18 +09:00
2026-10-27 21:32:46 +09:00
2026-10-27 20:42:54 +09:00
2026-10-29 18:51:04 +09:00
2026-10-28 07:04:03 +09:00
2026-10-28 12:08:47 +09:00
2026-10-28 17:24:07 +09:00
2026-10-30 08:31:11 +09:00
2026-10-28 21:36:42 +09:00
2026-10-29 13:13:39 +09:00
2026-10-29 14:47:51 +09:00
2026-10-29 20:28:13 +09:00
2026-10-29 20:28:13 +09:00
2026-10-29 20:28:13 +09:00
2026-10-29 20:28:13 +09:00
2026-10-29 19:29:11 +09:00
2026-10-29 18:51:04 +09:00
2026-10-29 20:03:35 +09:00
2026-10-29 19:08:40 +09:00
2026-10-29 21:45:41 +09:00
2026-10-29 20:54:08 +09:00
2026-10-30 08:31:11 +09:00
2026-10-26 18:33:32 +09:00
2026-10-28 21:09:50 +09:00
2026-10-28 07:10:21 +09:00
2026-10-28 21:09:50 +09:00
2026-10-28 21:09:50 +09:00
2026-10-26 20:59:03 +09:00
2026-10-26 22:17:44 +09:00
2026-10-29 18:36:16 +09:00
2026-10-26 23:44:19 +09:00
2026-10-26 22:57:33 +09:00
2026-10-26 22:02:15 +09:00