docs(clock): record lifecycle recovery boundaries

This commit was merged in pull request #1.
This commit is contained in:
2026-09-03 21:08:48 +00:00
parent b77276f202
commit ffbd51a2ef
5 changed files with 65 additions and 2 deletions
+11
View File
@@ -222,6 +222,11 @@ claim 가능한 상태에서 attempts를 증가시켜 재처리합니다.
5. `EngineStateManager`가 in-memory mutation과 transaction flush를 묶습니다.
6. `TurnDaemonLifecycle`이 control queue와 schedule을 실행합니다.
`turn_daemon_lease`는 운영 WALL_TIME입니다. 모든 write와 active 비교는 DB
session timezone과 무관하게 UTC wall expression을 사용합니다. Lease migration은
profile process가 멈춘 배포 경계에서 기존 ephemeral row를 만료시켜 구버전
writer가 만든 KST timestamp도 새 daemon의 fresh fencing epoch를 막지 않습니다.
Lifecycle은 가장 빠른 장수 턴과 다음 tick 중 앞선 시각을 선택합니다.
pause gate, 수동 run, shutdown과 budget을 같은 loop에서 처리합니다.
@@ -290,6 +295,12 @@ event catalog, in-memory state, dirty marking, flush와 reload 검증까지
- Worker timeout은 요청 실패로 반환하며 DB commit 여부를 별도로 확인합니다.
- API·daemon process 재시작은 `InputEvent`, lease, checkpoint와 operation
상태에서 이어집니다.
- `UNIFICATION_WAIT` 중 operational STOP/재시작은 profile process만 복구하며
suspension을 일반 RESUME으로 소비하지 않습니다. 선택 응답의 daemon fence가
clock alignment와 이민족 생성을 함께 commit합니다.
- test-only `ManualClock``StepClock`의 sleep은 논리 시간을 즉시 전진한 뒤
event loop에 한 번 양보합니다. terminal/suspended polling이 timer 기반
shutdown과 test timeout을 굶기지 않아야 합니다.
- 운영 process와 외부 Caddy 상태는 local build·mock E2E로 증명되지 않습니다.
## Build와 배포