fix(cache): keep extra window IDs so hidden rows stay hidden after restart (#405)

The quota cache persisted extra rate windows without their CLI window ID.
Restored rows therefore had no `extra:<id>` hide key, so a hidden extra
window reappeared after a restart and during failed refreshes that reused
cached quotas, and could not be hidden again until a live refresh.

Encode and decode now carry the identifier-shaped ID validated by
`Normalizer.extraWindowID`; titles and other prose stay out of the cache.
A restored extra row is labeled by that ID, as a live title-less window is.

Documentation: usage guide drops the known-limitation note and lists the
ID among cached fields; development guide notes the cache keeps `windowId`.

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
3925997cb7Simone committed on 9/28/2026, 6:24:13 PM· committed by GitHubparent74689f6
5 files changedLine totals unavailable