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>
5 files changedLine totals unavailable