Skip to main content
Giovanni Solone
Co-founder of Marvellous Codeworks. Rescued The Great Suspender, built The Marvellous Suspender
View all authors

Road to TMS 9: watching the Tab Health repair work, live, on Brave

· 3 min read
Giovanni Solone
Co-founder of Marvellous Codeworks. Rescued The Great Suspender, built The Marvellous Suspender

We spent the last few posts chasing a Chromium regression across three browsers: it broke grouped tabs on Chrome 149, reached Edge shortly after, and was finally fixed upstream in Chrome 150. That last post also introduced the plan for Brave, which does not follow Chrome's release schedule and might stay affected for a while: TMS 9's new Tab Health page can detect and repair the broken tabs on demand, without waiting for Brave to catch up.

This week we actually ran that repair on a Brave profile with tab groups in a broken state, and it is worth showing rather than just describing.

Chrome 150 fixes the Tab Groups bug — and here is what changed in TMS

· 6 min read
Giovanni Solone
Co-founder of Marvellous Codeworks. Rescued The Great Suspender, built The Marvellous Suspender

When Chrome 149 introduced a regression that silently discarded suspended tabs inside tab groups on every browser restart, TMS shipped a workaround in version 8.1.4. When the same regression reached Microsoft Edge, we addressed that too. We knew from the start that these were stopgap measures — the right fix had to come from the browser itself.

It is now here. Chrome 150.0.7871.47 ships the browser-side patch for crbug.com/522338670. Tab groups restore correctly without any intervention from TMS. We have verified this with a clean restart session and multiple group configurations, and everything behaves as expected.

Here is what that means for TMS, and what we decided to do with the workaround code.

Under the hood: replacing abandoned libraries in TMS 9

· 5 min read
Giovanni Solone
Co-founder of Marvellous Codeworks. Rescued The Great Suspender, built The Marvellous Suspender

TMS 9 is shaping up to be one of the most significant releases in the extension's history — if you have been following along, you already know about the automatic session backups and the Google Drive integration we covered in the previous posts. But not all of the work that goes into a release shows up in the changelog. Some of the most important changes happen completely out of sight, and this one is a good example of that. We replaced two third-party libraries that had been silently aging inside the extension, and we want to be transparent about what changed and why.

What is a "third-party library" and why should you care?

TMS is not written from scratch. Like most software, it relies on a handful of external libraries — small pieces of code written by other developers that handle specific tasks so we do not have to reinvent the wheel. These libraries live inside the extension you install, and their health matters: an abandoned library means bugs get no fixes, known vulnerabilities go unpatched, and compatibility with future browser versions is not guaranteed.

Until now, TMS included two such libraries that were overdue for attention.

db.js — a quietly abandoned dependency

db.js, written by Aaron Powell, is a small wrapper around the browser's IndexedDB storage engine. TMS uses IndexedDB to remember your suspended tabs, saved sessions, favicons, and screenshot previews. db.js was responsible for every read, write, and query against that database.

The problem: development on db.js effectively stopped in 2021. The npm package has been frozen at version 0.15.0 for years. No bug fixes, no security patches, no updates for changes in browser behavior. We were shipping dead code — and dead code carries risk.

We replaced db.js with idb, the IndexedDB wrapper maintained by Jake Archibald (a Google engineer who literally helped write the browser storage specs). idb is:

  • Actively maintained, currently at version 8
  • Widely used across the web platform ecosystem
  • Lean, well-tested, and licensed under ISC (permissive open source)

From your perspective as a user, nothing changes. Your sessions, your suspended tabs, your settings — all of it is stored the same way in IndexedDB. The only difference is that the code that reads and writes your data is now backed by a healthy, modern library instead of an abandoned one.

html2canvas — from a 2020 release candidate to a stable release

The second change is smaller in scope but still worth mentioning. html2canvas, the library TMS uses to generate the screenshot preview shown on suspended tab pages, was pinned at version 1.0.0-rc.7 — a release candidate from 2020. We were shipping pre-release software to everyone.

The library's author, Niklas von Hertzen, published the stable 1.4.1 release in 2022. This version includes several rendering fixes, better SVG support, and improved CORS handling. We updated to it.

For users who have the screenshot preview feature enabled in TMS settings, this may result in slightly more accurate previews on complex pages. For everyone else, there is no visible difference.

An open question for the community: do you use full-page screenshots?

Here is where we need your input.

The screenshot preview in TMS has two modes, configurable in Settings → Preview:

  • Viewport — captures only the visible portion of the page when you suspend it.
  • Full page — scrolls and renders the entire page content, even below the fold.

html2canvas is the only reason TMS needs to ship a 200 KB library. The viewport mode does not actually need it at all — Chrome provides a native API (chrome.tabs.captureVisibleTab) that captures the visible area of a tab directly from the extension, with no third-party code required. Full-page screenshots, however, need html2canvas because no native browser API supports them.

So the question is: do you actually use full-page screenshots? If the vast majority of users either have previews disabled or use viewport-only mode, we could remove html2canvas entirely in a future release, replacing the viewport capture with the native Chrome API and dropping full-page support. The result would be a smaller, simpler, more maintainable extension.

We have opened a discussion on GitHub for exactly this:

👉 Discussion #381 — Which screenshot preview mode do you use in TMS?

If you have an opinion — whether you love the full-page preview or have never even turned it on — we would genuinely like to hear it. Community input is what drives these decisions.

Summary

LibraryBeforeAfterWhy
db.js0.15.0 (2021, abandoned)❌ RemovedReplaced by idb v8
idb8.0.3Modern IndexedDB wrapper, actively maintained
html2canvas1.0.0-rc.7 (2020 RC)1.4.1 (2022 stable)Updated; future status depends on community feedback

These changes will ship in the next TMS release. If you encounter any regressions with session storage, tab history, or screenshot previews after updating, please open an issue on GitHub.

Thank you for using TMS, and thank you — as always — for the patience you extend to a small team maintaining this project in their free time.

Road to TMS 9: automatic session backup, Drive integration, and what's new in the branch

· 6 min read
Giovanni Solone
Co-founder of Marvellous Codeworks. Rescued The Great Suspender, built The Marvellous Suspender

If there is one thing TMS users have asked for more than anything else over the years, it is this: please don't let me lose my sessions. A browser profile wipe, a clean OS install, an accidental extension removal — and everything is gone. TMS has always saved sessions inside Chrome's storage, but Chrome's storage lives and dies with the browser profile.

The feature/session-backup branch changes that.

Road to TMS 9: a new look for a new era

· 7 min read
Giovanni Solone
Co-founder of Marvellous Codeworks. Rescued The Great Suspender, built The Marvellous Suspender

TMS has been quietly getting better for years — new bugfixes, compatibility patches, a full Manifest V3 migration — but the extension's visual identity never kept up. The settings pages still looked like a relic of 2018. The popup was fine, but only barely. Nothing matched the Marvellous Codeworks website.

That changes with TMS 9.

This is the first in a series of posts we're calling Road to TMS 9 — a chance to show you what's being built on the feature branches before it ships, explain the decisions behind the changes, and hear from you before things are set in stone. Think of it as development in the open.

Today: the visual redesign.

TMS & Microsoft Edge: the Chromium tab group regression is hitting Edge users too

· 4 min read
Giovanni Solone
Co-founder of Marvellous Codeworks. Rescued The Great Suspender, built The Marvellous Suspender

If you are using Microsoft Edge and noticed that your suspended tabs inside tab groups disappear or turn into blank New Tab pages after a browser restart, you are running into the same Chromium-level regression that first appeared in Chrome 149 — and it is now reaching Edge users too.

Suspendy Guy is not happy about this

What happened

Microsoft Edge is built on the Chromium engine, which means it inherits browser-level changes from the upstream Chromium project — including regressions. The change introduced around Chromium 149 that broke the tab group restore behavior for suspended tabs is now making its way into Edge builds.

As a result, Edge users are experiencing the same symptoms Chrome users saw earlier:

  • Suspended tabs inside tab groups are silently discarded when the browser restarts.
  • Tabs outside tab groups are not affected and restore correctly.
  • The suspended tab URL (chrome-extension://… / extension://…) is apparently filtered out during session restore when inside a group.

This is tracked in the dedicated GitHub issue #374, opened specifically for Edge. Issue #369 — the original Chrome report — has also been reopened because of these lingering effects across the Chromium ecosystem.

Current status

To be clear about where things stand right now:

  • The browser-side Chromium fix is under review but has not yet landed in Chrome's stable channel — Chrome 149.0.7827.156 is still affected. The fix is expected sometime this weekend or early next week.
  • Edge will take even longer, as it follows its own release schedule on top of Chromium's.
  • TMS 8.1.4 addressed the issue for Chrome users at the extension level, but some edge cases are still being investigated (see #369).
  • TMS 8.1.5 is in active development and specifically targets the Edge regression. A fix has already been tested and looks solid — we expect a release candidate to be ready very soon.

We are not waiting for the browser vendors to ship their fix. We are shipping our own.

This is not TMS's fault

We want to be very clear: this regression was introduced by a change in the Chromium engine, not by anything TMS did. We are nonetheless doing everything we can to protect your tabs while the browser-side fix works its way through the release pipeline. We are sorry you are caught in the middle of this.

Temporary workaround

If you lost tabs, the manual recovery steps still apply:

  1. Open the tab group that now shows blank New Tab pages.
  2. For each empty tab, click the browser Back button (top-left arrow) once.
  3. The original suspended tab page should reappear.
Preventing further losses in the meantime

Until TMS 8.1.5 is available, consider unsuspending tabs before restarting the browser, or temporarily moving important tabs out of tab groups.

What we are doing about it

  • TMS 8.1.5 is coming, with a targeted fix for Edge. Follow PR #376 for progress.
  • We are tracking the Edge-specific report in issue #374 — follow it for real-time updates.
  • Issue #369 has been reopened to track lingering issues for Chrome users on TMS 8.1.4 as well.
  • The upstream Chromium fix (chromium-review.googlesource.com) will eventually reach Edge too, but we are not relying on that timeline.

We know how frustrating this is, especially after Chrome users already went through it. Thank you for your patience.

The Marvellous Suspender 8.1.4 — Tab group restore fix for Chrome 149

· One min read
Giovanni Solone
Co-founder of Marvellous Codeworks. Rescued The Great Suspender, built The Marvellous Suspender
Rob Kodey
Co-founder of Marvellous Codeworks. Rescued The Great Discarder, built The Great-er Tab Discarder

A targeted fix release addressing the tab group restore regression introduced by Chrome 149, where suspended tabs inside tab groups were silently discarded after a browser restart.

What's fixed

Suspended tabs inside tab groups restored correctly after restart

Starting with Chrome 149, a change in the browser's session restore engine caused tabs with non-https:// URLs — including TMS suspended tabs — to be skipped when restoring tab groups. This resulted in blank New Tab pages appearing in place of your suspended tabs after every restart.

TMS 8.1.4 works around the Chrome-side behavior and restores suspended tabs inside tab groups correctly again. Tabs outside tab groups were not affected and continue to work as before.

note

If you used the back-grouped-tabs companion extension as a temporary workaround, you can safely remove it now that TMS includes a built-in fix.


Full changelog on GitHub: v8.1.4 release

Related: TMS & Chrome 149: suspended tabs inside tab groups lost after restart

TMS & Chrome 149: suspended tabs inside tab groups lost after restart

· 4 min read
Giovanni Solone
Co-founder of Marvellous Codeworks. Rescued The Great Suspender, built The Marvellous Suspender
info

2026-06-12

  • A companion extension — back-grouped-tabs — is now available as a temporary workaround while a proper fix for the Chrome bug is being developed. See the new section below for details.

2026-06-15

  • TMS 8.1.4 has been submitted to the Chrome Web Store and is currently pending review. This version includes a fix for the tab group restore issue.
  • The Chrome team is also working on an official browser-side fix: the patch is under review at chromium-review.googlesource.com. It's a race to see who gets there first!

2026-06-16

  • TMS 8.1.4 is now live on the Chrome Web Store. The tab group restore issue is fixed — update TMS and you are good to go.
  • The back-grouped-tabs companion workaround is no longer needed. The repository remains available for anyone who still wants it, but you can safely remove the extension.

If you are using Chrome 149 and noticed that your suspended tabs inside tab groups turn into blank New Tab pages after a browser restart, you are not alone — and it is not your fault.

Suspendy Guy is not happy about this

What happened

Starting from Chrome 149, a change in the browser's tab group restore engine broke compatibility with suspended tabs managed by TMS. When Chrome restores a session after a restart, it now skips tabs whose URL does not start with https:// inside tab groups. Since TMS suspended tabs use an internal chrome-extension://… URL, they are silently discarded instead of being restored.

Tabs outside tab groups are not affected and restore correctly as before.

The issue was reported by users shortly after Chrome 149 rolled out and confirmed by the TMS team. A member of the Chrome development team has acknowledged the problem and filed an internal bug to investigate whether the behavior change was intentional or an unintended side effect.

Temporary workaround

If you lost tabs, there is a way to recover them without restoring a backup:

  1. Open the tab group that now shows blank New Tab pages.
  2. For each empty tab, click the browser Back button (top-left arrow) once.
  3. The original suspended tab page should reappear.

This is tedious if you have many tabs, but it beats losing them permanently.

Preventing further losses in the meantime

Until a fix is available, consider unsuspending tabs before restarting Chrome, or temporarily moving important tabs out of tab groups.

What we are doing about it

  • TMS 8.1.4 is now available on the Chrome Web Store. It addresses the tab group restore issue directly — suspended tabs inside tab groups will no longer be discarded after a browser restart. Update TMS and the problem goes away.
  • The Chrome team also had an official fix under review on the browser side; TMS shipped the fix first.

We know how frustrating data loss is, and we are sorry you hit this. Thank you for your patience while we sort it out.

Companion workaround: back-grouped-tabs

Workaround no longer needed

TMS 8.1.4 is out and fixes the issue natively. If you have updated TMS, you can safely remove the back-grouped-tabs companion extension. The repository remains available for anyone who still wants to use it.

While the proper fix was in the works, a small companion extension was made available: back-grouped-tabs.

It does one thing: when Chrome restores a session and discards suspended tabs inside tab groups, this extension detects the affected tabs and navigates them back so the suspended page reappears — automatically, without you having to click the Back button on each one.

To install it, clone or download the repository and load it as an unpacked extension in Chrome (chrome://extensions/ → enable Developer Mode → Load unpacked). The README covers everything you need to know.


Follow the original issue on GitHub: #369 – Suspended tabs inside tab groups are lost after browser restart (Chrome 149)

Cutting the last thread to The Great Suspender

· 3 min read
Giovanni Solone
Co-founder of Marvellous Codeworks. Rescued The Great Suspender, built The Marvellous Suspender

The Marvellous Suspender has been a fork since day one — born in 2021 out of The Great Suspender, at a time when that project had been pulled from the Chrome Web Store and flagged as malware. TMS cleaned up what needed cleaning and gave orphaned users somewhere to go. Fair enough, that's exactly what a fork is for.

But five years later, TMS isn't a patched-up copy of someone else's abandoned code anymore. It's had a full Manifest V3 rewrite, a proper visual redesign, its own contributors, and — as of a few months ago — a home under the Marvellous Codeworks name. The GitHub fork relationship, though, hadn't changed: technically, gioxx/MarvellousSuspender was still listed as a fork of the original repository, tied to its network, its issues, its history.

The Marvellous Suspender 8.1.3 — Vivaldi fix

· One min read
Giovanni Solone
Co-founder of Marvellous Codeworks. Rescued The Great Suspender, built The Marvellous Suspender
Rob Kodey
Co-founder of Marvellous Codeworks. Rescued The Great Discarder, built The Great-er Tab Discarder

A targeted patch for Vivaldi users who were experiencing crashes related to a browser-specific API inconsistency.

What's fixed

Vivaldi getContexts workaround

Vivaldi implements a non-standard version of the chrome.runtime.getContexts API that was causing TMS to throw an unhandled error. This release adds a workaround that detects and handles the inconsistency, restoring normal operation for Vivaldi users.

note

This is the current stable release available on the Chrome Web Store. If you are on Vivaldi and experienced unexpected behavior after the 8.1.2 update, updating to 8.1.3 should resolve it.


Special thanks to @wobondar for supporting the project! ❤️

Full changelog on GitHub: v8.1.3 release