- Removed duplicate logic — Unified modal close animation (
DOM.closeModal), expiration calculation, and domain matching into shared utils - Deleted dead code — Removed unused
getExpirationStatus(), duplicateSessionStorage.getGrouped(), unusedRenderer.pagination(), and redundantextractDomain()wrapper - Centralized import parsing — New
Normalize.importSessions()handles all formats (raw array, legacy wrapper, single object) in one place - Merged BrowserStorage —
getLocal()andgetSession()now share a singleget(tabId, type)implementation - Extracted cookie restore helper —
cleanForRestore()andgetCookieUrl()centralize backward-compat scrubbing for Chrome's cookies API
- Randomized storage key — Session data key is now a random hex string generated on first install instead of a hardcoded value. Migration from old key is automatic with zero user interaction
- Consistent domain matching — All domain comparisons now use the shared
Domain.isMatch()util instead of scattered manual implementations
- Raw JSON exports — All JSON exports now output a plain session array instead of the proprietary
{version, exportDate, sessions}wrapper. Import still accepts both formats for backward compatibility - Label cleanup — "Export JSON (raw)" → "Export JSON", "Copy Raw JSON" → "Copy JSON"
- Saved Data modal — Fixed tab buttons (Cookies/localStorage/sessionStorage) overlapping by adjusting modal width and tab sizing
- No more alert() — Replaced remaining
alert()calls in export flow with proper modal dialogs
- Shared debounce helper —
DOM.debounceInput()replaces copy-pasted debounce patterns in search handlers - Cleaner utils — Added
DOM.closeModal(),DOM.debounceInput(), andNormalizemodule toutils.js
- UI Overhaul — New macOS-inspired "Traffic Lights" modal design with smooth entry/exit animations
- Delete Expired Sessions — New batch action in Manage tab to find and delete sessions with expired auth cookies
- Edit Session Modal — Proper modal dialog for editing session names (replaces browser prompt)
- Replace Session Modal — Safe confirmation dialog for replacing sessions (replaces browser confirm)
- Batch OWI Export — New modal for password-protected batch exports
- Saved Data Card — New card in Session Actions showing cookies/localStorage/sessionStorage counts
- Repo Info Card — Added repository and author information card in the popup
- Cleaner Session Cards — Removed data counts from cards, now shows only expiration status
- Compact Expiration Info — New format: "Expiration info (Valid: 48d)" with expand toggle
- Domain Badge — Shows simplified domain (e.g., "facebook" not "facebook.com") next to Visit button
- Better Layout — URL on left, timestamp on right in session cards
- Auto Domain Grouping — Sessions grouped by domain instead of manual tags
- Consistent Icons — All favicons now have a unified light grey background for better visibility
- Enhanced Add Session Button — Improved button styling with better visibility and hover effects
- Simplified Expiration Logic — Now uses longest cookie expiration date instead of complex login cookie detection
- Removed isLoginCookie() — No more pattern matching for auth cookies, simpler and more reliable
- Tag System — Replaced with automatic domain-based grouping
- Data Counts in Cards — Moved to Session Actions modal for cleaner list view
- Native Dialogs — All
alert(),confirm(), andprompt()calls replaced with custom modals - Smart Cookie Detection — Removed complex login cookie heuristics in favor of simple expiration tracking
- Added Showcase section with screenshot table in README
- Added experimental warning for Smart Expiration feature
- Added Netscape Cookies Exporter to credits
- Fixed false expiration detection on tracking cookies (wd, wl_cbv, dbln)
- Fixed sessions with >30 days showing only checkmark without days count
- Fixed password field eye icon alignment in export modal
- Fixed visibility of white icons/favicons on light backgrounds
- Data preview for cookies, localStorage, sessionStorage, and history
- Expandable sections with cookie expiration status
- History preview with relative visit times
- Fixed CSP violations (removed inline event handlers)
- Fixed history clearing using proper Chrome API
- Improved cookie domain matching
- 43% fewer files (21 → 12)
- Modular structure with core/ and ui/ separation
- Single consolidated CSS file
- Vite build system
- Selective storage save options
- Clear after save option
- Enhanced Clean Tab modal
- Improved favicon caching