You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,14 @@
1
1
# Changelog
2
2
3
+
## Version 3.2.9
4
+
5
+
### Subscribed Channels Import + Whitelist Flow
6
+
7
+
-**Subscribed channels import**: Added a Tab View flow that imports the active YouTube account's subscriptions into whitelist.
8
+
-**YouTube tab startup hardening**: The import now reuses or opens a YouTube tab, routes it to `/feed/channels`, and waits for the FilterTube bridge before starting.
9
+
-**Whitelist semantics clarified**: `Import Only` keeps the current blocklist untouched, while `Import + Turn On Whitelist` follows the existing blocklist-to-whitelist migration behavior.
10
+
-**Documentation refresh**: Added dedicated import docs plus updated architecture, technical, pipeline, renderer, and developer docs for the new flow.
Copy file name to clipboardExpand all lines: data/release_notes.json
+13Lines changed: 13 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,19 @@
2
2
{
3
3
"_comment": "Shared release notes source for the dashboard What's New tab and the YouTube release banner. Keep entries sorted newest-first by version."
"summary": "Import the active YouTube account's subscriptions into whitelist with clearer mode-switch semantics and a more reliable /feed/channels startup flow.",
9
+
"bannerSummary": "Build whitelist from your current YouTube subscriptions with inline progress and clearer whitelist activation behavior.",
10
+
"highlights": [
11
+
"New Tab View import: subscribed channels can be imported from the active signed-in YouTube account into whitelist.",
12
+
"Import startup now reuses a live YouTube tab, routes it to /feed/channels, and waits for the FilterTube bridge before starting.",
13
+
"Whitelist copy is clearer: Import Only leaves the blocklist untouched, while Import + Turn On Whitelist follows the existing blocklist-to-whitelist migration path.",
14
+
"Documentation now covers the import architecture, FEchannels request flow, renderer sources, and whitelist semantics in much more detail."
The subscriptions importer adds a second whitelist acquisition path alongside manual whitelist entry. It is intentionally an on-demand architecture, separate from passive feed filtering.
-**Data Sources**: Stashed snapshots, page globals, DOM data
307
+
-**Subscriptions Import Role**: Handles `FilterTube_RequestSubscriptionImport`, collects `/feed/channels` page seed, then follows `FEchannels` browse pages and posts progress/results back to the isolated bridge.
242
308
243
309
### Isolated World Components
244
310
@@ -247,6 +313,11 @@ function stashNetworkSnapshot(data, dataName) {
-**Purpose**: Keeps the subscriptions-import bridge alive in isolated world, forwards requests to MAIN world, relays progress to the UI/runtime, and waits for injector-ready signals.
Copy file name to clipboardExpand all lines: docs/CODEMAP.md
+17Lines changed: 17 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -91,6 +91,7 @@ FilterTube/
91
91
**New Features:**
92
92
-**Debounced Refresh**: `scheduleSettingsRefreshFromStorage()` with 250ms minimum intervals
93
93
-**Storage Filtering**: Ignores channelMap-only changes to prevent excessive reprocessing
94
+
-**Subscriptions Import Bridge**: Keeps a dedicated MAIN-world import bridge alive, forwards `FilterTube_ImportSubscribedChannels`, and relays progress/errors safely back to the UI.
94
95
95
96
### `js/filter_logic.js` - **OPTIMIZED v3.2.1+**
96
97
**Context:** Main World (YouTube pages)
@@ -104,6 +105,7 @@ FilterTube/
104
105
**Improvements:**
105
106
-**Non-configurable Property Safety**: Checks for `configurable: false` before attempting to define properties
106
107
-**Error Handling**: Try-catch blocks around `ytInitialData` hook installation
108
+
-**Subscriptions Import Coordinator**: Handles `FilterTube_RequestSubscriptionImport`, builds `FEchannels` request profiles from `ytcfg`, normalizes channel rows, emits progress, and returns the final channel list.
-**Storage Change Filtering**: Ignores channelMap-only changes to reduce listeners
124
+
-**Subscribed Channels Import**: `importSubscribedChannelsToWhitelist()` validates tab/profile/lock state, requests the channel roster from the selected YouTube tab, then persists it through background batch import.
0 commit comments