Releases: nolanlawson/pinafore
v1.4.0
v1.4.0
New features
There is a new dark theme called "Mastodon" designed to look like the Mastodon frontend. Thanks @jeroenpraat!
- feat: Plus theme with Mastodon standard web-app colors (called mastodon)
#1090
Bug fixes
Pinafore now properly supports Pleroma "snowflake" IDs. Thanks @uiri!
- test: better idb migration test
#1080
- fix: fix pleroma snowflake IDs for real
#1084
- fix: Fix reversed base62 encoding
#1083
- test: add IndexedDB tests
#1075
- fix: use correct sorting for snowflake IDs
#1074
Pinafore has a new version of emoji-mart (the emoji picker), with better accessibility and some bugfixes.
- chore: update to emoji-mart 2.10.0
#1097
- chore: update emoji-mart again for more testing
#1095
- chore: update to latest emoji-mart
#1091
- chore: Update emoji-regex to the latest version 🚀
#1079
Pinafore now has a privacy policy that explicitly states that it does not collect any personal information.
- fix: add a privacy policy
#1078
Performance improvements
The Docker build is now much smaller (1G -> 189M). Thanks @stanclai!
- perf: Reduce docker image
#1064
- Clean yarn cache during docker image build phase
#1073
- perf: reduce install size using yarn --production
#1066
Pinafore itself is a bit smaller (911.66kB -> 878.28kB total JS size) and faster to build (by ~15s) due to using Preact instead of Inferno and some other fixes:
v1.3.1
v1.3.0
v1.3.0
Features
Report a toot or account
You can now report accounts and toots. Press "…" on either a toot or an account, choose "Report," then fill out the form to report any number of recent toots from that account. You can also forward the report to remote moderators.
- feat: report an account or toots
#1016
Mute notifications
When muting an account, you can now choose whether or not to mute notifications (which essentially acts as an invisible block).
- feat: allow muting notifications when muting
#1013
Moved accounts
When an account has moved, you'll now see a notice on their profile saying that the account is moved.
- feat: add "accout has moved" banner
#1032
Bugfixes
Static Node server
To better match how the pinafore.social production server actually runs, node server.js
is now a static Express server with some minor routing logic. This should result in fewer inconsistencies between self-hosting and pinafore.social.
- fix: use static server for
node server.js
#1041
a11y: keyboard shortcuts correctly set focus
Using the j/k or ↓/↑ keys to move up and down the timeline will now correctly set the focus on the highlighted toot. The focus style no longer changes the background, but instead adds a standard focus outline.
- fix: j/k shortcuts correctly set active element
#1028
keyboard shortcuts for pinned toots work
You can now use j/k or ↓/↑ to cycle through pinned toots as well as regular toots.
- fix: fix keyboard shortcuts for pinned toots
#1033
Video posters work now
"Poster" placeholder images for <video>
s were broken in the media dialog, but they're fixed now.
Fixed a bug where pinned toots wouldn't appear sometimes
- fix: fix pinned toots not in IDB
#1040
v.1.2.0
v1.2.0
Features
Share a toot (Chrome/Android only, Safari/iOS soon)
Using the Web Share API, you can now tap the "…" on a toot and choose "share toot" to share to other apps.
Currently this is just for Chrome/Android, but Safari on iOS support is coming in iOS 12.1.
- feat: implement Web Share API
#991
Bugfixes and performance improvements
Zeit Now v2
The main https://pinafore.social instance is now hosted on Zeit Now v2 using a static server. This should mean a faster and more reliable server.
- chore: upgrade to zeit 2
#998
A note on self-hosting
Self-hosters do not have to change anything; the self-hosted version of Pinafore is still a Node server which you can run using node server.js
or the Docker container.
This does mean, though, that self-hosted Pinafore is slightly different from production Pinafore. But in practice, the differences should be extremely minor.
You can also run the static version of Pinafore yourself using the export command, but it's generally not recommended because you have to manage CSP and dynamic routes yourself. (For a flavor of what you would need to do, see our Zeit now.json file.)
Also, keep in mind that the self-hosted model is still a first-class citizen. In fact, all our integration tests run against it, so it's more likely to be correct than the Zeit version.
a11y and design improvements
The navbar now has an active state, and the theme picker allows you to tap the color square itself to change the theme. The design of buttons was also tweaked to better match the navbar.
- fix: improve a11y, move preview box inside label
#997
- fix: improve active state of navbar
#996
- fix: tweak primary button border color
#987
- fix: fix style of compose box in reply
#983
cache improvements
We got rid of CSP nonces and are using checksums instead. This allows us to increase the cache max-age on resources. This change applies to both the production version and the self-hosted version.
v1.1.0
v1.1.0
New features
Web share target
You can now share from other apps to Pinafore when it's installed as a homescreen app. Currently this only works in Chrome for Android.
- feat: implement web share target
#980
Bugfixes
Reduced server-side memory usage
Typical server-side memory usage of Pinafore has been reduced from ~300MB to ~48MB.
There are new instructions in the README for admins who want to get the lightest possible footprint for Pinafore. The TL;DR is to run node server.js
instead of either yarn start
or npm start
.
The bulk of the perf improvement will come whether or not you change this, though. Those who use Docker will also get all the benefits automatically.
- perf: reduce server-side memory usage of Pinafore
#973
Run Pinafore on a custom port
Previously, if you were trying to get Pinafore to run on a port other than 4002, it probably didn't work. Now it does; you can set it using e.g. PORT=1337 node server.js
.
- fix: fix port not defaulting to 4002, add server.js
#976
Automatic dark mode
The dark theme is now the default if your OS is in dark mode. Currently this only works in Safari Technology Preview in macOS Mojave, but it's coming soon to Chrome and Firefox as well.
- fix: set dark theme based on prefers-color-scheme
#966
a11y: fix color contrast
The contrast has been increased for all the primary buttons ("TOOT!" etc.). This now gets us a 100% accessibility score from Lighthouse.
The color contrast on the settings menu in dark mode has also been increased.
- fix: fix default contrast ratio for button
#978
- fix: fix legibility of settings text in dark themes
#965
Other improvements
v1.0.1
v1.0.1
This is a quick bugfix release to fix right-clicking to download an image in the media carousel.
v1.0.0
v1.0.0
Breaking changes
This release switches Pinafore from npm to yarn. Those who self-host Pinafore should read BREAKING_CHANGES.md to see how to update.
New features
Media carousel
Pinafore has a new media carousel! I wrote a blog post about how it works.
It also has some awesome keyboard shortcuts (← and → to navigate left and right) thanks to @charlag! (#930)
Quicker instance switching
There are now fewer taps involved in switching instances, thanks to some great work by @blackle! (#945)
You can now tap the "star" icon under Settings → Instances, rather than having to go to the Instance page, scroll all the way to the bottom, and tap "switch to this instance."
Making instance switching even easier is still on the backlog (#11), but this helps out immensely!
Bugfixes
v0.18.0
v0.18.0 (2019-01-27)
Implemented enhancements:
- Keyboard shortcuts "m" and "p" on notification should use favoriter/boster, not author #905
- Add keyboard shortcuts for composing a new toot and scrolling to the top #895
Fixed bugs:
- Copy link to toot button does not work in iOS Safari #912
- Alt key should be ignored by keyboard shortcuts #896
- Can't interact with notifications (reply, open) using keyboard shortcuts #894
Closed issues:
- Add direct messages timeline #897
Merged pull requests:
- Update rollup-plugin-terser #925 (nolanlawson)
- Update rollup #924 (nolanlawson)
- Update inferno-compat #923 (nolanlawson)
- Update esm #922 (nolanlawson)
- fix: tweak underlining of links #920 (nolanlawson)
- feat: add option to underline links in toot text #919 (nolanlawson)
- fix: fix "copy link" on iOS #918 (nolanlawson)
- chore: move inline-script to src #917 (nolanlawson)
- fix: increase custom scrollbar width #914 (nolanlawson)
- chore: fix watchers in dev mode #913 (nolanlawson)
- Follow-up for pull request #870 #910 (szermatt)
- chore: test in mastodon v2.7.0 #909 (nolanlawson)
- fix: fix notification m/p keyboard shortcuts #907 (nolanlawson)
- docs: remove mention of keyboard shortcuts #906 (nolanlawson)
- feat: add more keyboard shortcuts #904 (nolanlawson)
- fix: fix keyboard shortcuts in notifications #903 (nolanlawson)
- fix: fix Alt key in keyboard shortcuts #902 (nolanlawson)
- chore: remove pify dependency, use util.promisify #901 (nolanlawson)
- chore: refactor src files to src/ directory #900 (nolanlawson)
- chore: update browserslist/esm/now #899 (nolanlawson)
v0.17.0
v0.17.0
Features
- feat: keyboard shortcuts (hotkeys) #870, #886, #887, #888, #889 (thanks @szermatt!)
- feat: wrap long posts with spoilers #873 (thanks @uiri!)
- feat: Add labels to theme groups #867 (thanks @nspenner!)
- feat: date title shows absolute date #890
Bugfixes and perf improvements
- fix: Make external links open in new tab in Pleroma (#892, #893) (thanks @uiri!)
- fix: add better browser notification badges
#857
- perf: use lodash-lite for some functions
#853
- fix: fix unnecessary request for theme-undefined.css
#852
- perf: load Toast asynchronously
#851
Full changelog: v0.16.0...v0.17.0