Commits on May 2, 2026
refactor(time): centralize RFC-3339-UTC formatting; drop hand-rolled …
…date math in forget
Phase A of the senior-engineer cleanup sweep. Two related wins:
1. forget.rs hand-rolled a Howard-Hinnant date algorithm + custom RFC-3339 formatter with the comment "so we don't pull in chrono here" — but chrono is already a workspace dependency of morph-core (see morph-core/Cargo.toml). 40 lines of duplicate civil-calendar logic deleted.
2. New morph-core/src/time.rs exposes a single now_rfc3339_utc() helper, re-exported as morph_core::now_rfc3339_utc. Twelve scattered chrono::Utc::now().to_rfc3339() / Utc::now().to_rfc3339() call sites across forget.rs, commit.rs (×4), record.rs (×2), merge.rs, merge_flow.rs, annotate.rs, revert.rs, run_breadcrumb.rs, and one test in extract.rs all funnel through it.
Why this is worth it:
- One grep target the day we want to swap precision, mock the clock for tests, or enforce a canonical sub-second policy.…