Pleroma-tan apologizing for all the changes
Displays cute art with some text when user logs in into updated FE.
Whether update has been seen or not determined by updateCounter
flag which is stored in new flagStorage
in server-side settings store (pleroma.settings_store
). If user account creation date is after 04-08-2022 update is not shown as flag is automatically set to 1.
"Never shown again" is likewise stored as a flag (for now). PleromaFE will automatically sync flags across sessions on login (when calling verify_credentials
i.e. on page load) and update them immediately if changes are pending.
Flags will always choose the bigger number (i.e. if session a has flag1: 1, flag2: 0 and session b has flag1: 0, flag2: 1 the merge operation will result in both flags set to 1), there is a reset mechanism built in - if reset
flag is set to positive number below 9000 it will reset ALL flags to 0. Special numbers exist - reset 1000 will trim flags to only known to the running FE, and 1001 will also reset them) so you can curl
a setting with reset: 1
to clear the flags. It's purely for development/debugging purposes, there's no way to reset flags in the UI.
There's also hotpatch migrations possibility left in code - if version is bigger than what's expected it will look for window._PLEROMA_HOTPATCH.reverseMigrations
function and call it with arguments 'serverSideStorage', { from: cache._version, to: VERSION }, cache
and return of that function will be set to local cache of settings store. This is made so that if we (or admins) for whatever reason need to downgrade pleromafe version and newer version is incompatible with previous one admins can just install a hot patch that defines that function that does reverse migration.
To reset the flags you need to curl the flag-cleaning flag-command:
curl 'https://domain.tld/api/v1/accounts/update_credentials' \
-X 'PATCH' \
-H 'Authorization: Bearer beerseekseeklest' \
--data-raw '{"pleroma_settings_store":{"pleroma-fe":{"_timestamp":123456,"_version":1,"flagStorage":{"updateCounter":0,"dontShowUpdateNotifs":0, "reset": 1}}}}' \
--compressed
header | desktop/tablet | mobile |
---|---|---|
peek | ||
full |
TODO
-
make sure that migration function runs with empty this
-
finalize and fix text, add relevant links to gitlab and changelog -
add credit for the art -
check how anon viewer works -
opt-out for admins -
fix animation of text