Cross-role / 운영 예외

빈 상태, conflict, offline, replay guard

이 리포트는 특정 Figma 단일 화면이 아니라 실제 운영에서 자주 생기는 예외 상태를 묶습니다. ZERRO APP은 아직 backend concurrency나 offline persistence가 없어도 화면에서 원인, disabled reason, retry/fallback을 숨기지 않는 방향으로 닫고 있습니다.

Dispatcher: conflict/cancel/reassign Processor: replay/idempotency Provider: offline/retry
Empty state

Covered

역할별 목록이 비었을 때 표시할 설명과 복귀 기준을 둡니다.

Conflict

Mocked

배차/입고의 충돌은 APP notice와 retry로 먼저 표현합니다.

Replay guard

Mocked

중복 제출, 처리 실적 재등록, idempotency pending을 분리합니다.

Persistence

Pending

실제 concurrency, offline queue, backend replay persistence는 후속 계약입니다.

검수용 예외 흐름

1

배차 전 conflict

dispatcher.dispatch.conflict.retry.cta로 후보 충돌을 다시 시도할 수 있게 합니다.

2

배차 완료 후 예외

취소/재배차는 provider-pending, 운행 중에는 disabled reason으로 수렴합니다.

3

처리자 replay

processor.inbound.replay-guard.messageprocessor.backend.idempotency.pending으로 중복 제출 위험을 설명합니다.

4

offline/retry

upload/OCR/map provider는 실제 adapter 전까지 offline/retry UI로만 고정합니다.

화면 evidence

배차 완료 후 예외
배차 완료 후 예외

취소/재배차 provider-pending surface.

운행 중 disabled reason
운행 중 disabled

이미 운행 중인 건의 액션 제한 이유.

처리자 replay guard
처리자 replay guard

중복 처리와 idempotency pending 표시.

처리자 OCR offline
OCR offline

현장 offline provider state.

dispatcher exception maestro evidence
Dispatcher Maestro

배차 예외 flow after screenshot.

processor inbound maestro evidence
Processor Maestro

입고 flow after screenshot.

남은 결정

예외 유형현재 검수 기준아직 구현하지 않는 이유
cross-role realtime conflictmock conflict notice와 retry CTAqueue/realtime/concurrency 구현 방식이 Open Decision입니다.
cancel/reassign mutationprovider-pending 또는 disabled reason상태 enum/API transition이 backend contract를 필요로 합니다.
offline queuelocal waiting copy와 retry/offline CTApersistence, replay order, sync 실패 정책이 미정입니다.
idempotencyduplicate guard와 pending messageidempotency key 저장 위치와 conflict response가 미정입니다.