Repository navigation
Apply confirmed DSV GPS, reminder, and undelivered-report policy - #488
Merged
Merged
Conversation
Use business-day GPS evidence for depot arrival and stop uncapped five-minute start reminders at Seoul noon. Accept free-text reports and prepare one durable staff email job on the existing report without wiring a live sender. Constraint: No live provider sends, production changes, merge, or deployment Rejected: Separate generic mail subsystem | The existing report row provides one durable job Confidence: high Scope-risk: moderate Directive: Keep the noon cutoff exclusive to N05 and preserve notification/report history Tested: Prisma generation, lint, typecheck, 3317 API tests, 81 isolated PostgreSQL/HTTP tests, build Not-tested: Actual FCM/email delivery, real vehicle GPS, device acceptance
Reconciliation can confirm return before queued samples can emit ARRIVED. Apply the same pause and notification resolution in that transaction, and preserve existing visits so recovery cannot duplicate recorded transitions. Constraint: Keep PR483/487, frontend work, and existing operating policies intact Rejected: Rely on the next queued ARRIVED | Reconciled INSIDE already consumes its observations Confidence: high Scope-risk: narrow Directive: Keep warehouse return effects atomic with reconciled geofence state Tested: Original failure reproduced; two permanent regressions and 83 isolated PostgreSQL/HTTP tests passed; independent source review Not-tested: Actual providers, operational databases, and real vehicles
…tion-recovery branch so PR #488 reviews against current main Merges the updated codex/dsv-completion-result-recovery (main e48d1c6 merged) into the operations-policy branch. The only conflict was the migration history test, rewritten for 120 migrations with the exception-email migration ordered after main's completion receipts and before the delivery-options settlement. Constraint: 20261008090000_dsv_delivery_exception_email shares its timestamp prefix with main's 20261008090000_driver_stop_completion_receipts; Prisma orders them by full folder name, so the DSV one applies second. Confidence: medium Scope-risk: narrow Tested: prisma generate/validate, tsc, vitest 3506 pass, 120 migrations deploy on PostgreSQL 17, DSV PostgreSQL integration 83 pass, typed eslint Not-tested: CI on this merge, production migration order, real mail delivery Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…Stop time after driver change) into the operations-policy branch Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…icy branch Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…s-policy branch Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…policy branch Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
OziinG
changed the base branch from
codex/dsv-completion-result-recovery
to
main
October 11, 2026 11:11
OziinG
marked this pull request as ready for review
October 11, 2026 11:11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DSV의 2026-10-08 확정 정책을 서버에 반영합니다. 창고 도착은 당일 GPS 체류 근거로 판단하고, 배송 시작 누락 알림은 출발 5분 후부터 5분마다 횟수 제한 없이 생성합니다. 이 반복 알림만 배차 업무일 정오(Asia/Seoul)에 생성·전송·재시도를 중단합니다.
이 PR은 #487 위에 쌓이며 #483의 변경도 포함합니다. 기존 두 PR과 main은 변경하지 않았습니다.
44e6d880684609f7d075f3102c634a999b5c24ca18ea784934ec3cf511f56646b708d141617c404bb3710cad863a8c12d2a7e38a90486cc8010c5722변경 결과
reason을 받으며 기존reasonCode/explanation도 유지합니다. 사진을 요구하지 않고 배송 결과를 변경하지 않습니다. 보고 행에 배차일·기사·배송지·보고 시각·사유를 포함한 메일 내용을 저장합니다. 한 보고가 한 메일 작업이며 실제 발송기는 연결하지 않습니다.검증
prisma:generate,lint,typecheck,test,build통과.reconcileWarehouseArrivals → runOnce → tickReminders순서의 실패를 먼저 재현했습니다. 영구 회귀 검사 2개로 복귀 중단, 재시작·큐 재처리 중복 방지, 방문 번호 보존, 정확한 재출발 +5분 재개를 검증했습니다.git diff --check통과.계약과 남은 범위
reason과 안정적인 command ID/배정·버전 필드를 전송합니다. 최초 201, 재시도 200 및duplicate: true계약을 유지합니다.reportStatus: ACCEPTED와emailStatus: PREPARED는 보고 접수 영수증이며 메일 발송 성공이 아닙니다.UNKNOWN과 중단된SENDING은 자동 재발송하지 않습니다. 기존 명시적 계정/테넌트 삭제 동작은 유지합니다.