Skip to content

Commit 835808e

Browse files
committed
Remove synced browser sessions
1 parent 9a57fa4 commit 835808e

13 files changed

Lines changed: 223 additions & 3387 deletions

File tree

README.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Nenya: Your Universal Browser Companion
22

3-
**Nenya empowers you to seamlessly manage your browsing sessions, bookmarks, and data across all your browsers, so you're never locked into a single ecosystem.**
3+
**Nenya empowers you to seamlessly manage your bookmarks, tabs, and data across all your browsers, so you're never locked into a single ecosystem.**
44

55
![](./docs/poster.jpeg)
66

7-
Nenya is the ultimate browser extension for users who refuse to be tied down to a single browser. It provides a comprehensive suite of tools to manage your tabs, sessions, and bookmarks, and makes it easy to take your data with you, no matter which browser you're using. With Nenya, you can create "projects" of tabs, integrate with Raindrop.io, and enjoy a variety of content interaction features that enhance your browsing experience.
7+
Nenya is the ultimate browser extension for users who refuse to be tied down to a single browser. It provides a comprehensive suite of tools to manage your tabs, bookmarks, and settings, and makes it easy to take your data with you, no matter which browser you're using. With Nenya, you can integrate with Raindrop.io and enjoy a variety of content interaction features that enhance your browsing experience.
88

99
## Features
1010

@@ -13,19 +13,18 @@ Nenya is the ultimate browser extension for users who refuse to be tied down to
1313
- **Tab Rename:** Rename the current tab instantly from popup or keyboard shortcut
1414
- **Screen Recording:** Start/stop screen recording with one shortcut, then preview and download recordings
1515
- **Faster Raindrop Saves:** Optimized Unsorted saving with batch APIs and parallel processing
16-
- **Performance Improvements:** Faster session export cover uploads
16+
- **Performance Improvements:** Faster Raindrop saves and content capture workflows
1717

18-
### 🗂️ Tab & Project Management
18+
### 🗂️ Tab Management
1919

20-
- **Project Management:** Save and restore entire browsing sessions as "projects"
2120
- **Tab Snapshots:** Automatic tab state preservation
2221
- **Tab Switching:** Quick keyboard shortcuts to navigate between tabs (left/right)
2322
- **Rename Tab:** Quickly rename the active tab title
2423
- **Pinned Shortcuts:** Customize your popup toolbar with your most-used features
2524

2625
### 🔄 Cross-Browser & Sync
2726

28-
- **Cross-Browser Sync:** Seamlessly move your projects and data between different browsers
27+
- **Cross-Browser Sync:** Seamlessly move your bookmarks, settings, and data between different browsers
2928
- **Raindrop.io Integration:** Full two-way sync with Raindrop.io bookmarks
3029
- Pull collections from Raindrop
3130
- Save current tabs to Raindrop Unsorted (with optional custom title prompt)

docs/STORE.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
11
# Nenya: Your Universal Browser Companion
22

3-
Nenya empowers you to seamlessly manage your browsing sessions, bookmarks, and data across all your browsers, so you're never locked into a single ecosystem.
3+
Nenya empowers you to seamlessly manage your bookmarks, tabs, and data across all your browsers, so you're never locked into a single ecosystem.
44

5-
Nenya is the ultimate browser extension for users who refuse to be tied down to a single browser. It provides a comprehensive suite of tools to manage your tabs, sessions, and bookmarks, and makes it easy to take your data with you, no matter which browser you're using. With Nenya, you can create "projects" of tabs, integrate with Raindrop.io, and enjoy a variety of content interaction features that enhance your browsing experience.
5+
Nenya is the ultimate browser extension for users who refuse to be tied down to a single browser. It provides a comprehensive suite of tools to manage your tabs, bookmarks, and settings, and makes it easy to take your data with you, no matter which browser you're using. With Nenya, you can integrate with Raindrop.io and enjoy a variety of content interaction features that enhance your browsing experience.
66

77
🌟 Features
88

99
🚀 Latest Updates (v1.46.0 - v1.49.0)
1010
• Tab Rename: Rename the current tab instantly from popup or keyboard shortcut
1111
• Screen Recording: Start/stop recording with one shortcut, then preview and download
1212
• Faster Raindrop Saves: Optimized Unsorted saving with batch APIs and parallel processing
13-
• Performance Improvements: Faster highlight matching and session export cover uploads
13+
• Performance Improvements: Faster highlight matching, Raindrop saves, and content capture workflows
1414

15-
🗂️ Tab & Project Management
16-
• Save and restore entire browsing sessions as "projects"
15+
🗂️ Tab Management
1716
• Automatic tab state preservation with snapshots
1817
• Quick keyboard shortcuts to navigate between tabs
1918
• Rename the active tab title directly from popup or shortcut
2019
• Customize your popup toolbar with pinned shortcuts
2120

2221
🔄 Cross-Browser & Sync
23-
• Seamlessly move projects and data between browsers
22+
• Seamlessly move bookmarks, settings, and data between browsers
2423
• Full Raindrop.io integration with two-way sync
2524
✓ Pull collections from Raindrop
2625
✓ Save tabs to Raindrop Unsorted (with optional custom title)
@@ -89,13 +88,13 @@ Nenya is the ultimate browser extension for users who refuse to be tied down to
8988
Required for Raindrop.io integration to mirror collections and items as browser bookmarks. The extension creates, updates, and manages bookmark folders to sync with your Raindrop account. Also enables the built-in bookmark search functionality allowing seamless cross-platform bookmark management.
9089

9190
- **storage**:
92-
Essential for saving user projects, settings, and preferences. Uses both `chrome.storage.sync` for cross-device synchronization of settings (shortcuts, rules, configurations) and `chrome.storage.local` for tab snapshots, project data, and LLM prompts that don't need to sync.
91+
Essential for saving user settings and preferences. Uses both `chrome.storage.sync` for cross-device synchronization of settings (shortcuts, rules, configurations) and `chrome.storage.local` for tab snapshots and LLM prompts that don't need to sync.
9392

9493
- **tabs**:
95-
Core functionality for project management - creates, queries, updates, and manages browser tabs. Enables saving entire browsing sessions as "projects" and restoring them later, plus features like tab switching, screenshots, and auto-reload.
94+
Core functionality for tab management - creates, queries, updates, and manages browser tabs. Enables features like tab switching, screenshots, content capture, and auto-reload.
9695

9796
- **tabGroups**:
98-
Used in conjunction with tab management to organize related tabs into groups when saving and restoring projects. Helps maintain logical organization of browsing sessions and preserves tab group structure across project saves/restores.
97+
Used in conjunction with tab management to organize related tabs into groups for user workflows such as context-menu actions and split-tab operations.
9998

10099
- **notifications**:
101100
Provides user feedback for important actions like successful Raindrop synchronization, backup completion, auto-reload events, auto-login notifications, and error states. Keeps users informed about background operations without interrupting their browsing.
@@ -119,7 +118,7 @@ Nenya is the ultimate browser extension for users who refuse to be tied down to
119118
Used for implementing content filtering and blocking rules through the visual element picker interface.
120119

121120
- **webNavigation**:
122-
Required for monitoring page navigation events to implement several features: (1) auto-reload functionality based on URL patterns, (2) URL processing rules that transform URLs when opening in new tabs, and (3) tracking tab state changes for project management features.
121+
Required for monitoring page navigation events to implement features such as auto-reload functionality based on URL patterns and URL processing rules that transform URLs when opening in new tabs.
123122

124123
- **host permissions** (`<all_urls>`, `https://api.raindrop.io/*`):
125124
- `<all_urls>`: Required for content script injection across all websites to provide universal features like element blocking, custom styling (CSS), custom code (JS), video controls, bright mode, auto Google login, and LLM page content extraction.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Change: Remove synced browser sessions
2+
3+
## Why
4+
The Raindrop-backed synced browser sessions feature is being removed so Nenya no longer creates, displays, restores, or continuously exports browser sessions to Raindrop.
5+
6+
## What Changes
7+
- Remove the popup and new-tab Sessions UI and all session restore/rename/delete controls.
8+
- Stop creating `nenya / sessions`, stop exporting current tabs on a one-minute alarm, and remove session-specific background message handlers.
9+
- Clear local session caches/preferences and the legacy auto-export alarm without deleting remote Raindrop collections.
10+
- Update public documentation to stop advertising synced browser sessions or session export cover uploads.
11+
12+
## Impact
13+
- Affected specs: auth
14+
- Affected code: `src/popup`, `src/home`, `src/background/index.js`, `src/background/mirror.js`, `src/options/bookmarks.js`
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
## MODIFIED Requirements
2+
### Requirement: Users MUST be able to connect to supported bookmark providers from the options page
3+
The options experience MUST expose provider choices (currently Raindrop.io) and drive the OAuth handshake through the hosted auth helper without initializing synced browser sessions.
4+
5+
#### Scenario: Present provider selection and status
6+
- **GIVEN** the user opens the Cloud Bookmarks Provider section in `src/options/index.html`,
7+
- **THEN** the provider dropdown MUST be populated from the `PROVIDERS` list (`src/options/bookmarks.js`),
8+
- **AND** the provider description and status message MUST reflect whether cached tokens exist and their expiration (displaying success copy + expiry when valid, or errors when expired/missing),
9+
- **AND** the Connect button MUST be visible whenever a provider is selected, with the Disconnect / Pull / Reset buttons only shown while connected.
10+
11+
#### Scenario: Start an OAuth session for the selected provider
12+
- **GIVEN** a provider is selected and the user presses Connect (or Reconnect),
13+
- **THEN** the extension MUST open a new tab to `https://ohauth.vercel.app/oauth/<oauthProviderId>?state=<payload>`,
14+
- **AND** the `state` payload MUST JSON-encode the extension ID and provider ID so the OAuth helper can call back the correct extension instance.
15+
16+
#### Scenario: Handle OAuth success callbacks
17+
- **GIVEN** the OAuth helper finishes and posts an `oauth_success` message to the extension (via `chrome.runtime.onMessageExternal`, limited to `https://ohauth.vercel.app/*` by `externally_connectable`),
18+
- **THEN** the extension MUST persist the received access token, refresh token, and calculated `expiresAt` inside `chrome.storage.sync` under `cloudAuthTokens[providerId]`,
19+
- **AND** show a success toast, mark the backup module as connected, trigger `OPTIONS_BACKUP_MESSAGES.RESTORE_AFTER_LOGIN`, and refresh the backup status UI,
20+
- **AND** it MUST NOT create a `nenya / sessions` collection, export open tabs, or dispatch any synced browser session initialization message.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
## 1. Implementation
2+
- [x] 1.1 Remove session UI from popup and home surfaces.
3+
- [x] 1.2 Remove popup session rendering, caching, and action handlers.
4+
- [x] 1.3 Remove session background message handlers and startup/login auto-export triggers.
5+
- [x] 1.4 Remove Raindrop session collection/export/restore helpers while preserving other Raindrop features.
6+
- [x] 1.5 Add local cleanup for legacy session caches/preferences and alarm.
7+
- [x] 1.6 Update README and store docs.
8+
- [x] 1.7 Validate OpenSpec and run static reference checks.

0 commit comments

Comments
 (0)