The review-prompt record persisted under CACHE.REVIEW_PROMPT.
Reads the current review-prompt state, normalized. Returns a zeroed default when nothing has been stored yet.
Records the install date the first time it's seen. New installs get an exact
date from the service worker; pre-existing users are backfilled with "now" on
their first open after this ships. A no-op once installedAt is set.
Tallies one completed search and the products it returned. Also backfills the install date, so counting starts even if the record was never seeded.
Records a dismissal. The first ✕ snoozes the prompt for REVIEW_SNOOZE_MS so it can show one final time; any later dismissal just advances the counter, which silences it for good.
Marks the prompt as answered once the user opens the reviews page, so it never appears again.
How long the first dismissal snoozes the prompt before its final showing.
Persists the small bookkeeping record behind the "leave a review" prompt: when the extension was installed, how many searches the user has run, how many products those searches returned, and the prompt's dismissal state.
Stored as a single object under CACHE.REVIEW_PROMPT in
chrome.storage.local(via cstorage). Every mutation is a read-modify-write of that one record; reads normalize partial or legacy shapes so callers always receive a fully-populated ReviewPromptState.Source