This is a changes and improvements history for the current and past versions.
Nov 26, 2020
Happy holidays everyone!
This new release of Aether P2P brings several new features, compatibility with Mac OS Big Sur, availability of different packaging formats on Linux, and many other small fixes.
Improved control over loading web content
You can now control which websites are allowed to auto-load content for inline viewing of linked images and videos. This option also manages the previews of many other non-media websites. This feature is an improvement over an existing one that was a fixed whitelist of several image hosting websites.
You can also fully disable remote content loading as well as fully enable it for all websites. (Fully enabling it for all websites is not recommended.)
Better inline viewing and previews for everything, not just images or videos
Aether gained the ability to query the websites on links (only to websites you trust, controlled by the feature above). With that new ability, it now attempts to generate previews for all linked websites, not just images or videos. For example, posting a link to The New York Times should by default generate a preview of the article in an image format, assuming NYT is in your allow list for remote connections.
You no longer have to link to the exact image when posting an image or video website, such as Imgur. Aether will now attempt to parse the link and extract the image from the link for inline viewing within the app.
Improved links visibility
- Hovering over links anywhere within the app now shows you the exact location
The app is now much smaller, in some cases dropping to less than 1⁄3 the size. For example, our Windows installer size drops from 196.8 Mb to 67.7 Mb, with similar level of improvements on Mac OS and Linux. This was thanks to the improvements in our build pipeline, and to our dependencies finally starting to wake up to the idea that a library that depends on hundreds of packages for trivial things is not a good idea. As a result, Aether now has a much smaller indirect dependency footprint. Our own direct dependencies did not change — we have always managed those very tightly and kept them to a minimum, but we were not able to do anything for indirect dependencies that we did not control. Now that the ecosystem is moving in the right direction, finally, we are starting to see the benefits.
All our dependencies are updated to their current versions to pull in the performance improvements. This should not be noticeable, except perhaps in the case of Snap package, where Snap developers have made significant improvements to the initial decompression speed of Snap-package apps.
- Aether now supports Mac OS Big Sur!
- The Aether installer for Windows is no longer fully automatic. It now asks the user to confirm twice, once by running the installer, and once by clicking start install.
Due to the improvements in the build pipeline, we now have many more packages for Aether than ever before. Aether is now built for and downloadable in these packaging formats:
- .deb (Debian, Ubuntu, Ubuntu-like distros)
- .rpm (RHEL, Fedora, RHEL-like distros)
- Snap (Universal Linux)
- AppImage (Universal Linux)
- .tar.gz (Unpacked, for any Linux distro, or if you like to pack it yourself for a distribution you contribute to)
Mind that all of the above except Snap are brand new, and can potentially have issues. If you encounter them, please report back so we can fix it.
As of this release, the AppImage build does not work. It’s still being uploaded to let the community help in figuring out why it does not.
Aether is now officially available on the official Snap repositories, installable via ‘snap install aetherp2p’ without needing a separate download or flags. This should also automate updates on Linux. Once installed through this method, whenever you update your other Snaps, it will also update Aether, just like any other package. (Heads up: official availability might take a few days after the release of this version.)
(Mac OS) A bug that was introduced by Big Sur where the Mac tray icon would look greyed out instead of white or black is now fixed by moving to the newer native Cocoa API that gives the correct dark-mode-aware behaviour.
(All) A bug where putting a native Aether link (a link starts with ‘aether://‘) into Markdown link syntax caused that link to fail to open is now fixed across all platforms.
(Linux) Aether links should now work better on Linux. Feedback needed from Linux users — reach out if you’re still having issues. This is unfortunately very dependent on packaging type and the desktop environment you’re running, so the more data, the better.
- Small design improvements to the logo and tray icons.
- Tray icons for all OSes are updated to better align with the pixel grid at small sizes.
Sept 19, 2019
This is a major update that delivers one of the core features that has been in the works for a while: mod transparency. This feature allows mod actions to be visible to all users. It also adds the ability to delete your posts for the first time.
Moderators’ actions are now fully visible. Any mod action that deletes content from a community will be listed at the mod actions pane of the community. Mods can no longer invisibly delete content. This change is retroactive. If this is new to you, please see the moderation documentation and the blog for more info.
You can now delete your posts and thread bodies. The body will be replaced with a [deleted] tag in that case, and the app will try to remove your content from the network.
New content indicator lights: Whenever there’s new content in a community, we now show a dot on the communities list.
Upgraded to Electron 5, and to to the latest version of our dependencies. This should ideally make things slightly snappier and solve an issue where the screen would flash briefly after a sleep/wake cycle on Mac OS.
The spell checker is now async. If you have an older computer, typing should feel slightly faster.
Moved some tasks into async modules in thread creation. Thread creation should feel snappier.
In the Preferences, the box that makes Aether be able to start at boot is now hidden behind a button to prevent the unexpected OS-level permissions box popping up unexpectedly. Now, we tell the user that the permissions box is coming.
Pressing “Cancel” in post reply composer now retains drafts.
Improvements to notifications management. We now show ‘Read all’ even if you have fewer than 25 notifications present.
Disables the spinners on ballots (upvotes and downvotes). They’re fast enough that we don’t want to imply that the user has to wait for them.
Copywriting updates to make things a little more succinct.
Design fixes for the mod reports pane
Prevent overflow of the username in the profile box in the case of a very long name.
Improved breadcrumb handling in the case of missing items.
The fin puck is now hidden when there are no notifications because we have a no-content state for it.
In the case a thread is missing, we now show a proper 404 and not fall into an undefined state. Before this, a 404 state would only be invoked by a missing community, not a missing thread.
Fixes an issue where the boards’ list that is shown on a user profile was showing all boards available, not just boards created by that user.
Fixes an issue where the no-content stage of Reports was not being triggered appropriately.
Settings-block component can now use externally provided state checker function so that the user of the settings-block can control how the state is checked, and when.
Our frontend compiler now uses explicit timestamps for compilation ranges instead of implicitly relying on the fact that the frontend and the backend are running on the same computer, thus sharing a clock. This is a precursor to having the backend be able to run remotely on a server.
We now also count the time we use to index for search as a part of the graph compiler time. This is important because it gives us a more accurate estimate of how long the system was busy.
Jun 19, 2019
This update brings two major features: the much, much faster graph compiler v2, and the ‘new’ feed. The minor features that have been in development has been pushed to the next release so that we can isolate these changes in this one, and verify that they work as intended.
New graph compiler. You can find more information about this here on the blog. But in short, this reduces the speed of frontend refreshes up to 30x. However, since this is a large change, we want to thoroughly test this. If you see anything weird with things not updating where they should, please let us know in the meta forum
The ‘new’ feed. This feed is a raw, time-ordered timeline of all threads and posts. Since the network is not that big yet, this is a fun one to keep an eye on, since it can tell you basically everything that has happened since you were last around. This has been a fairly common feature request, so I’m happy to have it be shipping.
Some minor design fixes
Apr 24, 2019
This update fixes several UI bugs, adds hashtag support and provides some quality-of-life improvements. It also updates some dependencies and lays the groundwork for future functionality such as @username detection and mentions.
Adds new markdown renderer. This is what allows us to start building features like detection of certain pieces of text in user posted content.
Hashtag detection. Now, when you post a #hashtag, such as #test, it becomes a search query that provides a live feed of that hashtag’s use.
Aether:// link detection in body text. When you link to another part of the app within the app, the links are now detected, just like regular http:// links. This makes linking discussions easier.
Syntax highlighting in 185 programming languages. This adds syntax definitions for most major programming languages in the world to make Aether more welcoming for programming discussions.
Better Fingerprint / linking UI. Link copy UI now provides feedback that a link is copied, and provides an explainer on what’s happening. In the case the user tries to copy the link manually with copy and paste, it now makes sure that the full link is copied without missing digits.
BUG FIX Aether links on the thread headers are now properly linked without needing a roundtrip to the browser. This was an issue that sometimes re-routed users to their browser when an aether:// link was clicked.
Feb 22, 2019
This is the update that was built over the last few days after reaching 500 concurrent users in the network. This is an entirely backend-based, network-stability oriented update, with few user-facing changes — those will come later after getting these new backend improvements to be stable.
This update should generally improve connectivity and speed of delivery. It’s the first in a series of updates aimed at the same goal.
You might see a drop or slowdown in your inbound or outbound connection counts. This doesn’t mean the connection frequency has slowed.
This is because the app now only counts and shows you connections that it can confirm as successful. There are connections (e.g. inbound syncs happening with versions of the app older than this one) that succeed and deliver full data, but won’t ever be confirmed, because sending confirmations is a feature that is landing with this version.
In other words, it is possible to have your inbounds at zero, marked yellow, but still correctly functioning, because all your peers might be older versions of Aether.
As more of the network moves to this version and beyond, this should become less common.
Making network scans a process that runs every 10 minutes, and not something that can be called in from the scout (outreach) process.
Streamline scout to the point that it will repeatedly try to connect to other nodes, with the knowledge that scout sync attempts no longer trigger network scans directly.
Make reverse opens formalised as the reverse scout, in the same form of “try again until succeeds” logic as the normal scout, but with a lower number of maximum attempts.
Create a third type of lease called “ping”, specifically for network scan requests marked as such.
Create a new /ping endpoint bucket that other nodes can call to ping you, and this no longer occupies slots in the sync leases.
Providing some data about the state of the reverse connections back to the requesting node, so the requester can know whether it succeeded or failed, and can act accordingly.
Have a reverse dispatcher exclusions so that reverse opens will operate on their own exclusions list.
Handles a case in the client where we might have to raise a notification about a response whose user key has not arrived yet.
Fixes a bug where badlist refresh cycle was accidentally using the same name as the cache generation cycle.
We now only show the user the successful syncs in the status page of the user interface. That way, failed syncs won’t increment the number and give the wrong impression.
Feb 19, 2019
This release is the first release that comes with Windows code signing with Authenticode. This should help with antivirus errors if you’ve been experiencing any. This also reverts a change that landed in dev.9 that was meant to improve file path compatibility with Windows, however, it appears that it has caused connectivity issues with some users. This fix is reverted for the time being out of abundance of caution.
Windows binaries are now code-signed. This should make the app easier to install on Windows, eventually.
Potential connectivity issue in some computers that came with a change in dev.9 is reverted.
Search is now moved to the sidebar from the header. It should be more visible now.
A bug in the user info pane where the unique username hover status of the username would end up stale in showing its canonicality status is now fixed.
Misc. design fixes for consistency.
Feb 13, 2019
This is a minor update that fixes some design bugs coming from the search feature of the prior release.
Feb 11, 2019
This release comes with a major feature, search, and a few minor improvements and bug fixes.
Search allows you to look for communities, content and people that you are looking for. This was a major user request, so I’m very happy to announce its availability.
- For communities, it searches in the community name and description
- For content, it searches in the titles and body (for threads and posts)
For people, it searches the username and info.
For all of these, it also searches for the fingerprint of each
So if someone gives you a fingerprint of a community, piece of content or user, you can find it that way, as well.
(This is the first release of this feature, bugs are to be expected. Please report bugs if you find any at b/meta, or at meta.getaether.net. Thank you!)
Heads up: This will mangle your notification order for one time — since it has to regenerate the frontend database to allow for it to be indexed for the first time. This is a one-time thing. It will also add a search index file, which is fairly sizeable - 200-300mb is normal. If the size becomes a problem in the future, we’ll add a ‘disable search’ switch.)
Adds a spell checker. Now the misspelled text will underline itself in red. This also comes with an automatic language detector, so it should work in most languages. Mind that this is very minimalistic, it does not offer to correct the spelling for you. If that becomes an issue, we’ll add it later.
Made the lightbox mode for images and videos a little darker. Also, now the lightbox can be closed by pressing esc as well.
Improved the webpack configuration of the app, so that the bundle size is smaller, and the app tries to load fewer CSS files per page. This should make the app feel generally snappier.
Clicking the name ‘aether’ on all versions now makes the app go to ‘Home’ view. This is to aid navigation while the sidebar is collapsed, especially on narrower screen sizes.
The versions for Electron and other software dependencies are updated.
Improves the fix to a bug where in Windows, in the case where the app is prevented from writing a cache index, it would generate a large amount of caches. This bug fix does two things, in one, it closes a few more of the possible places where this write denial can happen, and in the other, it prevents multiple caches from being generated in the case the write denial happens. Aether will receive an application signature from Microsoft shortly, whenever that happens, Windows (and antiviruses) should start to trust Aether enough to not prevent it working — that will be the ultimate fix.
Fixes a bug where the text composer would accept text fields with too short entries, even after warning the user that the text is too short. Now it correctly declines these fields.
Dec 27, 2018
Happy holidays everyone!
In this last release of the year, there’s a bunch of goodies, feature requests from the community, and a bunch of bugfixes.
There are quite a few new keyboard shortcuts implemented, and they’re now documented in ‘Shortcuts’ in Preferences.
Control over images and videos loading
You can now disable or enable the images and videos being auto loaded into the app. The app always had a whitelist of services to load from (Imgur, Giphy, Gfycat), so it never loaded everything. Now, you can completely disable this image and video autoloading feature to get more privacy, or simply, just a little more of a professional look.
Bug fixes & miscellania
In the Windows version, there was a bug that sometimes created a large number of cache files due to the app not being able to properly generate cache indexes, which made it think that it had not generated caches before. This is now fixed.
The versions of Electron, Vue, and a whole host of dependencies are now updated to the most recent versions. This should make everything slightly faster.
When two posts are the same in rankings, now the more recent post will surface to the top.
If the UI is too small to contain some UI text (i.e. Preferences becomes Pref…), the full text of the UI item is now visible as hover.
Design fixes so that the code blocks will look more attractive, and they won’t break the composer. This makes is much easier to post source code intact.
The app now retains the window size from the last run.
Some wonkiness in the size of the status cards is now fixed.
A bug where clicking the notification on Mac did not result in the app surfacing is now fixed.
Nov 17, 2018
This is the first public, announced release of Aether. Though this distinction is somewhat lost because Aether’s ‘soft’ launch did not end up very ‘soft’, with 8000+ people. Hacker News discussion
You can get access to the rough roadmap of Aether as I build here: Aether Rough Roadmap. This also allows you to put your suggestions in.
This release, and likely future releases will be made available to supporters before the public. This is both useful in testing for regressions, and it’s also just a nice thing to do for backers, as a thank-you for their continued support.
Deep links in user profile
In user profiles, posts and threads are now deep linked to where they come from, so you can go to a user’s profile, and navigate to the threads that s/he responded in.
Sort by subscriber count
The communities are now sorted by user count in both the communities list, and on the subscriptions list on the sidebar.
Visible communities and dates
On Popular and Home views, the community and the posting date is now visible on each thread.
When you want to check something else for a sec while you’re writing something, your post is now automatically saved as a draft. Whenever you come back, your draft will be there. Drafts persist while the app is open in the tray / menubar. If you want to clear all the drafts, just restart the app.
Accommodation for much smaller screens
Design improvements in the Preferences, Status, Onboarding process and in post, thread and community views to ensure that Aether is functional in much smaller screens.
Vote states now visible
When a vote is locked (you change your vote once), it is now visible with a lock icon. Why can I change my vote once?
Notifications now show the name of the person who responded to you.
Notifications icon will now stay lit up so long as there are notifications to read. (It used to go into a no-notification state when it was clicked, even when there were notifications present. This caused ‘forgotten’ notifications in some cases.)
Other improvements in brief
You can now see who created every community in the community info.
The app now retains the window size from the last run.
Settings menu and dropdown updates to make things a little more clear.
Breadcrumbs and tabs now show their full title if hovered. This is good especially on smaller screens where they might now have the space for the full text.
Thread body previews are now clamped to load faster.
The code blocks in Markdown fields now create a ‘code box’ block instead of just singular lines of code text.
Add a console toggle, so that if something goes wrong in the UI, the users can open the console, and send the error message to help with bug fixes.
Frontend status now has a ‘content’ field that shows when the content was last updated.
Minter in the status box on the sidebar is replaces with the last refresh.
Added a @ sign to the beginning of the username selection field, so that users won’t accidentally add the @ themselves to end up with @@username fields.
A potential fix is implemented for some people not seeing Windows native notifications.
In rare circumstances, if you clicked vote twice on the same direction, the second vote would also mint an update that was superfluous, and discarded.
When you edited a post, under certain rare circumstances, it showed like it had two copies on the same thread.
If you had a unique username, the minting-in-progress state of a post incorrectly showed your username as non-unique while the minting process was ongoing.
Having a very long (60.000+ characters long) body text on a thread caused performance degradation in certain views, because it was loaded into the DOM in entirety when all that was needed was the first few lines. This is now fixed by only using the first few hundred characters to generate the preview.
In onboarding, with very small computer screens, the ‘next’ buttons were left below the fold, preventing people from moving forward.
Popular and Home views were not correctly applying the moddelete commands when they were generating themselves.
Implemented an incremental, exponentially sized caches and cache consolidation, so that the bootstrap node can be fully static, yet still current.
Reduced the neighbourhood size defaults for new users to reduce network chatter.
Reverse opens now use a second, separate port, which is your Aether port minus one. This improves the success rate of reverse opens and it prevents the blocking of TCP.Accept(), which is single-threaded.
Fixed a socket leak in the bootstrap server related to the issue above, so that the servers are no longer dying every few hours due to socket exhaustion.
Added a FAQ entry on why votes can change direction once. See it here.
Put the Mim protocol documentation online. See it here.
Added a troubleshooting entry on how to delete the user profile, which is useful in the case a user needs to start from scratch. See it here.
Changelogs are now publicly available at the website. Changelog
Nov 2, 2018
This is the first public release of Aether.
Fixed a bug where the cache generation timestamp was set on attempts, and not successful cache generations. This caused some deliverability issues, since this timestamp controlled the oldest entity that can be provided in a POST response.
Fixed the bug where the user counts on boards were incorrect for new users.
Made logs quieter. If you want to see logs, you can set the logginglevel to 1 or 2, and start the app from the command line.
First-ever cache generation will now happen after bootstrap. This should ease the load on new users coming into the network.
Preferences and status locations are now centered in the app.
Miscellaneous stability fixes.
Oct 27, 2018
Auto update is implemented. This is the first release auto update should work on Windows and Mac.
The build kill switch is removed. This is the first release that can be used without a time restriction.
There are now ‘copy link’ support on communities, threads, posts, and users. Those links will produce aether:// links and can be posted online.
Other minor changes.
This release is not public. Future developer previews will be, but this one is too likely to break.
2.0.0.dev.2 / 2.0.0.dev.3
- Too many changes to count.
September 29, 2018
Private developer preview release.
Developer preview releases are not intended for normal, non-technical users.
This is a testing platform. Anything can go away, anything can disappear, anything can crash, anything can break. If you write your next great novel in Aether, remember to save a copy.
This release is not public. Future developer previews will be, but this one is too likely to break. `