"이른 날을 고르면 그날 아래 crumb 을 파일링하되, 그때 낸 척은 안 해."
모델의 진실은 표면까지 닿아야 해
DB 에 날짜 두 개를 두는 건 절반이야. 화면에 하나만 보이면 사용자 머릿속이 조용히 모델을 도로 뭉쳐. 카드에 날짜 하나 보고 '언제 썼나' 로 여기거든. 그 crumb 이 backdate 됐을 때도. 두 진실 규칙은 보여야 진짜로 지켜진 거야. 그래서 crumb 의 target_date 가 captured_at 이 떨어지는 날과 다르면, Vesta 카드는 둘 다 또렷이 보여줘. 한 날에 filed, 다른 날에 written.
둘이 같으면, 그러니까 오늘 오늘 일을 붙잡은 흔한 경우엔 둘 다 보이는 게 소음이야. 그래서 카드는 날짜 하나만 보여줘. 규칙은 간단하고 화면을 차분하게 지켜. 진실이 같으면 날짜 하나, 갈리는 순간 둘 다. 인터페이스는 절대 날짜를 지어내지 않고 갈림을 숨기지도 않아. 모델이 아는 걸 그대로 비출 뿐이야.
로컬 날짜는 명시적, 절대 추측 아냐
화면이 피해야 할 더 조용한 함정이 있어. 읽는 시점에 로컬 날짜를 추론하는 것. UTC 순간만 저장하고 그릴 때마다 '그게 무슨 날이었지?' 계산하면, 답이 읽는 사람의 현재 타임존을 따라 흔들려. 한 존에서 밤 11시에 쓴 crumb 이 다른 존에서 보면 다음 날로 튈 수 있어. Vesta 는 그걸 거부해. 로컬 날짜와 타임존은 쓰는 시점에 딱 붙잡아 저장하고, 읽을 때 다시 계산 안 해. crumb 이 쓰인 날은 일어난 순간 고정된 사실이지, 볼 때 어디 서 있느냐에 따라 바뀌는 계산이 아냐.