Add pleroma-fe to list of available frontends (in admin-fe) #944

Open
HJ wants to merge 4 commits from HJ/akkoma:pleroma-admin-support into develop
First-time contributor

As of 168430fff2 PleromaFE supports Akkoma backend

As of https://git.pleroma.social/pleroma/pleroma-fe/-/commit/168430fff292ec5dc2bb960a4e1d8dbc03dbb262 PleromaFE supports Akkoma backend
HJ added 2 commits 2025-06-24 14:35:28 +00:00
change ref to develop
Some checks are pending
ci/woodpecker/pr/build-amd64 Pipeline is pending approval
ci/woodpecker/pr/build-arm64 Pipeline is pending approval
ci/woodpecker/pr/docs Pipeline is pending approval
ci/woodpecker/pr/lint Pipeline is pending approval
ci/woodpecker/pr/test/1 Pipeline is pending approval
ci/woodpecker/pr/test/2 Pipeline is pending approval
cb56cf079e
Owner

I believe as is this would end up automatically migrating all existing akkoma-fe users over to pleroma’s pleroma-fe; this shouldn’t happen. Ideally our frontend would have been renamed at the time of forking, but to be fair probably nobody expected pleroma’s main FE would gain explicit Akkoma compat an so initially the name stayed pleroma-fe and when it was later renamed the internal name still remained unchanged for compat reasons.
So, even though pleroma-fe is the most natural name for this, I’m afraid it will need to use some other name like pleroma-pleroma-fe, pleroma-fe-classic or similar.

Additionally and more generally, currently all frontends with built-in references are built and shipped by us, ensuring the it’s the same trust zone as the backend. I’ll leave it to floati to decide whether it’s acceptable to add a ref pointing to external sources. (If it’s acceptable, I expected other frontends like Mangane will also follow up with similar patches)

I believe as is this would end up automatically migrating all existing akkoma-fe users over to pleroma’s pleroma-fe; this shouldn’t happen. Ideally our frontend would have been renamed at the time of forking, but to be fair probably nobody expected pleroma’s main FE would gain explicit Akkoma compat an so initially the name stayed `pleroma-fe` and when it was later renamed the internal name still remained unchanged for compat reasons. So, even though `pleroma-fe` is the most natural name for this, I’m afraid it will need to use some other name like `pleroma-pleroma-fe`, `pleroma-fe-classic` or similar. Additionally and more generally, currently all frontends with built-in references are built and shipped by us, ensuring the it’s the same trust zone as the backend. I’ll leave it to floati to decide whether it’s acceptable to add a ref pointing to external sources. *(If it’s acceptable, I expected other frontends like Mangane will also follow up with similar patches)*
Author
First-time contributor

If akkoma bundles its own FE in same way pleroma does it shouldn't migrate anyone. It would migrate if admin used AdminFE and set used frontend to pleroma-fe it will only migrate if admin updates it without changing default frontend.

If akkoma bundles its own FE in same way pleroma does it shouldn't migrate anyone. It would migrate if admin used AdminFE and set used frontend to `pleroma-fe` it will only migrate if admin updates it without changing default frontend.
Author
First-time contributor

I think pointing to remote urls are better so that admins would get instant updates instead of waiting on you to pull recent changes, especially given that right now only develop branch is supported (akkoma support is not in master yet)

I think pointing to remote urls are better so that admins would get instant updates instead of waiting on you to pull recent changes, especially given that right now only `develop` branch is supported (akkoma support is not in `master` yet)

If akkoma bundles its own FE in same way pleroma

we do not - akkoma ships without a frontend by default, the two are entirely separate. akk-fe is installed and updated via mix commands

>If akkoma bundles its own FE in same way pleroma we do not - akkoma ships without a frontend by default, the two are entirely separate. akk-fe is installed and updated via mix commands
Owner

To add to the above: "akkoma-fe" is installed under the name and in the directory "pleroma-fe" (since that used to be its name). All mix commands (and admin-fe) refer to it as pleroma-fe.

Your patch reassigns the name "pleroma-fe" to pleroma’s pleroma-fe. Meaning the next time anyone updates their existing frontend install, they’ll overwrite "akkoma-fe" with pleroma’s pleroma-fe. This should not happen. (Also all docs would then suddenly recommend installing pleroma’s pleroma-fe by default instead of "akkoma-fe").
Thus this needs to use a different name.

Even if we changed the preferred name for "akkoma-fe" now, pleroma-fe would need to continue to work as an alias for akkoma-fe to not break/migrate existing setups.

To add to the above: "akkoma-fe" is installed under the name and in the directory "pleroma-fe" (since that used to be its name). All mix commands (and admin-fe) refer to it as `pleroma-fe`. Your patch reassigns the name "pleroma-fe" to pleroma’s pleroma-fe. Meaning the next time anyone updates their existing frontend install, they’ll overwrite "akkoma-fe" with pleroma’s pleroma-fe. This should not happen. (Also all docs would then suddenly recommend installing pleroma’s pleroma-fe by default instead of "akkoma-fe"). Thus this needs to use a different name. Even if we changed the preferred name for "akkoma-fe" now, `pleroma-fe` would need to continue to work as an alias for akkoma-fe to not break/migrate existing setups.
Author
First-time contributor

yeah i understand, i'll change it to pleroma-fe-upstream

ideally it should be just a different ref but even pleroma's backend doesn't support multiple refs, i had to hack it into UI.

yeah i understand, i'll change it to `pleroma-fe-upstream` ideally it should be just a different `ref` but even pleroma's backend doesn't support multiple refs, i had to hack it into UI.
HJ added 1 commit 2025-06-25 16:27:36 +00:00
change id
Some checks are pending
ci/woodpecker/pr/build-amd64 Pipeline is pending approval
ci/woodpecker/pr/build-arm64 Pipeline is pending approval
ci/woodpecker/pr/docs Pipeline is pending approval
ci/woodpecker/pr/lint Pipeline is pending approval
ci/woodpecker/pr/test/1 Pipeline is pending approval
ci/woodpecker/pr/test/2 Pipeline is pending approval
598b8b894d
Author
First-time contributor

done

done
Oneric reviewed 2025-06-25 18:22:02 +00:00
Oneric left a comment
Owner

installing work and it seems to use the new files if setting pleroma-fe-upstream as the primary frontend, but the frontend just runs into an error for me. Did it work for you?

*despairing Pleroma-tan*

Something went wrong
TypeError: o is null

Ib@http://localhost:4000/static/js/main.hFCi8wXS.js:87:33542
eCe@http://localhost:4000/static/js/main.hFCi8wXS.js:708:5331
async*@http://localhost:4000/static/js/main.hFCi8wXS.js:708:7680
async*@http://localhost:4000/static/js/main.hFCi8wXS.js:708:7745

Also, several CSP violations are logged (no inline styles allowed)

installing work and it seems to use the new files if setting `pleroma-fe-upstream` as the primary frontend, but the frontend just runs into an error for me. Did it work for you? ``` *despairing Pleroma-tan* Something went wrong TypeError: o is null Ib@http://localhost:4000/static/js/main.hFCi8wXS.js:87:33542 eCe@http://localhost:4000/static/js/main.hFCi8wXS.js:708:5331 async*@http://localhost:4000/static/js/main.hFCi8wXS.js:708:7680 async*@http://localhost:4000/static/js/main.hFCi8wXS.js:708:7745 ``` Also, several CSP violations are logged (no inline styles allowed)
@ -775,3 +775,3 @@
available: %{
"pleroma-fe" => %{
"pleroma-fe-upstream" => %{
"name" => "pleroma-fe",
Owner

"name" => "pleroma-fe-upstream"

`"name" => "pleroma-fe-upstream"`
Oneric marked this conversation as resolved
@ -778,0 +782,4 @@
"build_dir" => "dist"
},
"pleroma-fe" => %{
"name" => "akkoma-fe",
Owner

"name" => "pleroma-fe"

`"name" => "pleroma-fe"`
Oneric marked this conversation as resolved
Author
First-time contributor

@Oneric wrote in #944 (comment):

installing work and it seems to use the new files if setting pleroma-fe-upstream as the primary frontend, but the frontend just runs into an error for me. Did it work for you?

*despairing Pleroma-tan*

Something went wrong
TypeError: o is null

Ib@http://localhost:4000/static/js/main.hFCi8wXS.js:87:33542
eCe@http://localhost:4000/static/js/main.hFCi8wXS.js:708:5331
async*@http://localhost:4000/static/js/main.hFCi8wXS.js:708:7680
async*@http://localhost:4000/static/js/main.hFCi8wXS.js:708:7745

Also, several CSP violations are logged (no inline styles allowed)

what is the instance? i wanna look at it in devtools

@Oneric wrote in https://akkoma.dev/AkkomaGang/akkoma/pulls/944#issuecomment-14406: > installing work and it seems to use the new files if setting `pleroma-fe-upstream` as the primary frontend, but the frontend just runs into an error for me. Did it work for you? > > ```text > *despairing Pleroma-tan* > > Something went wrong > TypeError: o is null > > Ib@http://localhost:4000/static/js/main.hFCi8wXS.js:87:33542 > eCe@http://localhost:4000/static/js/main.hFCi8wXS.js:708:5331 > async*@http://localhost:4000/static/js/main.hFCi8wXS.js:708:7680 > async*@http://localhost:4000/static/js/main.hFCi8wXS.js:708:7745 > ``` > > Also, several CSP violations are logged (no inline styles allowed) what is the instance? i wanna look at it in devtools
Owner

what is the instance?

My local test/dev setup. It doesn’t federate and is not publicly available

> what is the instance? My local test/dev setup. It doesn’t federate and is not publicly available
Owner

The only logged API requests are for instance info and frontend config; results attached below

API responses

instance

{"version":"2.7.2 (compatible; Akkoma 3.15.2-936-gea5a2a9f-ci-tweaks+dev)","description":"Akkoma: The cooler fediverse server","title":"Unspeakable Experiments","stats":{"domain_count":23,"status_count":49,"user_count":8,"remote_user_count":33},"uri":"localhost","pleroma":{"metadata":{"features":["pleroma_api","akkoma_api","mastodon_api","mastodon_api_streaming","polls","v2_suggestions","pleroma_explicit_addressing","shareable_emoji_packs","multifetch","pleroma:api/v1/notifications:include_types_filter","quote_posting","editing","media_proxy","relay","pleroma_emoji_reactions","exposable_reactions","profile_directory","custom_emoji_reactions","pleroma:get:main/ostatus"],"account_activation_required":false,"privileged_staff":false,"federation":{"enabled":true,"mrf_simple":{"accept":[],"reject":["eight.xy","se***.x","si*.xy","f*.ve","r.*t","*.a",".*","*","fully.visible"],"media_removal":[],"media_nsfw":[],"federated_timeline_removal":[],"report_removal":[],"followers_only":[],"avatar_removal":[],"banner_removal":[],"background_removal":[],"reject_deletes":[]},"mrf_hashtag":{"sensitive":["nsfw"],"reject":[],"federated_timeline_removal":[]},"mrf_object_age":{"threshold":1209600,"actions":["delist","strip_followers"]},"quarantined_instances":[],"mrf_policies":["SimplePolicy","ObjectAgePolicy","HashtagPolicy","InlineQuotePolicy","NormalizeMarkup","DirectMessageDisabledPolicy"],"exclusions":true,"mrf_simple_info":{"reject":{"*":{"reason":"A"},"*.a":{"reason":"A"},".*":{"reason":"A"},"eight.xy":{"reason":"A"},"f*.ve":{"reason":"A"},"fully.visible":{"reason":"not-obfuscated"},"r.*t":{"reason":"A"},"se***.x":{"reason":"A"},"si*.xy":{"reason":"A"}}},"quarantined_instances_info":{"quarantined_instances":{}}},"fields_limits":{"max_fields":10,"max_remote_fields":20,"name_length":512,"value_length":2048},"post_formats":["text/plain","text/html","text/markdown","text/bbcode","text/x.misskeymarkdown"]},"stats":{"mau":1},"vapid_public_key":"BMPYMlIEAhZocMv9dmUyA8u2icv309yL_-S67APfEVL70x73NakVqgQoZPAySEuZv0O1brjrhTMMhlTtKxjYNsc"},"email":"admin@example.stub","short_description":"Akkoma: The cooler fediverse server","background_image":"http://localhost:4000/images/city.jpg","description_limit":5000,"upload_limit":16000000,"avatar_upload_limit":2000000,"background_upload_limit":4000000,"banner_upload_limit":4000000,"languages":["en"],"poll_limits":{"max_options":20,"max_option_chars":200,"min_expiration":0,"max_expiration":31536000},"registrations":true,"urls":{"streaming_api":"ws://localhost:4000"},"thumbnail":"http://localhost:4000/instance/thumbnail.jpeg","max_toot_chars":33331,"approval_required":true}

frontend config

{"pleroma_fe":{"logo":"/static/logo.svg","alwaysShowSubjectInput":true,"background":"/images/city.jpg","collapseMessageWithSubject":false,"greentext":false,"hideFilteredStatuses":false,"hideMutedPosts":false,"hidePostStats":false,"hideSitename":false,"hideUserStats":false,"loginMethod":"password","logoMargin":".1em","logoMask":true,"noAttachmentLinks":false,"nsfwCensorImage":"","postContentType":"text/plain","redirectRootLogin":"/main/friends","redirectRootNoLogin":"/main/public","scopeCopy":true,"sidebarRight":false,"showFeaturesPanel":true,"showInstanceSpecificPanel":false,"subjectLineBehavior":"email","theme":"pleroma-dark","webPushNotifications":false,"conversationDisplay":"linear","backendCommitUrl":"","frontendCommitUrl":""},"masto_fe":{"showInstanceSpecificPanel":true}}
The only logged API requests are for instance info and frontend config; results attached below <details> <summary>API responses</summary> instance ```json {"version":"2.7.2 (compatible; Akkoma 3.15.2-936-gea5a2a9f-ci-tweaks+dev)","description":"Akkoma: The cooler fediverse server","title":"Unspeakable Experiments","stats":{"domain_count":23,"status_count":49,"user_count":8,"remote_user_count":33},"uri":"localhost","pleroma":{"metadata":{"features":["pleroma_api","akkoma_api","mastodon_api","mastodon_api_streaming","polls","v2_suggestions","pleroma_explicit_addressing","shareable_emoji_packs","multifetch","pleroma:api/v1/notifications:include_types_filter","quote_posting","editing","media_proxy","relay","pleroma_emoji_reactions","exposable_reactions","profile_directory","custom_emoji_reactions","pleroma:get:main/ostatus"],"account_activation_required":false,"privileged_staff":false,"federation":{"enabled":true,"mrf_simple":{"accept":[],"reject":["eight.xy","se***.x","si*.xy","f*.ve","r.*t","*.a",".*","*","fully.visible"],"media_removal":[],"media_nsfw":[],"federated_timeline_removal":[],"report_removal":[],"followers_only":[],"avatar_removal":[],"banner_removal":[],"background_removal":[],"reject_deletes":[]},"mrf_hashtag":{"sensitive":["nsfw"],"reject":[],"federated_timeline_removal":[]},"mrf_object_age":{"threshold":1209600,"actions":["delist","strip_followers"]},"quarantined_instances":[],"mrf_policies":["SimplePolicy","ObjectAgePolicy","HashtagPolicy","InlineQuotePolicy","NormalizeMarkup","DirectMessageDisabledPolicy"],"exclusions":true,"mrf_simple_info":{"reject":{"*":{"reason":"A"},"*.a":{"reason":"A"},".*":{"reason":"A"},"eight.xy":{"reason":"A"},"f*.ve":{"reason":"A"},"fully.visible":{"reason":"not-obfuscated"},"r.*t":{"reason":"A"},"se***.x":{"reason":"A"},"si*.xy":{"reason":"A"}}},"quarantined_instances_info":{"quarantined_instances":{}}},"fields_limits":{"max_fields":10,"max_remote_fields":20,"name_length":512,"value_length":2048},"post_formats":["text/plain","text/html","text/markdown","text/bbcode","text/x.misskeymarkdown"]},"stats":{"mau":1},"vapid_public_key":"BMPYMlIEAhZocMv9dmUyA8u2icv309yL_-S67APfEVL70x73NakVqgQoZPAySEuZv0O1brjrhTMMhlTtKxjYNsc"},"email":"admin@example.stub","short_description":"Akkoma: The cooler fediverse server","background_image":"http://localhost:4000/images/city.jpg","description_limit":5000,"upload_limit":16000000,"avatar_upload_limit":2000000,"background_upload_limit":4000000,"banner_upload_limit":4000000,"languages":["en"],"poll_limits":{"max_options":20,"max_option_chars":200,"min_expiration":0,"max_expiration":31536000},"registrations":true,"urls":{"streaming_api":"ws://localhost:4000"},"thumbnail":"http://localhost:4000/instance/thumbnail.jpeg","max_toot_chars":33331,"approval_required":true} ``` frontend config ```json {"pleroma_fe":{"logo":"/static/logo.svg","alwaysShowSubjectInput":true,"background":"/images/city.jpg","collapseMessageWithSubject":false,"greentext":false,"hideFilteredStatuses":false,"hideMutedPosts":false,"hidePostStats":false,"hideSitename":false,"hideUserStats":false,"loginMethod":"password","logoMargin":".1em","logoMask":true,"noAttachmentLinks":false,"nsfwCensorImage":"","postContentType":"text/plain","redirectRootLogin":"/main/friends","redirectRootNoLogin":"/main/public","scopeCopy":true,"sidebarRight":false,"showFeaturesPanel":true,"showInstanceSpecificPanel":false,"subjectLineBehavior":"email","theme":"pleroma-dark","webPushNotifications":false,"conversationDisplay":"linear","backendCommitUrl":"","frontendCommitUrl":""},"masto_fe":{"showInstanceSpecificPanel":true}} ``` </details>
Author
First-time contributor

can you open devtools and look where it fails exactly?

CSP on pleroma is: upgrade-insecure-requests;script-src 'self' 'wasm-unsafe-eval';connect-src 'self' blob: https://shigusegubu.club wss://shigusegubu.club https:;media-src 'self' https:;img-src 'self' data: blob: https:;default-src 'none';base-uri 'self';frame-ancestors 'none';style-src 'self' 'unsafe-inline';font-src 'self';manifest-src 'self';

don't know what exactly causing it, might be that CSP violation, pleroma-fe does some magic that inserts CSS into DOM but by default it will use adoptedStyleSheets: https://developer.mozilla.org/en-US/docs/Web/API/Document/adoptedStyleSheets and only falls back to inserting <style> tags if it fails.

can you open devtools and look where it fails exactly? CSP on pleroma is: `upgrade-insecure-requests;script-src 'self' 'wasm-unsafe-eval';connect-src 'self' blob: https://shigusegubu.club wss://shigusegubu.club https:;media-src 'self' https:;img-src 'self' data: blob: https:;default-src 'none';base-uri 'self';frame-ancestors 'none';style-src 'self' 'unsafe-inline';font-src 'self';manifest-src 'self';` don't know what exactly causing it, might be that CSP violation, pleroma-fe does some magic that inserts CSS into DOM but by default it will use adoptedStyleSheets: https://developer.mozilla.org/en-US/docs/Web/API/Document/adoptedStyleSheets and only falls back to inserting `<style>` tags if it fails.
Owner

As I said before, Akkoma doesn’t allow inline styles for security reasons, check: lib/pleroma/web/plugs/http_security_plug.ex

style_setter.js:250:

  const styleSheet = styleEl.sheet

  styleSheet.toString()  // <----- HERE
  styleSheet.insertRule(`:root { ${rules} }`, 'index-max')

  // TODO find a way to make this not apply to theme previews
  if (...

If you already have a pleroma dev env, setting up a local akkoma test env is likely as simple as cloning the backend repo, running the instance setup task (or copying a simple dev config) and running mix phx.server

As I said before, Akkoma doesn’t allow inline styles for security reasons, check: `lib/pleroma/web/plugs/http_security_plug.ex` style_setter.js:250: ```js const styleSheet = styleEl.sheet styleSheet.toString() // <----- HERE styleSheet.insertRule(`:root { ${rules} }`, 'index-max') // TODO find a way to make this not apply to theme previews if (... ``` If you already have a pleroma dev env, setting up a local akkoma test env is likely as simple as cloning the backend repo, running the instance setup task (or copying a simple dev config) and running `mix phx.server`

the source of this may 336d06b2a8 in which we prevent inline stylesheets from loading to keep things nice and sanitised

the source of this may 336d06b2a8ca75362578b1d67ea1f32a45c8edd3 in which we prevent inline stylesheets from loading to keep things nice and sanitised
Author
First-time contributor

I don't have local pleroma backend set up, I usually proxy frontend towards existing instance, helps with dogfooding and investigating real cases.

I don't have local pleroma backend set up, I usually proxy frontend towards existing instance, helps with dogfooding and investigating real cases.
Author
First-time contributor

I added a fix in pleroma-fe for this, gotta wait until develop build is complete

I added a fix in pleroma-fe for this, gotta wait until develop build is complete
HJ added 1 commit 2025-06-25 19:13:10 +00:00
change id again
Some checks are pending
ci/woodpecker/pr/build-amd64 Pipeline is pending approval
ci/woodpecker/pr/build-arm64 Pipeline is pending approval
ci/woodpecker/pr/docs Pipeline is pending approval
ci/woodpecker/pr/lint Pipeline is pending approval
ci/woodpecker/pr/test/1 Pipeline is pending approval
ci/woodpecker/pr/test/2 Pipeline is pending approval
ec1eed7c6a
Author
First-time contributor

fix is in, build successful, you can try installing pleroma-fe again

fix is in, build successful, you can try installing pleroma-fe again
Owner

this didn’t change anything but the name of the minified property being null (and looking at the "fix" i’m not sure how it was supposed to help, even if such an element would exists, it would still fail to add the inline styles a few lines later due to CSP)

I strongly recommend you either force matching CSP headers in your proxy, or setup a local akkoma dev/testing instance as described here: https://akkoma.dev/AkkomaGang/akkoma/src/branch/develop/docs/docs/development/setting_up_akkoma_dev.md – no need for HTTPS and later bits

this didn’t change anything but the name of the minified property being `null` (and looking at the "fix" i’m not sure how it was supposed to help, even if such an element would exists, it would still fail to add the inline styles a few lines later due to CSP) I strongly recommend you either force matching CSP headers in your proxy, or setup a local akkoma dev/testing instance as described here: https://akkoma.dev/AkkomaGang/akkoma/src/branch/develop/docs/docs/development/setting_up_akkoma_dev.md – no need for HTTPS and later bits
Author
First-time contributor

the fix i did https://git.pleroma.social/pleroma/pleroma-fe/-/blob/develop/index.html?ref_type=heads#L138 is basically the same as in akkoma-fe https://akkoma.dev/AkkomaGang/akkoma-fe/src/branch/develop/index.html#L10 but I guess there's more to it. I will force CSP to be the same and do a proper fix

the fix i did https://git.pleroma.social/pleroma/pleroma-fe/-/blob/develop/index.html?ref_type=heads#L138 is basically the same as in akkoma-fe https://akkoma.dev/AkkomaGang/akkoma-fe/src/branch/develop/index.html#L10 but I guess there's more to it. I will force CSP to be the same and do a proper fix
Author
First-time contributor

OK, I did the necessary changes and tested on shigusegubu with stricter CSP header, should be working fine now.

OK, I did the necessary changes and tested on shigusegubu with stricter CSP header, should be working fine now.
Owner

It no longer crashes on load; base viewing and posting functionality seems to mostly work. Most prominently notifications are broken and cause repeated error popups because they query a category not existing in akkoma:

BAD REQUEST: error  "status - Invalid value for enum. pleroma:chat_mention - Invalid value for enum."

Further, less prominent issues (not counting known missing features like MFM etc):

  • errors about trying to query a non-existent API which is deprecated in pleroma anyway: /api/v1/pleroma/accounts/:id/scrobbles?limit=1
  • when using the style menu:
    • previews don’t actually preview their style, but just recreate the current style
    • console logs: SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
  • repeated console errors about:
    • inline style CSP violations (nothing visibly breaks though)
    • window.navigator.serviceWorker is undefined

I did not test any admin stuff besides adding an emoji.

An advantage it seems to have (apart from personal preferences) over akkoma-fe is the built-in emoji management UI.

It no longer crashes on load; base viewing and posting functionality seems to mostly work. Most prominently notifications are broken and cause repeated error popups because they query a category not existing in akkoma: ``` BAD REQUEST: error "status - Invalid value for enum. pleroma:chat_mention - Invalid value for enum." ``` Further, less prominent issues (not counting known missing features like MFM etc): - errors about trying to query a non-existent API which is deprecated in pleroma anyway: [`/api/v1/pleroma/accounts/:id/scrobbles?limit=1`](https://docs-develop.pleroma.social/backend/development/API/pleroma_api/#get-apiv1pleromaaccountsidscrobbles) - when using the style menu: - previews don’t actually preview their style, but just recreate the current style - console logs: `SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data` - _repeated_ console errors about: - inline style CSP violations (nothing visibly breaks though) - `window.navigator.serviceWorker is undefined` I did not test any admin stuff besides adding an emoji. An advantage it seems to have (apart from personal preferences) over akkoma-fe is the built-in emoji management UI.
Author
First-time contributor

errors about trying to query a non-existent API which is deprecated in pleroma anyway

It sends one request to determine if scrobbles are available or not because backend devs forgot to add it to nodeinfo

window.navigator.serviceWorker is undefined

That's probably just your browser not supporting or not allowing serviceworkers, it's not fatal in any way, but on mobile it means no native notifications in chrome

BAD REQUEST: error "status - Invalid value for enum. pleroma:chat_mention - Invalid value for enum."

That is very strange, I was testing against suya.place and outerheaven and everthing was fine.

An advantage it seems to have (apart from personal preferences) over akkoma-fe is the built-in emoji management UI.

there are more IMO, like customizable navigation and cutomizable post actions, plus proper popovers that don't get cut-off by parent, scalable UI. But otherwise I think it's more of a personal preference, I just want akkoma users to try using what i've been working on.

>errors about trying to query a non-existent API which is deprecated in pleroma anyway It sends one request to determine if scrobbles are available or not because backend devs forgot to add it to `nodeinfo` >`window.navigator.serviceWorker is undefined` That's probably just your browser not supporting or not allowing serviceworkers, it's not fatal in any way, but on mobile it means no native notifications in chrome >`BAD REQUEST: error "status - Invalid value for enum. pleroma:chat_mention - Invalid value for enum."` That is very strange, I was testing against suya.place and outerheaven and everthing was fine. >An advantage it seems to have (apart from personal preferences) over akkoma-fe is the built-in emoji management UI. there are more IMO, like customizable navigation and cutomizable post actions, plus proper popovers that don't get cut-off by parent, scalable UI. But otherwise I think it's more of a personal preference, I just want akkoma users to try using what i've been working on.
Owner

It sends one request to determine if scrobbles are available or not

it logs the error repeatedly, not just once

That's probably just your browser not supporting or not allowing serviceworkers, it's not fatal in any way

yeah, would be nice if it would only be tested/logged once, but not a deal breaker

> It sends one request to determine if scrobbles are available or not it logs the error _repeatedly_, not just once > That's probably just your browser not supporting or not allowing serviceworkers, it's not fatal in any way yeah, would be nice if it would only be tested/logged once, but not a deal breaker
Author
First-time contributor

Fixed aformentioned issues.

  • Scrobbles fetched only once for real this time
  • Adds pleroma:chat_message to type list only if chats are supported
  • Theme previews work now and should not generate CSP errors
  • It's now checked that ServiceWorkers are available or not properly

Still don't know what SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data is about but I'm guessing it's just that instance is missing some (custom) styles/palettes.

There is some sort of performance degradation after pleroma-fe has been running for a while but i'm not sure what it is and currently investigating. Shouldn't be a blocker though.

Fixed aformentioned issues. - Scrobbles fetched only once for real this time - Adds `pleroma:chat_message` to type list only if chats are supported - Theme previews work now and should not generate CSP errors - It's now checked that ServiceWorkers are available or not properly Still don't know what `SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data` is about but I'm guessing it's just that instance is missing some (custom) styles/palettes. There is some sort of performance degradation after pleroma-fe has been running for a while but i'm not sure what it is and currently investigating. Shouldn't be a blocker though.
Author
First-time contributor

Actually changing the way theme previews work increased performance of them significantly lol

Actually changing the way theme previews work increased performance of them significantly lol
Owner

I misread the error message before too, but actually it seems there were two invalid enums in notification requests: pleroma:chat_messages (which is now gone) and status, the latter seems to’ve been added to pleroma about a year ago without a corresponding nodeinfo entry and still causes notification requests to fail

(related: #531 )

I misread the error message before too, but actually it seems there were _two_ invalid enums in notification requests: `pleroma:chat_messages` *(which is now gone)* and `status`, the latter seems to’ve been added to pleroma about a year ago without a corresponding nodeinfo entry and still causes notification requests to fail (related: https://akkoma.dev/AkkomaGang/akkoma/issues/531 )
Author
First-time contributor

Do those notifications return 500 error code or something? I don't know how to detect if this if they don't and not in nodeinfo.

Once again it works completely fine on frontend side when proxied to outerheaven and suya.place so I can't reproduce. I'm guessing the issue is spammy logs on backend side? IMO backend should ignore any unrecognized types, I think masto does the same.

If i remove all include_types it seem to work just fine.

also noticed that custom emoji reacts are kinda broken, gonna fix

Do those notifications return 500 error code or something? I don't know how to detect if this if they don't and not in nodeinfo. Once again it works completely fine on frontend side when proxied to outerheaven and suya.place so I can't reproduce. I'm guessing the issue is spammy logs on backend side? IMO backend should ignore any unrecognized types, I think masto does the same. If i remove all include_types it seem to work just fine. also noticed that custom emoji reacts are kinda broken, gonna fix
Author
First-time contributor

custom emoji reacts now are un-broken.

custom emoji reacts now are un-broken.
Owner

Do those notifications return 500 error code or something?

BAD REQUEST is HTTP 400

> Do those notifications return 500 error code or something? `BAD REQUEST` is `HTTP 400`
Author
First-time contributor

i added check if notification fetch ends up with 400 and remove status type from it (and send request again). It's hacky and IMO backend should just ignore extraneous types.

Again, I can't reproduce it on instances i mentioned, so i don't know if status message is helpful or not, it would be good if it tells you whan is wrong exactly.

i added check if notification fetch ends up with 400 and remove `status` type from it (and send request again). It's hacky and IMO backend should just ignore extraneous types. Again, I can't reproduce it on instances i mentioned, so i don't know if status message is helpful or not, it would be good if it tells you whan is wrong exactly.
Owner

it would be good if it tells you whan is wrong exactly.

That’s exactly what happens though; you get the error message I posted earlier as part of the 400 BAD REQUEST response

Anyway, I don’t spot anything obviously broken anymore, so functionality-wise this seems good enough now for inclusion. Now only the question how to handle trust etc for third-party builds remains

> it would be good if it tells you whan is wrong exactly. That’s exactly what happens though; you get the error message I posted earlier as part of the `400 BAD REQUEST` response Anyway, I don’t spot anything obviously broken anymore, so functionality-wise this seems good enough now for inclusion. Now only the question how to handle trust etc for third-party builds remains
Author
First-time contributor

oh, i missed that, i'll update pleroma-fe to look specifically for those types of messages

oh, i missed that, i'll update pleroma-fe to look specifically for those types of messages
Some checks are pending
ci/woodpecker/pr/build-amd64 Pipeline is pending approval
ci/woodpecker/pr/build-arm64 Pipeline is pending approval
ci/woodpecker/pr/docs Pipeline is pending approval
ci/woodpecker/pr/lint Pipeline is pending approval
ci/woodpecker/pr/test/1 Pipeline is pending approval
ci/woodpecker/pr/test/2 Pipeline is pending approval
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u pleroma-admin-support:HJ-pleroma-admin-support
git checkout HJ-pleroma-admin-support
Sign in to join this conversation.
No description provided.