gioxx / MarvellousSuspender

A chrome extension for suspending all tabs to free up memory, based on the original TGS 7.1.6, without tracking. Find more information about that on https://gioxx.org/tms
https://go.gioxx.org/download-tms
GNU General Public License v2.0
1.05k stars 87 forks source link

The Marvellous Suspender need your help to survive. #197

Open gioxx opened 1 year ago

gioxx commented 1 year ago

Discussed in https://github.com/gioxx/MarvellousSuspender/discussions/196

Originally posted by **gioxx** October 18, 2022 I wrote an article summarizing what might be the future of this add-on. Do you think you can help with its survival? Bring it on! IT: https://gioxx.org/2022/10/18/the-marvellous-suspender-a-look-into-the-future/ EN: https://gioxx.org/2022/10/18/the-marvellous-suspender-a-look-into-the-future/#en-us Thanks to all our users and contributors.

June 2024: So Long, and Thanks for All the Fish 🇮🇹 https://go.gioxx.org/tms-thelastdance 🇺🇸 https://go.gioxx.org/tms-thelastdance#en-us

jackphelps commented 1 year ago

Sounds like they've postponed it some, and this is a promising announcement: https://groups.google.com/u/0/a/chromium.org/g/chromium-extensions/c/zQ77HkGmK9E

... it seems like probably the package wouldn't have worked anyway, without access to the DOM, but that they might be reconsidering that?

I haven't written js in a long time, so I'm not sure about that and don't feel especially qualified for the upgrade, but I'm following the issue and can at least take a look when I have time. Thank you for all the work you've been putting in!

gissf1 commented 1 year ago

@gioxx I could try helping out here with development occasionally, if you still need assistance. I haven't looked into any of the code here yet, but I'm a long term user and have many years of software development experience.

Is there any development plan in place, or do we still need to design that yet?

Since the latest Chrome (v110+?) now has Memory Saver built-in, maybe the new version of this plugin should build on top of that, and avoid duplicating any overlapping functionality? I think it would make sense to compare what we offer with what Memory Saver does to avoid redundant effort.

gioxx commented 1 year ago

Ciao @gissf1 thank you for your message, it's really heartening, and yes, I confirm that my request for help still stands today because as you may have seen, I have stopped the development of the extension to try to regroup with someone really capable and breathe life back into this project that I would be so sorry to have cease.

There is no new development plan to date; it should be designed from scratch.

The latest version of Chrome certainly brings on board the Memory Saving feature, which could be better exploited via Marvellous Suspender, which-perhaps-at this point could really lighten up and dedicate itself to more special features requested loudly by users. I totally agree with you about avoiding developing something that already exists and perhaps going against what Google introduced.

ossilator commented 1 year ago

due to an issue created for TGS, i noticed that there is now something that calls itself "The Great Suspender Original" and at least superficially seems to be a continuation of the original work. as TGS is GPL-licensed, you're free to use the derived work even if the owner doesn't publish the source or even protests.

there is also "The Great Suspender", which is presumably another fork.

gioxx commented 1 year ago

The Chrome store is full of forks of the original extension, "The Great Suspender Original" I hadn't noticed it while "The Great Suspender" yes.

It would be nice if developers would provide references to repositories here on GitHub (GitLab or anything else) where we can work together and check that everything is in order (although you could always download the extension files and analyze them as much as possible).

christopherreay commented 1 year ago

Hmm..

So I am interested (not commiting to!) in taking on the role you suggest, to redevelop TMS.

My entire life/work cycle is dependent on TMS. I have.. about 60 browser profiles, with currently maybe... 5000 open tabs.

For my part there are a couple of things I might add to the tool, but basically it does exactly what I want and is efficient and clean and doesnt do annoying stuff :)

I have got many people to install this. I am a full time developer and product owner, working globally on many projects including ReFi and etc etc.

but hey, gotta give back some time

Couple of questions... like

lets have a chat on here for a bit, and then we can have a zoom at a later date if it all fits.

also fyi, i have been meaning to build some tools for browser extension management into our platform, so this is a good excuse :) tyty for the wonderful work so far ;) x

ossilator commented 1 year ago

you could have looked yourself ... i found two serious contenders:

https://chrome.google.com/webstore/detail/tab-suspender/fiabciakcmgepblmdkmemdbbkilneeeh

https://chrome.google.com/webstore/detail/tiny-suspender/bbomjaikkcabgmfaomdichgcodnaeecf

then there is also a bunch of "discarders", which have the inherent disadvantage that they are unable to suspend the foreground tab in a (visible?) window (when you discard the current tab, the "auto tab discard" extension just switches to the next tab).

(there is also "workona tab suspender", which i'd classify as malware, which you'll understand if you try it ...)

christopherreay commented 1 year ago

I indeed could have, but to do a thorough check of things that I havent been keeping track of would take days. Im supergrateful, and had noticed you had been keeping track.

So basically... TMS is one of or the leading tool for this. It has a great following as far as I can tell. I will have a look at the other things you suggested and compare.

Honestly I was asking some clear questions to the people that run this since it is a concern of theirs, I am just a user.

Im willing to commit a bunch of time.

I reviewed yesterday for a couple of hours the Manifest3 stuff from chrome, and I understand all of it since I work with browsers and do weird and wonderful things with them every day.

Next thing I will do is have a look through the TMS code and see what I can see in terms of migration. As far as I can tell there shouldnt be that much to do for it.

If you want to take on the role, @ossilator, im perfectly happy for you to do that, Im not competing with you.

ossilator commented 1 year ago

noooo, you go ahead. you may hear from me when you post PRs. :grin:

christopherreay commented 1 year ago

OK Pal! Thank you :)

I will have a bunch of free time in July. Lets see if I can get it oaann :)

trekshcool commented 1 year ago

OK Pal! Thank you :)

I will have a bunch of free time in July. Lets see if I can get it oaann :)

Really glad to see someone is on this, I personally have too many tabs tied up in the suspender ecosystem. Now both the other forks have died and been nuked form the store. One of them was even flagged as malware and nuked all my tabs which I only managed to recover because I had other ways to save the tabs which then I had to edit out all the extension stuff reload all my 500 tabs in full and then resuspend with TMS.

I am pretty rusty in terms of coding but I can probably help bugfix when the time comes.

ThisIsSammysAccount commented 1 year ago

Hi Gioxx. I've was a long time user of Great Suspender and switched to TMS very early, so I greatly appreciate your effort to keep this project alive and would like to see it continue. There have not been any updates here since June - did christopherreay get involved or has there been any traction on the upgrade? I am a developer and may be able to help but I don't want to blindly insert myself. I'd also be interested in understanding the overlap between this extension and Chrome's new memory management features, as asked in #218. Because TMS does such a great job I've never experimented with Chrome's new functionality - hoping someone here can give a simple comparison. Thanks!

christopherreay commented 1 year ago

So the chrome thing is called "Chrome Memory Management".

built in stuff

The Marvelous (that we all love) Suspender

comparison Chrome Discard, and TMS

Other stuff


Thats a decent first go at it. If anyone has any questions we can all try and answer them.

Is there a way of contacting the users? Any idea? I have to say I didnt really consider the "community" around TMS until the debacle with the sale.

Crypto-Spartan commented 1 year ago

Thanks for providing all of this info, this has been super informative.

I do have some additional questions:

mkz7 commented 1 year ago

Sad to say, I have been informed by Gioxx that users of The Marvellous Suspender will have to replace it with another option once manifest v3 goes into effect (assumed to be as of Jan. 1, 2024). Apparently, no group effort to keep TMS alive has materialized.

Is there any consensus at the current time as to what the best replacement(s) for TMS is/are?

Poopooracoocoo commented 1 year ago

Jan 2024 is an old date for the removal of MV2 extension APIs in Chrome, if I recall correctly. I don't think Google has set a new phase out date yet.

mkz7 commented 1 year ago

I don't think Google has set a new phase out date yet.

Gioxx is no doubt aware of that, and perhaps the date will be extended. But as of the current date there is no projected continuation of TMS once v3 goes into effect. If group development does occur in the interim, the pessimistic forecast could indeed change. I reported the current projection.

christopherreay commented 1 year ago

I've already mentioned and analysed the requirements of v3. in fact in my response two days ago.

On Wed, 20 Sept 2023, 18:47 mkz7, @.***> wrote:

I don't think Google has set a new phase out date yet.

Gioxx is no doubt aware of that, and perhaps the date will be extended. But as of the current date there is no projected continuation of TMS once v3 goes into effect. If group development does occur in the interim, the pessimistic forecast could indeed change. I reported the current projection.

— Reply to this email directly, view it on GitHub https://github.com/gioxx/MarvellousSuspender/issues/197#issuecomment-1728184352, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAB2PPRAX3XTP7AZBDIVSA3X3MTZ5ANCNFSM6AAAAAARHZESZ4 . You are receiving this because you commented.Message ID: @.***>

mkz7 commented 1 year ago

I've already mentioned and analysed the requirements of v3. in fact in my response two days ago.

So your conclusion is that TMS requires nothing to continue 'as is' under v.3?

Also, what does "the debacle with the sale" refer to?

christopherreay commented 1 year ago

Aye, so the major changes for manifest 3 are about the interface to the internet for extensions. This "makes everything more efficient", whilst also making it a total pita for extensions to update or access any information. So... ublock_origin will only be able to update blocklists by actually updating the extension.

There may be some syntax changes, or w/e, but fundamentally the v3 changes dont really interact with the core behaviour of TMS.

So TGS was sold to someone who then turned TGS into malware, which is what caused TMS to be forked

Cheers :)

mkz7 commented 1 year ago

Presumably, gioxx is aware of the situation and has nonetheless forecast the end of TMS.

My impression is that a level of developer networking to keep it alive would be needed that so far has not occurred and that gioxx doesn't expect to occur.

If your view turns out to be accurate, the unexpected tenure of TMS with no revamping will no doubt be welcome both to gioxx and to all of TMS's users.

I knew about TGS and its 'bad end' but wondered what that has to do with the current status quo -- i.e., the survival of TMS under manifest v3.

ThisIsSammysAccount commented 1 year ago

Thanks christopherreay for the excellent info and Crypto-Spartan for asking basically the same follow up questions I had. I looked into a couple of the answers:

  • what is the behavior when TMS & chrome tab discarding are both enabled?

There are 2 Chrome features to consider, Tab Freeze and Discard, both of which can work alongside TMS. The Freeze feature, as mentioned, puts a page in the "Frozen" state and basically disables scripting on events on the page. That will result in CPU usage improvements, but not necessarily memory improvements unless the site developers follow the recommendations and clean up on this event. Details on the frozen state and recommendations here: https://developer.chrome.com/articles/page-lifecycle-api/#state-frozen

The Freeze event will still take place on hidden pages both before TMS suspend kicks in, and after a page is suspended and put into back cache (as long as the TMS "chrome memory saver" option detailed below is not enabled). I couldn't find documentation on exactly when the Freeze event happens so I went to the Chromium source. As far as I can tell, it basically applies to everything but your last 3 visible tabs, so it will certainly trigger before TMS steps in. https://github.com/chromium/chromium/blob/main/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageAssassin.java#L87

The Discard event could occur before TMS' timer steps in, if a page was whitelisted in TMS, or after a page was suspended by TMS (either immediately, see below setting, or "naturally"). I'm not positive exactly when the Discard event "naturally" occurs, but it appears to relate to a Chrome flag or setting that isn't visible anymore or defaults to 120 minutes of tab inactivity. In concept, this would mean that tabs are Discarded before, after, or potentially concurrently to TMS attempting a suspend, depending on the TMS setting. The Discard is what would provide the main memory savings.

  • if you have an extension such as Auto Tab Discard, how does this change Chrome's discarding behavior?

Not positive as I don't use any other memory management extensions. I expect it just further modifies the timing of the Discard event as noted below.

  • how does this TMS setting interact with chrome's memory saver? (apply chrome's built-in memory saving):

From the tooltip info:

"Reduces a suspended tab's memory usage even more, by utilizing Chrome's built-in 'tab discarding' functionality. This can result in up to 500% memory savings when working with large numbers of tabs.

However, it will also cause a slight rendering delay when selecting a suspended tab."

That actually is not the full story. What it actually does is attempt to forcefully Discard the tab as soon as TMS suspends it. As noted in the flowchart above, a Discard is more aggressive than a Freeze and is the same as a full tab close, so awakening the tab in TMS will reload it fully and you will lose state and form data. That may still occur after a period of time if the setting is enabled in Chrome, see above, but may be too aggressive if your TMS suspend timer is set low. The actual forced discard process happens here: https://github.com/gioxx/MarvellousSuspender/blob/master/src/js/gsTabDiscardManager.js#L28

More good info on tab Discards and managing them: https://arstechnica.com/gadgets/2023/02/chrome-110-will-automatically-discard-background-tabs-heres-how-to-stop-it/

It seems to me that since back cache is "standard" in the current version of Chrome, to get the full benefit of suspending tabs either the TMS "chrome memory saver" option or the native Chrome Memory Saver option needs to be enabled. They do the same thing, the question will just be on timing and how much control you want to have without an additional extensions.

To summarize, it does appear that Chrome is now capable of providing most of the performance benefit that TMS used to bring. As noted, however, TMS provides much more control, the ability to look through suspended (potentially Discarded) tabs without bringing them back to life, a better user interface, and session tracking with import/export. To me, that is still enough of a reason to keep it alive, so it is worth the effort to look into the manifest migration.

christopherreay commented 1 year ago

great, thanks.

does TMS attempt to use the back cache if its still there? Or does chrome magically use the backcache on loading the URL?

I could look it up, lol, but I thought Id ask :)

thank you so much for the great analysis and wording Christopher Reay (they / them)

Be prepared to have your predictions come true

On Thu, 21 Sept 2023 at 04:45, Sammy @.***> wrote:

Thanks christopherreay for the excellent info and Crypto-Spartan for asking basically the same follow up questions I had. I looked into a couple of the answers:

  • what is the behavior when TMS & chrome tab discarding are both enabled?

There are 2 Chrome features to consider, Tab Freeze and Discard, both of which can work alongside TMS. The Freeze feature, as mentioned, puts a page in the "Frozen" state and basically disables scripting on events on the page. That will result in CPU usage improvements, but not necessarily memory improvements unless the site developers follow the recommendations and clean up on this event. Details on the frozen state and recommendations here: https://developer.chrome.com/articles/page-lifecycle-api/#state-frozen

The Freeze event will still take place on hidden pages both before TMS suspend kicks in, and after a page is suspended and put into back cache (as long as the TMS "chrome memory saver" option detailed below is not enabled). I couldn't find documentation on exactly when the Freeze event happens so I went to the Chromium source. As far as I can tell, it basically applies to everything but your last 3 visible tabs, so it will certainly trigger before TMS steps in.

https://github.com/chromium/chromium/blob/main/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageAssassin.java#L87

The Discard event could occur before TMS' timer steps in, if a page was whitelisted in TMS, or after a page was suspended by TMS (either immediately, see below setting, or "naturally"). I'm not positive exactly when the Discard event "naturally" occurs, but it appears to relate to a Chrome flag or setting that isn't visible anymore or defaults to 120 minutes of tab inactivity. In concept, this would mean that tabs are Discarded before, after, or potentially concurrently to TMS attempting a suspend, depending on the TMS setting. The Discard is what would provide the main memory savings.

Not positive as I don't use any other memory management extensions. I expect it just further modifies the timing of the Discard event as noted below.

  • how does this TMS setting interact with chrome's memory saver? (apply chrome's built-in memory saving):

From the tooltip info:

"Reduces a suspended tab's memory usage even more, by utilizing Chrome's built-in 'tab discarding' functionality. This can result in up to 500% memory savings when working with large numbers of tabs.

However, it will also cause a slight rendering delay when selecting a suspended tab."

That actually is not the full story. What it actually does is attempt to forcefully Discard the tab as soon as TMS suspends it. As noted in the flowchart above, a Discard is more aggressive than a Freeze and is the same as a full tab close, so awakening the tab in TMS will reload it fully and you will lose state and form data. That may still occur after a period of time if the setting is enabled in Chrome, see above, but may be too aggressive if your TMS suspend timer is set low. The actual forced discard process happens here:

https://github.com/gioxx/MarvellousSuspender/blob/master/src/js/gsTabDiscardManager.js#L28

More good info on tab Discards and managing them:

https://arstechnica.com/gadgets/2023/02/chrome-110-will-automatically-discard-background-tabs-heres-how-to-stop-it/

It seems to me that since back cache is "standard" in the current version of Chrome, to get the full benefit of suspending tabs either the TMS "chrome memory saver" option or the native Chrome Memory Saver option needs to be enabled. They do the same thing, the question will just be on timing and how much control you want to have without an additional extensions.

To summarize, it does appear that Chrome is now capable of providing most of the performance benefit that TMS used to bring. As noted, however, TMS provides much more control, the ability to look through suspended (potentially Discarded) tabs without bringing them back to life, a better user interface, and session tracking with import/export. To me, that is still enough of a reason to keep it alive, so it is worth the effort to look into the manifest migration.

— Reply to this email directly, view it on GitHub https://github.com/gioxx/MarvellousSuspender/issues/197#issuecomment-1728721401, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAB2PPVRZZ6IE7CVDH4DNZLX3OZ5VANCNFSM6AAAAAARHZESZ4 . You are receiving this because you commented.Message ID: @.***>

mkz7 commented 1 year ago

@ThisIsSammysAccount Thanks for adding that. However, developers will have to network with gioxx to keep TMS alive. So far that hasn't happened. That is the information I have from my contact with gioxx a few weeks ago.

ThisIsSammysAccount commented 1 year ago

does TMS attempt to use the back cache if its still there? Or does chrome magically use the backcache on loading the URL?

TMS uses the native chrome.tabs.update function to bring the tab back to life. There is some "temporary" code there around a possible bug with autoDiscard, but I don't know if that effects back cache. https://github.com/gioxx/MarvellousSuspender/blob/master/src/js/background.js#L605 https://developer.chrome.com/docs/extensions/reference/tabs/#method-update

I would have expected that process to leverage back cache, but doing some quick testing in Dev Tools it actually doesn't seem to. Also interesting to see how few pages outside Google are currently compatible with back cache when testing; not even Amazon passes. It is possible Chrome may incorporate back cache into the update function in the future as it continues to catch on. https://developer.chrome.com/docs/devtools/application/back-forward-cache/

christopherreay commented 1 year ago

ooh, ok, ok,

Ive been trracking this conversation from gmails, and Ive not actually read the whole thread. I was under the impression that Gioxx hadnt been in touch at all for some time. Which is clearly not the case. :)

So... some more.. coherent response with the thread...

  1. Ive analysed manivest version 3, and whilst there may need to be changes in the code to coincide with the new APIs, I mean the design of the application shouldnt have to change (I mean Ive not done a full formal analysis, but im pretty sure thats true)..

  2. Im not really up for having to deal with "not" have TMS to use... i teach people to use TMS as part of collaboration technique, lol, as well as it being fundamental to how I use my machine.

  3. There is mention of a "lot of suggestions" from users, as well as pieces of finished and not finished code implementing things that people want and need. Are these distributed through the issues in this repo? or are they collated somewhere?

  4. Sorry I couldnt get involved in July, I ended up ... staying with my mom (honest1) the whole month who had been through some stuff.

  5. I have a bunch of ideas for how I would better integrate TMS into my workflow, and Im quite motivated for that, and actually im qutie motivated to help to hold TMS together. I do a lot of closed source work, and I have done for... decades. I have contributed some work to some projects, ... .... and I feel like it would be nice to step up and help hold TMS with a bit of responsibility.

In conclusion, Im stupid busy for coding the next... month. But I have time to be here in the community, and try and lay out a plan as to what are the high level codebase goals, and feature goals in a roadmapish format.... Could we start a collaborative doc, or issue to flesh that out over the next month? And then we can look at feasibility and timeframe of doing it?

thanks all :)

gioxx commented 1 year ago

Ciao! :-)

3. There is mention of a "lot of suggestions" from users, as well as pieces of finished and not finished code implementing things that people want and need. Are these distributed through the issues in this repo? or are they collated somewhere?

Many of the suggestions can be found right in the Pull Requests, and some of the wishes have been fulfilled in previous PRs (so you find everything in the current code on GitHub).

There is a 7.6.1.3 version of TMS that was never released in the Chrome store because we wanted to first fix some of the mess (one of them being Google Chrome's tab grouping) to avoid inconveniencing users by breaking their groupings or continuously notifying them via the update tab, which has been replaced (in the new code here on GitHub) by a decidedly less intrusive system that uses the locked tabs to tell you that there is an update to be done.

In conclusion, Im stupid busy for coding the next... month. But I have time to be here in the community, and try and lay out a plan as to what are the high level codebase goals, and feature goals in a roadmapish format.... Could we start a collaborative doc, or issue to flesh that out over the next month? And then we can look at feasibility and timeframe of doing it?

Sure. We can think about opening a Trello, a Slack space, a Telegram group, or anything else within which (even asynchronously) we can think about following the various steps necessary to keep the extension alive (first of all) and then improve it in the course of time (all achievable only when TMS passes the Manifest V3 hurdle).

Crypto-Spartan commented 1 year ago

This has been one of the most helpful/collaborative threads I've been a part of on Github. Just wanna say thanks to all of you great people, especially @christopherreay & @ThisIsSammysAccount for the great info, and of course @gioxx for TMS in the first place.

trekshcool commented 1 year ago

I agree, I am glad to see people are still willing and want to let TMS live on in the future. Without it my machine would surely die.

ThisIsSammysAccount commented 1 year ago

Quick question regarding branches. I see a tag for 7.1.6.2 (the current version), and then it looks like there are additional changes spread across all 4 existing branches (master, 7.1.6.3, and the two 7.1.6.3 sub-branches). Can anyone summarize what is in each branch, why some things were subdivided into separate branches, and what represents the latest, most complete code to go forward with? I looked around the issues and discussions but I don't see anything specific, especially for the 7.1.6.3 sub branches. Thanks!

gioxx commented 12 months ago

Quick question regarding branches. I see a tag for 7.1.6.2 (the current version), and then it looks like there are additional changes spread across all 4 existing branches (master, 7.1.6.3, and the two 7.1.6.3 sub-branches). Can anyone summarize what is in each branch, why some things were subdivided into separate branches, and what represents the latest, most complete code to go forward with? I looked around the issues and discussions but I don't see anything specific, especially for the 7.1.6.3 sub branches. Thanks!

Basically you will find two branches (7.1.6.3_json_remote_message and 7.1.6.3_remove_session_manager) that introduce two new features in the code (one addition and one removal of function, the one related to the Session Manager that we wanted to delegate to an add-on such as Session Buddy, who has been doing this for a long time now, thus slimming down TMS) and that could ideally both end up within 7.1.6.3, which is, instead, the last change made to the code of 7.1.6.2 in 2022.

Ocel8 commented 12 months ago

Basically you will find two branches (7.1.6.3_json_remote_message and 7.1.6.3_remove_session_manager) that introduce two new features in the code (one addition and one removal of function, the one related to the Session Manager that we wanted to delegate to an add-on such as Session Buddy, who has been doing this for a long time now, thus slimming down TMS) and that could ideally both end up within 7.1.6.3, which is, instead, the last change made to the code of 7.1.6.2 in 2022.

Please don't remove the session manager, sometimes Session Buddy fails to save periodically, so if a big crash happens or TMS updates, you can lose a lot of tabs. TMS Session Manager saved my ass more than a couple of times.

christopherreay commented 12 months ago

Oh, here we are talking about the tab in Settings "Session Management"? That outputs and inputs lists of tabs? with windows separated by \n.

Yeah I mean I would want to keep that, I would want to extend it a little bit to be a bit more robust. My open tabs represent a fundamental part of my work life, and afaiac, TMS does a great job of being responsible for that. Losing my open tabs can sometimes cause me to lose important research or w/e.

Is there some reasonable argument for "needing session buddy"? I like the very simple fileformat that TMS save uses.

So currently TMS keeps old sessions in some kind of browser extension storage, yeah that has saved me ass on browser profile corruptions several times. Id want to look at making that more robust if possible.

~gioxx. Thanks for your responses vis my questions, Ill get back asap

Christopher Reay (they / them)

Be prepared to have your predictions come true

On Thu, 28 Sept 2023 at 20:21, Ocel8 @.***> wrote:

Basically you will find two branches (7.1.6.3_json_remote_message and 7.1.6.3_remove_session_manager) that introduce two new features in the code (one addition and one removal of function, the one related to the Session Manager that we wanted to delegate to an add-on such as Session Buddy, who has been doing this for a long time now, thus slimming down TMS) and that could ideally both end up within 7.1.6.3, which is, instead, the last change made to the code of 7.1.6.2 in 2022.

Please don't remove the session manager, sometimes Session Buddy fails to save periodically, so if a big crash happens or TMS updates, you can lose a lot of tabs. TMS Session Manager saved my ass more than a couple of times.

— Reply to this email directly, view it on GitHub https://github.com/gioxx/MarvellousSuspender/issues/197#issuecomment-1739879661, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAB2PPQYN5HQDSEVVBSAQ3LX4XE2DANCNFSM6AAAAAARHZESZ4 . You are receiving this because you were mentioned.Message ID: @.***>

gioxx commented 12 months ago

Let me put it this way: we had needed to make TMS as lean as possible so that it could do exclusively what it does best, is the main reason why it had been considered to create a separate branch in which to provide for possible removal of the Session Manager.

The idea of keeping it can be more than okay because it has saved me in the past as well and because I also think that "less is better", I mean that TMS saves open tabs in a very trivial and simple way, but we have to think about saving Tab Groups as well, which are used a lot by those who prefer Chrome as a browser.

This does not seem easy, which is why we wanted to delegate the task to those who have been doing it all along (such as Session Buddy).

Try to take a look at the various open Issues where Session Buddy is mentioned (for better or worse, because sometimes he steps on TMS's toes and vice versa): https://github.com/gioxx/MarvellousSuspender/issues?q=is%3Aissue+session+buddy

trekshcool commented 12 months ago

In addition, Suspender extensions tend to get sniped by chrome web store and when they get sniped all the suspended tabs disappear and become hard to recover. It was Session buddy which saved my 400 tabs when the old suspender plugin got nuked.

ossilator commented 12 months ago

i also think that externalizing session management is a more robust and maintainable approach ... in principle.

the problem with session buddy specifically is that periodic session saving was deliberately removed some time ago. according to https://sessionbuddy.com/dev-status/ it's supposed to come back in some form in v4, but that may be whenever. for the time being, only auto-saves at browser exit are available, which is of limited use if you restart the system every few weeks.

there is a bazillion of other session managers, though. odinochka (repo) may fit the bill. in a TGS issue @nfultz mentioned that he added explicit support for TGS-suspended tabs - doing the same for TMS would be trivial (if not already done).

ThisIsSammysAccount commented 12 months ago

Putting the session removal code in a separate branch was a wise idea for exactly this reason - we can continue to debate the topic without blocking other priorities like the manifest update. Good conversation on both sides. Personally, I am a long time user of Session Buddy and I have had no issues with it. It has always tracked and recovered all my tabs, and gives you the ability to manually save a session for a restart or to context switch. As such, I've never tried TMS' session tracking, but I like the idea that it sits quietly in the background as a backup if Session Buddy ever does fail me.

My perspective would be that we leave it included as long as the tab group feature does not render it useless. If people raise issues, simply state it is a secondary feature and we recommend exploring other extensions if needed.

I appreciate the clarity on the existing branches gioxx. Can you create a new branch for the manifest update, so we can work together on it here without having to take it to separate forks?

christopherreay commented 12 months ago

Seems like a great conversation.

We could make the fileformat a little more complex for tab groups. Personally Id like to run a service on my machine or on supabase or something... but thats not a conversation for here.

I had a look at the codebase of odinochka, it looks great. I think it makes sense to perhaps encourage users to understand the two extensions, and make some kind of explicit link between the two? Or at least we could discuss that. Also, fyi its already on manifest v3

A branch sounds good? If are are to start sorting the code out, and if there are a bunch of people who wanna contribute coding time?

Im... pff, Ive got absolutely no time at all to be a human, let alone this, for at least 2 more weeks probably more like 3.

amaze, tyty

nfultz commented 11 months ago

TGS et all is supported in odinochka via a regex, it should be a one or two line change to add that feature to any other extension.

I already wrote my own tab suspension extension, so I will not be active for this project. There doesn't seem like any benefit to link this project with mine.

mpql commented 11 months ago

I am generally very busy, but I adore this extension, and would be happy to help contribute to it some time! I don't have telegram, but is there some other kind of group for coordination somewhere?

gioxx commented 11 months ago

I am generally very busy, but I adore this extension, and would be happy to help contribute to it some time! I don't have telegram, but is there some other kind of group for coordination somewhere?

There is no coordination group for add-on survival activities yet, but we can also create one (on Slack? Or suggest alternatives that are equally convenient for you).

mpql commented 11 months ago

Slack, Discord, or Element would be my preference. Something modern in the IRC style with channels, etc.

Technetium1 commented 11 months ago

Slack would come with a 90-day history handicap unless someone wants to burn large amounts of money on it for every person that joins.

christopherreay commented 11 months ago

discord surely?

On Fri, 27 Oct 2023, 14:20 Technetium1, @.***> wrote:

Slack would come with a 90-day history https://slack.com/help/articles/115002422943-Usage-limits-for-free-workspaces handicap unless someone wants to burn large amounts of money https://slack.com/pricing on it for every person that joins.

— Reply to this email directly, view it on GitHub https://github.com/gioxx/MarvellousSuspender/issues/197#issuecomment-1782905897, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAB2PPU2YQORZLZWMYXGB43YBOYJBAVCNFSM6AAAAAARHZESZ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBSHEYDKOBZG4 . You are receiving this because you were mentioned.Message ID: @.***>

mpql commented 11 months ago

It's been a few days, so in the interest of getting things started, I've created a Discord. I won't have the time / energy to manage this project for the foreseeable future, so I'm happy to grant permissions as needed and to hand the reins over once things are settled. 😄

EDIT: Several folks joined, and some left, but no one seemed interested in really participating. Considering it's been over half a year, I've gone ahead and deleted the Discord. I think anyone wanting to base a community around this would need to also be willing to lead a new project. I don't think that is a commitment I can currently prioritize, and, unfortunately, I don't see anyone else meaningfully doing so. Whenever this version does finally break, I may fork this and migrate / update it, but my energy / spare time is generally rather low at present.

gioxx commented 3 months ago

June 2024: So Long, and Thanks for All the Fish 🇮🇹 https://go.gioxx.org/tms-thelastdance 🇺🇸 https://go.gioxx.org/tms-thelastdance#en-us

Technetium1 commented 3 months ago

Thank you for the update @gioxx. You've done more than your fair share to make browsing bearable. We are all very grateful for your time and effort. Thank you for not selling out to advertisers ❤️

Special thanks to @napolux, and all other friends who helped keep this alive for so long.

Policy can be set to allow Manifest V2 extensions until June 2025: https://gist.github.com/velzie/053ffedeaecea1a801a2769ab86ab376

trekshcool commented 3 months ago

This will wreck havoc on my browsing for sure. :( Screw you google and your bullshit manifest v3.

Hopefully someone will adopt the project and transition it, I am sure there will be a effort when everything breaks and users tabs vanish into thin air.

ZenulAbidin commented 1 month ago

I'm willing to help maintain a fork of this if that's necessary.

TGS user since 2021

trekshcool commented 1 month ago

I'm willing to help maintain a fork of this if that's necessary.

TGS user since 2021

Please do, although we can keep it running till June 2025 with the registry hack it would be far better if TGS was transitioned to manifest v3.