Releases: countgitmick/FreeTubePlusTabs
FreeTube + Tabs v0.24.3
What's New
Fix: Channel sort dropdown restored
YouTube renamed their internal renderer types for channel page filter chips (feedFilterChipBarRenderer → chipBarViewRenderer), breaking the sort dropdown (Latest / Popular / Oldest) on channel Videos, Shorts, and Live tabs. This release patches youtubei.js at build time to support both old and new renderer types with a unified fallback chain.
- Upstream tracking: LuanRT/YouTube.js#1142, FreeTubeApp/FreeTube#8639
Other changes
- fix: Update transitive deps for security vulnerabilities
- fix: Revert
--no-zygoteflag that broke Electron on NixOS - fix: Fullscreen improvements — delegate Escape to browser native behavior, proper cleanup on unmount, tab bar hidden during fullscreen
- chore: Move
yaml-eslint-parserto devDependencies
NixOS
Update your flake input to this release's commit and rebuild.
FreeTube + Tabs v0.24.2
FreeTube + Tabs v0.24.2
Architecture
- Unified tab operations — consolidated scattered tab transition handlers into a single composable with serialized execution, preventing race conditions
- IPC hardening — renderer→main IPC calls now strip Vue reactive Proxies at the boundary, validate all incoming data, and support timeout and abort signals. Added Content Security Policy with correct
connect-srcfor production - Deduplicated view logic — extracted shared route guard, backend fetch fallback, and watcher patterns; net reduction of ~230 lines across Channel, Watch, and player components
Bug Fixes
- Fix back/forward navigation within same tab — pressing back/forward after navigating between videos did nothing; the tab executor was silently suppressing route change reactions during intra-tab history navigation
- Fix tab drag crash — dragging tabs could throw; now shows media playing state in tab icon
- Fix Vue lifecycle errors during tab close — deferred tab removal until navigation settles, preventing null-instance errors
- Fix Shaka player DOM and listener leaks — player elements and event listeners were accumulating over time
- Fix progress bar lingering on abort — subscription feeds now clean up the progress bar when fetch is aborted
- Fix IPC serialization errors — Vue reactive objects sent over IPC caused DataCloneError in multiple code paths; fixed at the IPC boundary layer
- Fix will-navigate handler timing — deferred handler until after initial page load to prevent interference with Electron's loadURL()
- Fix refresh button disappearance — resolved layout regression; matched nav button sizing consistently
- Fix arrow button state — back/forward arrows now reactively derive enabled/disabled from the tab's history index
- Fix refresh widget timestamp — "Last updated" timestamps now update continuously
- Fix tab bar layout gaps — removed hover gap at start of tab bar and closed visual gap between sidebar and tab bar
- Fix subscription cache timestamps — date comparison now handles JSON-serialized values correctly
- Fix PO token generation — relaxed validation to accept channel IDs and removed overly strict context type check
CI/CD
- Nix build workflow — added GitHub Actions workflow to verify the NixOS flake builds on every push and PR
Docs
- Rewritten CONTRIBUTING.md — updated for fork identity and workflow
Install
NixOS (flake):
nix run github:countgitmick/FreeTubePlusTabs
Other platforms: Download the appropriate asset below for your OS and architecture.
FreeTube + Tabs v0.24.1
FreeTube + Tabs v0.24.1
New Features
- ESC exits fullscreen — pressing Escape now exits native fullscreen in the video player
- Faster player controls fade — controls and cursor hide in 0.5s after mouse stops (down from Shaka's default 3s idle timer), with 0.3s fade animation
- Sticky tab bar — tab bar stays pinned at the top when scrolling page content
- Refresh Tab in context menu — right-click a tab to refresh it (soft refresh for active tabs)
- Refresh widget moved to TopNav — cleaner layout via Teleport
Bug Fixes
- Fix Vue lifecycle errors during tab refresh — removed key-based component destruction that caused
emitsOptions/parentNodenull errors - Fix tab scroll position save/restore — routerView is now the scroll container when tabs are enabled, fixing previously broken scroll persistence
- Fix search errors on route transitions — guard against empty/undefined query params
- Fix SABR 401 errors — auto-reload instead of format fallback
- Fix multi-tab SABR conflicts — per-stream scheme registry prevents cross-tab interference
- Fix Shaka player and SponsorBlock console errors
- Fix RSS feed 404 console spam — route requests through main process
- Fix active tab highlight color — use
color-mixinstead of brokenprimary-color-rgb - Revert custom Wayland fullscreen — removed IPC-based fullscreen override and opacity workaround; uses upstream browser Fullscreen API (Wayland surface unmap glitch is a Chromium upstream issue)
Install
NixOS (flake):
nix run github:countgitmick/FreeTubePlusTabs
Other platforms: Download the appropriate asset below for your OS and architecture.
FreeTube + Tabs v0.24.0
FreeTube + Tabs v0.24.0
New Features
- Tab context menu — right-click tabs for Close, Close Others, Close to Right, Duplicate; new tabs insert next to the active tab
- Updated About page — Monero donation address, removed upstream contact info
Bug Fixes
- Fix tab corruption ("borging") on rapid switching — added
tabSwitchInProgresslock across all 13 tab-switching entry points to prevent concurrent switches from overwriting tab state - Fix shaka.log monkey-patch crash — removed patch that crashed the renderer process
- Fix console warnings & RSS 403 fallback — cleaner console output, RSS feeds falling back to scraper on 403
- Fix missing chapterStreams in SABR manifest — chapters now load correctly
- Fix tab-aware sentry mode — pauseReason enum and console error cleanup
- Migrate shaka-player API v4 → v5 — compatibility with shaka-player 5.x
- Fix video pause on tab switch — only pauses when switching to another video tab, not any tab
Dependencies
- shaka-player 4.16.20 → 5.0.7
- electron 41.0.2 → 41.0.3
- vue-router 5.0.3 → 5.0.4
- eslint 10.0.3 → 10.1.0
- stylelint 17.4.0 → 17.5.0
- marked 17.0.4 → 17.0.5
- electron-context-menu 4.1.1 → 4.1.2
- webpack-cli 7.0.1 → 7.0.2
- @babel/preset-env 7.29.0 → 7.29.2
Install
NixOS (flake):
nix run github:countgitmick/FreeTubePlusTabs
Other platforms: Download the appropriate asset below for your OS and architecture.
Notes
Based on FreeTube 0.23.15. All upstream features are preserved — tabs are additive.
v0.23.15 — FreeTube + Tabs
FreeTube + Tabs v0.23.15
First release of FreeTube + Tabs — a fork of FreeTube with browser-style tabbed browsing.
What's new (vs upstream FreeTube 0.23.15)
- Browser-style tabs: open videos, channels, searches in new tabs
- Middle-click or Ctrl+click to open in new tab
- Keyboard shortcuts: Ctrl+T, Ctrl+W, Ctrl+Tab, Ctrl+1-9
- Tabs preserve scroll position, video timestamp, and full page state
- Only the active tab plays audio
- Right-click tab menu: Close, Close Others, Close to Right, Duplicate
- Tabs restore on app restart
- Configurable max tab limit (default 20)
Install
NixOS:
nix run github:countgitmick/FreeTubePlusTabsOther Linux / Windows / Mac: Download from the assets below.
Notes
- Your existing FreeTube data (subscriptions, playlists, history) works as-is
- Based on FreeTube v0.23.15