Skip to content

Releases: nolanlawson/pinafore

v1.4.0

16 Mar 16:13
Compare
Choose a tag to compare

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:

  • perf: remove stats.json from webpack #1098
  • perf: switch from inferno to preact, use emoji-mart prerelease #1094
  • perf: build url regex in advance #1069
  • perf: reduce size of ShortcutHelpInfo.html #1068
  • perf: use a separate icons.svg file #1067

Full changelog

v1.3.1

02 Mar 21:27
Compare
Choose a tag to compare

v1.3.1

  • fix: fix aria-posinset should be 1-based #1055
  • fix: fix closing of account options dialog #1060
  • fix: fix undefined error in media dialog scroll #1048

Full changelog

v1.3.0

24 Feb 19:24
Compare
Choose a tag to compare

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.

  • fix: fix /undefined request for gifv #1044
  • fix: fix /undefined request for video poster #1043

Fixed a bug where pinned toots wouldn't appear sometimes

  • fix: fix pinned toots not in IDB #1040

Full changelog

v.1.2.0

17 Feb 00:05
Compare
Choose a tag to compare

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.

  • fix: increase cache, use csp checksums over nonce #988
  • fix: fix style of compose box in reply #983

Full changelog

v1.1.0

14 Feb 05:22
Compare
Choose a tag to compare

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

  • fix: fix slim size compose dialog #979
  • perf: prefetch all internal links #981
  • perf: remove duplicate custom props from theme CSS #969
  • fix: don't show theme picker if not logged in #967

Full changelog

v1.0.1

10 Feb 21:34
Compare
Choose a tag to compare

v1.0.1

This is a quick bugfix release to fix right-clicking to download an image in the media carousel.

  • fix: allow right-click to save image #962
  • perf: use keyed each for media #963

Full changelog

v1.0.0

10 Feb 19:48
Compare
Choose a tag to compare

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

  • fix: disable smooth scroll for users who prefer reduced motion #958
  • fix: fix hand cursor on non-tappable status #955
  • fix: fix items appearing over nav #949
  • fix: do not add duplicates to threads #944

Full changelog

v0.18.0

27 Jan 20:44
Compare
Choose a tag to compare

v0.18.0 (2019-01-27)

Full Changelog

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:

v0.17.0

14 Jan 01:16
Compare
Choose a tag to compare

v0.17.0

Features

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

v0.16.0

19 Dec 17:24
Compare
Choose a tag to compare

Features

  • feat: add full emoji picker using emoji-mart #836

Bugfixes

  • Fix Pleroma compability issue in media modal #829 (thank you @sirikon!)
  • fix: preserve newlines correctly in delete-and-redraft #845

Other

  • chore: upgrade travis/now to node v10 #834

Full changelog: v0.15.0...v0.16.0