Allow clients to preserve full channel histories locally

(#975) Feature Under consideration media messaging

Problem

As described on the Attachment Expiry help page, attachments are deleted eventually. I appreciate that Fluxer isn't trying to be a persistent, infinitely growing file host, demanding ever-increasing amounts of money to store an endless stream of memes; that's important to the goal of remaining unburdened by corporate sponsors. At the same time, however, persistence is critical functionality for longstanding communities of all sizes. I and many others regularly search back through, and re-read/refer back to, old conversations from many years ago, because they are often relevant to conversations occurring today. If attachments disappear from those old conversations, important context will often be lost: PDFs of relevant studies will no longer be present, graphs and charts will vanish, etc. And also it's just fun to see old memes sometimes, like a time capsule.

Proposed solution

I would like to see two things added to Fluxer, two things that work in tandem:
  1. A community- and channel-level setting for administrators, that toggles whether individual clients are allowed to store full message histories in the channels/threads they have access to, including all attachments.
  2. Client-level settings for users, for handling:
    • Whether they wish to store histories locally at all
    • Which communities/channels they wish to do this for
    • How storage should be restricted, and to what extent (how much file space should be consumed, at most? how long into the past should stored histories stretch?)
Ideally, stored histories should be easily shareable and viewable offline. In this way, longstanding communities can seamlessly take responsibility for their own long-term data retention, and share full histories with newcomers if desired (so that they too can access the entirety of the community's past without missing potentially important information), without imposing any additional load on any instance of Fluxer (particularly the "official" one). This improvement would also make general preservation efforts trivial -- Discord has no good way of saving the contents of communities, and in order to accomplish this currently it is necessary to use a Discord bot in conjunction with something like the Discord Chat Exporter.

Notes (optional)

Adding some remarks from a close friend who's not had the time to reply directly: 1a. The app absolutely must support being able to specify an external source to pull the attachments from such as a different server, in addition to just the hard drive. 1b. In support of 1a, file validation is required, not optional. 2a. Being able to merge differences. If Backup A has months 1, 3, and 5, and Backup B has months 2, 4, and 6, the app must be able to combine them into Backup C that has 1-6 without redundancy. 2b. In support of 2a, and for easier sharing, the internal structure of the backup must be sorted on a per-month level -- directories for each year, then each month in that year, being necessary. I do not just want a blob of all the files in one place.

7 comments

Sign in with Fluxer to comment and vote.
Comment by @Slimurgical
RexSystem 1 vote originally by @Slimurgical on GitHub
I absolutely agree with these changes, it would be monumentally helpful for me to simply opt out of archiving specific servers while oping in to archive the cache for other servers as in necessary to my interests, needs, etc. I'd like to suggest the idea of an optional feature where high-level members of a given server (IE Owner(s), Admins and making it a role-permission) can opt to act as file-host for the server where the files are hosted on a Peer-to-Peer basis. Granted, it could easily be abused as a cyberattack vector which is why I think allowing users to possibly opt-out of the file sharing in this manner would be a decent idea, but also emphasizing to users to be extra careful. Users could declare certain areas of their drives to be used as a hosting space for these files with each file being given individually to each different host and preventing from cases where you have one file on every different host (unless it's an important file, hosters could have an option to mirror the file in question which would be perfect for archival purposes). Said hosters could also allocate only a certain amount of space towards the hosting of those files, but it would simply give the drive server autists more importance, and I'm sure some of them would love the opportunity. Granted, like I've said, it could be potentially dangerous, but in communities that lack bad actors I think it'd be a truly amazing feature and no matter what I want Fluxer to improve into a truly future-proof and versatile tool no matter how or what that ends up looking like.
Comment by @Sourpowerpete
RexSystem 1 vote originally by @Sourpowerpete on GitHub
I just wish to express support for PurifierUnit's suggestion. Having a way of saving our conversations that we sometimes do go back more than three years for, without having Fluxer become this over-centralized and domineering service that Discord is becoming, would be much appreciated.
Comment by @BraunianMotion
RexSystem 1 vote originally by @BraunianMotion on GitHub
Created an account for myself just hop in and say I am fully on board with this idea and wishing for it to be implemented. Long-time preservation of conversations can be very nifty.
Comment by @ImaginaryTraveller
RexSystem 1 vote originally by @ImaginaryTraveller on GitHub
we must preserve history for aliens in the future to see our memes
Comment by @X-batsoup
RexSystem 1 vote originally by @X-batsoup on GitHub
The ability to preserve and archive conservation is deeply important to me and I hope these changes will be implemented
Comment by @Termosflaska
RexSystem 1 vote originally by @Termosflaska on GitHub
I feel messages take a really long time to load recently, also failing 90% of the time, so this would be absolutely great maybe thats just me tho
Comment waiting for review
Hidden by a moderator1 reply
Comment by @PurifierUnit
RexSystem 1 vote originally by @PurifierUnit on GitHub OP
The ability to download media has an entirely different use case. Fluxer's main instance necessarily deletes attached media after a certain amount of time, which destroys the context of past conversations. Not all users will mind this, but there are many long-term friend groups and small communities that highly value past conversations and refer back to them regularly. Just downloading the media doesn't place the media in-line, where it was at the time. I do not anticipate the average user needing this, so I'd expect the settings to be disabled by default, and enabled by power users, archivists, server admins, important community contributors, anyone who wants to preserve material long-term. The point is to let us, the users, keep Fluxer's chatlogs in place with media included, without taxing Fluxer (the company) itself.