Skip to content

Commit 3adbb02

Browse files
committed
v3.0.0: UI overhaul, simplified expiration logic, new modals
1 parent 3457764 commit 3adbb02

18 files changed

Lines changed: 3403 additions & 1280 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ npm-debug.log*
2121
# Environment
2222
.env
2323
.env.local
24+
.claude/
2425

2526
# Package lock (optional - uncomment if you want to ignore)
2627
# package-lock.json

CHANGELOG.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Changelog
2+
3+
## v3.0.0 (2026-02-07)
4+
5+
### New Features
6+
- **UI Overhaul** — New macOS-inspired "Traffic Lights" modal design with smooth entry/exit animations
7+
- **Delete Expired Sessions** — New batch action in Manage tab to find and delete sessions with expired auth cookies
8+
- **Edit Session Modal** — Proper modal dialog for editing session names (replaces browser prompt)
9+
- **Replace Session Modal** — Safe confirmation dialog for replacing sessions (replaces browser confirm)
10+
- **Batch OWI Export** — New modal for password-protected batch exports
11+
- **Saved Data Card** — New card in Session Actions showing cookies/localStorage/sessionStorage counts
12+
- **Repo Info Card** — Added repository and author information card in the popup
13+
14+
### UI Improvements
15+
- **Cleaner Session Cards** — Removed data counts from cards, now shows only expiration status
16+
- **Compact Expiration Info** — New format: "Expiration info (Valid: 48d)" with expand toggle
17+
- **Domain Badge** — Shows simplified domain (e.g., "facebook" not "facebook.com") next to Visit button
18+
- **Better Layout** — URL on left, timestamp on right in session cards
19+
- **Auto Domain Grouping** — Sessions grouped by domain instead of manual tags
20+
- **Consistent Icons** — All favicons now have a unified light grey background for better visibility
21+
- **Enhanced Add Session Button** — Improved button styling with better visibility and hover effects
22+
23+
### Changes
24+
- **Simplified Expiration Logic** — Now uses longest cookie expiration date instead of complex login cookie detection
25+
- **Removed isLoginCookie()** — No more pattern matching for auth cookies, simpler and more reliable
26+
27+
### Removed
28+
- **Tag System** — Replaced with automatic domain-based grouping
29+
- **Data Counts in Cards** — Moved to Session Actions modal for cleaner list view
30+
- **Native Dialogs** — All `alert()`, `confirm()`, and `prompt()` calls replaced with custom modals
31+
- **Smart Cookie Detection** — Removed complex login cookie heuristics in favor of simple expiration tracking
32+
33+
### Documentation
34+
- Added Showcase section with screenshot table in README
35+
- Added experimental warning for Smart Expiration feature
36+
- Added Netscape Cookies Exporter to credits
37+
38+
### Bug Fixes
39+
- Fixed false expiration detection on tracking cookies (wd, wl_cbv, dbln)
40+
- Fixed sessions with >30 days showing only checkmark without days count
41+
- Fixed password field eye icon alignment in export modal
42+
- Fixed visibility of white icons/favicons on light backgrounds
43+
44+
---
45+
46+
## v2.2.0
47+
48+
### Clean Current Tab Enhancements
49+
- Data preview for cookies, localStorage, sessionStorage, and history
50+
- Expandable sections with cookie expiration status
51+
- History preview with relative visit times
52+
53+
### Bug Fixes & Security
54+
- Fixed CSP violations (removed inline event handlers)
55+
- Fixed history clearing using proper Chrome API
56+
- Improved cookie domain matching
57+
58+
---
59+
60+
## v2.1.0
61+
62+
### Architecture Rebuild
63+
- 43% fewer files (21 → 12)
64+
- Modular structure with core/ and ui/ separation
65+
- Single consolidated CSS file
66+
- Vite build system
67+
68+
### New Features
69+
- Selective storage save options
70+
- Clear after save option
71+
- Enhanced Clean Tab modal
72+
- Improved favicon caching

README.md

Lines changed: 32 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -1,152 +1,61 @@
1-
# SesWi — Advanced Session Manager (Chrome Extension)
1+
# SesWi — Session Manager
22

3-
SesWi is a Chrome extension (Manifest V3) for saving and restoring login sessions per domain. It captures cookies along with `localStorage` and `sessionStorage` snapshots, lets you list and group sessions across domains, backup/restore sessions (plain JSON or password-encrypted OWI), and clean current tab data when needed.
3+
Chrome extension for saving and restoring login sessions. Captures cookies, localStorage, and sessionStorage per domain.
44

5-
## What's New in v2.2
6-
7-
### 🧹 Clean Current Tab Enhancements
8-
- **Data preview** — See cookies, localStorage, sessionStorage, and history items before clearing
9-
- **Expandable sections** — Click to expand each data type and view details
10-
- **Cookie expiration status** — Visual indicators showing if cookies are Session, Valid, Warning, or Expired
11-
- **History preview** — View page titles, URLs, and relative visit times
12-
- **History count detection** — Shows actual number of history entries for current domain
13-
14-
### 🔒 Bug Fixes & Security
15-
- **Fixed CSP violations** — Removed all inline event handlers for better security compliance
16-
- **Fixed history clearing** — Now uses `chrome.history.deleteUrl` API properly
17-
- **Fixed cookie domain matching** — Exact domain matching prevents accidental cross-domain deletion
18-
- **Improved cache clearing** — Added fallback for browsers that don't support origin-based cache clearing
19-
20-
### 🛠️ Code Cleanup
21-
- Removed all TODO/FIXME comments (implementations complete)
22-
- Cleaner codebase with proper JS event handlers
23-
24-
---
25-
26-
## What's New in v2.1
27-
28-
### 🔄 Complete Architecture Rebuild
29-
- **43% fewer files** — Consolidated from 21 files to 12 files
30-
- **Modular structure** — Clean separation: `core/` for Chrome APIs, `ui/` for interface
31-
- **Single CSS file** — All styles consolidated into `main.css` with Tailwind utilities
32-
- **Vite build system** — Modern bundler for faster development and optimized builds
33-
34-
### ✨ New Features
35-
- **Selective storage save** — Choose to include/exclude localStorage and sessionStorage when saving
36-
- **Clear after save** — Option to clear tab data immediately after saving a session
37-
- **Enhanced Clean Tab modal** — Selectively clear cookies, localStorage, sessionStorage, history, or cache
38-
- **Improved favicon caching** — Faster icon loading with persistent cache
39-
- **Better sensitive domain detection** — Expanded warnings for Google/Microsoft ecosystems
40-
41-
### 🛠️ Improvements
42-
- **Faster popup load** — Reduced file count and optimized imports
43-
- **Better error handling** — Consistent Response pattern across all modules
44-
- **Improved pagination** — Smoother navigation in session lists
45-
- **Enhanced UI feedback** — Better visual states for actions and selections
46-
47-
### 🔧 Technical Changes
48-
- Migrated to ES modules throughout
49-
- Removed redundant abstraction layers
50-
- Unified utility functions in `utils.js`
51-
- Backward compatible — existing sessions will work without migration
5+
## Features
526

53-
## Alpha version
54-
- https://github.com/risunCode/SesWi-Session-Manager/tree/Alpha
7+
- **Save & Restore** — Save complete login sessions and restore them later
8+
- **Smart Expiration** — Tracks cookie expiration based on longest-lasting cookie *(experimental, may be inaccurate)*
9+
- **Domain Groups** — Auto-groups sessions by domain for easy management
10+
- **Backup/Export** — JSON (plain) or OWI (AES-256 encrypted) formats
11+
- **Batch Operations** — Bulk backup, delete expired, or clean by domain
12+
- **Clean Tab** — Selectively clear cookies, storage, history, and cache
5513

56-
## Features
14+
## Showcase
5715

58-
- **Save sessions per domain**: cookies + `localStorage` + `sessionStorage`
59-
- **Restore cookies** only when on the same domain (prevents cross-domain conflicts)
60-
- **Three tabs**: `Current` (active domain), `Groups` (all domains), `Manage` (backup/restore, bulk actions, clean data)
61-
- **Backup/Restore**: export all sessions to JSON (plain) or OWI (AES-CCM 256-bit via SJCL), restore with password verification for OWI
62-
- **Clean Current Tab**: selectively remove cookies, localStorage, sessionStorage, history, and cache for the active domain
63-
- **Cached favicons** per domain for a faster, informative UI
16+
| Current Tab | Groups Tab | Manage Tab |
17+
|:-----------:|:----------:|:----------:|
18+
| <img width="280" alt="Current Tab" src="https://github.com/user-attachments/assets/82415046-8903-4e6b-bd63-ef8a35a7eac3" /> | <img width="280" alt="Groups Tab" src="https://github.com/user-attachments/assets/648ba543-bb21-4159-a436-7114e65ef0d7" /> | <img width="280" alt="Manage Tab" src="https://github.com/user-attachments/assets/900dff33-7de2-4a6d-b4ff-5f9b5e82de90" /> |
6419

65-
## Installation (Load Unpacked)
20+
## Installation
6621

67-
1. Clone or download this repository
68-
2. Run `npm install` and `npm run build` to generate the `dist` folder
69-
3. Open Chrome → `chrome://extensions`
70-
4. Enable `Developer mode` (top right)
71-
5. Click `Load unpacked` and select the `dist` folder
72-
6. Pin the extension icon if needed
22+
1. Clone/download this repository
23+
2. Run `npm install && npm run build`
24+
3. Open `chrome://extensions` → Enable Developer mode
25+
4. Click "Load unpacked" → Select the `dist` folder
7326

7427
## Usage
7528

76-
- Click the extension icon to open the popup
77-
- Header displays the current domain and `Add Session` button
78-
- **Current tab**: shows sessions for the active domain; click a card to open Session Actions (Restore, Edit, Replace, Delete, Backup JSON/OWI)
79-
- **Groups tab**: grouped sessions across all domains with expand/collapse and pagination
80-
- **Manage tab**:
81-
- `Backup All Sessions`: export to JSON (unencrypted) or OWI (encrypted)
82-
- `Restore Sessions`: import from `.json` or `.owi` file with password verification
83-
- `Group Manage`: select domains for bulk backup or delete
84-
- `Clean Current Tab`: selectively clear cookies, localStorage, sessionStorage, history, and cache
85-
86-
> **Note**: Session restore is restricted to the same domain as the current tab to prevent cross-domain cookie conflicts.
29+
- **Current tab** — Sessions for active domain
30+
- **Groups tab** — All sessions grouped by domain
31+
- **Manage tab** — Backup, restore, clean data, delete expired
8732

8833
## Permissions
8934

90-
Declared in `manifest.json`:
91-
9235
| Permission | Purpose |
9336
|------------|---------|
94-
| `tabs` | Read active tab, reload after restore/clean, fetch favicons |
95-
| `cookies` | Read, delete, and set cookies per domain |
96-
| `storage` | Store sessions and icon cache in `chrome.storage.local` |
97-
| `scripting` | Execute scripts to read/write `localStorage` and `sessionStorage` |
98-
| `history` | Search and delete browsing history for current domain |
99-
| `browsingData` | Clear cache (optional) |
100-
| `favicon` | Access favicon API for domain icons |
101-
| `host_permissions: <all_urls>` | Enable cookie operations across all domains |
102-
103-
104-
## Security & Privacy
105-
106-
- Sessions are stored locally in `chrome.storage.local` (unencrypted). Protect your device.
107-
- OWI encrypted backups use [SJCL](https://github.com/bitwiseshiftleft/sjcl) with AES-CCM 256-bit. Passwords are never stored.
108-
- Sensitive domains (Google, Microsoft ecosystems) use complex auth flows; saving/restoring may not always work. The UI displays a warning for these domains.
37+
| `cookies` | Read/write cookies |
38+
| `storage` | Store sessions locally |
39+
| `scripting` | Access localStorage/sessionStorage |
40+
| `tabs` | Get active tab info |
41+
| `history` | Clean browsing history |
42+
| `browsingData` | Clear cache |
10943

11044
## Development
11145

11246
```bash
113-
# Install dependencies
11447
npm install
115-
116-
# Development build with watch
117-
npm run dev
118-
119-
# Production build
120-
npm run build
48+
npm run dev # Development with watch
49+
npm run build # Production build
12150
```
12251

12352
## License
12453

125-
```
126-
MIT License
127-
128-
Copyright (c) 2025 risunCode
129-
130-
Permission is hereby granted, free of charge, to any person obtaining a copy
131-
of this software and associated documentation files (the "Software"), to use,
132-
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
133-
derivative works of the Software, subject to the following conditions:
134-
135-
1. The Software may be used for commercial purposes as part of a larger system or service.
136-
2. The Software itself may not be sold as a standalone product or bundled and sold directly.
137-
3. The above copyright notice and this permission notice shall be included in all
138-
copies or substantial portions of the Software.
139-
140-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
141-
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
142-
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
143-
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
144-
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
145-
DEALINGS IN THE SOFTWARE.
146-
```
54+
MIT License - See LICENSE file for details.
14755

14856
## Credits
14957

150-
- [SJCL](https://github.com/bitwiseshiftleft/sjcl) (Stanford Javascript Crypto Library) for encryption
58+
- [SJCL](https://github.com/bitwiseshiftleft/sjcl) for encryption
59+
- [Netscape Cookies Exporter](https://github.com/osiro/netscape-cookies-exporter) for Netscape format reference
15160
- [FontAwesome](https://fontawesome.com/) for icons
15261
- Built by [risunCode](https://github.com/risunCode)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "seswi-session-manager",
3-
"version": "2.2.0",
3+
"version": "3.0.0",
44
"description": "Advanced Session Manager Chrome Extension",
55
"type": "module",
66
"scripts": {

seswi-rebuild-proposal/01-REQUIREMENTS.md

Lines changed: 0 additions & 112 deletions
This file was deleted.

0 commit comments

Comments
 (0)