A desktop usage view needs a cache for cold starts and temporary network failures. The dangerous shortcut is giving the entire snapshot one freshness timestamp.

If Claude refreshes successfully while Codex fails, rewriting the shared cache with a new timestamp can silently extend the life of old Codex data. The values are still different, but their trust boundary has been collapsed.

The fix is to model freshness where failure happens: per provider.

Store the value and its age together

Agent Island v1.7.1 stores Claude data, Codex data, a compatibility timestamp, and separate provider timestamps: