# Sprite Hook Checkpoint Timestamp Issue **Sprite:** autoresearch-pt5 **Date:** 2026-03-26 ## The Issue The `UserPromptSubmit` and `PostToolUse` hooks run `sprite-env-check.sh` on every interaction. The script checks the age of the latest versioned checkpoint (excluding `Current`) and warns if it is 10+ minutes old. The warning was firing persistently even after running `sprite-env checkpoints create`. The reason: the checkpoint system records `create_time` as the time of the **underlying filesystem overlay commit**, not the time the checkpoint was pinned. So when a new checkpoint is created immediately after a previous one with no intervening writes, it inherits the same `create_time` as the base — making the hook unable to detect it as recent. Concretely: - `v0`: `create_time: 2026-03-26T09:12:36Z` (session start) - `v1`: `create_time: 2026-03-26T09:12:36Z` (pinned immediately after — same overlay timestamp) - `v2`: `create_time: 2026-03-26T17:44:02Z` (pinned after settings.json was modified — overlay had advanced) The hook's logic (`sort_by(.create_time) | last`) correctly found `v1` at `09:12:36Z`, 519 minutes old, and kept warning. ## The Fix Create a new checkpoint **after** meaningful filesystem writes have occurred. Once `settings.json` was updated and a second `sprite-env checkpoints create` ran, the resulting `v2` carried a `create_time` of `17:44:02Z` — recent enough to silence the warning. ## Takeaway The staleness check works correctly. The subtlety is that checkpoint `create_time` reflects overlay commit time, not pin time. Back-to-back checkpoints with no writes between them will share a timestamp. Always checkpoint *after* making changes, not before.