From 6f1fbaa5ea7c7a304fe57461fcecfdb81bd2e04e Mon Sep 17 00:00:00 2001 From: Kolkman Date: Wed, 26 Aug 2026 14:25:00 +0200 Subject: [PATCH] Finetuning Plugin behavior when not logged in --- VIBE/CHAT_LOG.md | 6 ++++++ VIBE/PROMPTS.md | 1 + XPI/unsigned/LinkLog-0.1.0.xpi | Bin 47512 -> 47843 bytes webextension/_locales/de/messages.json | 2 ++ webextension/_locales/en-US/messages.json | 6 ++++++ webextension/_locales/es/messages.json | 2 ++ webextension/_locales/fr/messages.json | 2 ++ webextension/_locales/nl/messages.json | 2 ++ webextension/popup.css | 9 +++++++++ webextension/popup.html | 6 +++++- webextension/popup.js | 18 +++++++++++++++++- 11 files changed, 52 insertions(+), 2 deletions(-) diff --git a/VIBE/CHAT_LOG.md b/VIBE/CHAT_LOG.md index 14ae757..c822b68 100644 --- a/VIBE/CHAT_LOG.md +++ b/VIBE/CHAT_LOG.md @@ -812,3 +812,9 @@ Don't forget to update the plugin to work with OTP. ### Assistant outcome Updated the Firefox extension settings login to accept and submit a six-digit one-time password. The backend supports TOTP setup, enable/disable confirmation, and OTP-enforced login, with the stored secret protected from profile responses. + +### User +When the user is not logged in, the plugin should display no form fields and warn them that they must log in, with a link to settings. + +### Assistant outcome +The Firefox popup now hides capture fields by default for signed-out users, shows a localized sign-in warning, and provides an Open settings action. The form appears only after backend credentials and a valid session are available; expired sessions return to the warning state. diff --git a/VIBE/PROMPTS.md b/VIBE/PROMPTS.md index 62b3465..0cc6ab4 100644 --- a/VIBE/PROMPTS.md +++ b/VIBE/PROMPTS.md @@ -144,6 +144,7 @@ 135. Correction: the feed header should have the sort and filter bar to the right of the LinkLog logo, compact and underneath the theme selector and menu. 136. When a log entry is deleted then all mastodon posts are deleted too. 137. Don't forget to update the plugin to work with OTP. +138. When the user is not logged in then the plugin should just display no form fields but warn the user that they have to log in with a link to settings. ## Future entries diff --git a/XPI/unsigned/LinkLog-0.1.0.xpi b/XPI/unsigned/LinkLog-0.1.0.xpi index 19a79376d53f091e7886d4fdc982fe9aa874ceff..3c11b0cf2a6979b6d7e36350a9b71b01963f93e2 100644 GIT binary patch delta 10697 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 J(eT$7{(nut;_v_f delta 10203 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 +
+ Please sign in to use LinkLog. + +
-