# Prompt Log ## 2026-08-24 1. I want to build a firefox plugin as specified in the REQUIREMENTS.md file. 2. I want this written in python where possible. 3. Start implementation. 4. Make the frontend page and the Docker setup. 5. Continue. 6. go. 7. continue. 8. Continue. 9. Create a folder called VIBE and log our chat and promts. Previous and future. 10. implement next step. 11. continue implementation 12. Fix the Starlette/httpx deprecation by using an alternative 13. Clean up and create a README that includes full install instructions 14. Review Docker setup and configuration 15. Make sure all configurateion can be set using a .env file with docker 16. Execute all TODOs 17. Add authenticated admin/user configuration 18. Make sure the link-log page is responsive 19. next 20. Make the layout modern based on catpuccino mocha theme 21. docker compose up fails with Jinja2 errors 22. put the avatar and the username on the top right hand side, and wrap all other text around it. 23. add a login button on the top right of the page 24. add a link to the administrator page to the user configuration for users that have admin privilige 25. add the ability to add and remove users to the admin interface 26. Only show the add user interface when logged in as admin and only show 'Administrator sign-in required' when an administrator is not signed in. Also add a checkbox to users in the admin to assign admin rights. 27. /admin shows 'sign out' while the users has been signed out. 28. Show a login button when nobody is logged in for /admin 29. The signin and signout button are not still not visible 30. It seems that the session is not maintained. I want Login buttons when a user has logged in and logout buttons when a user has logged out. If an authenticated user tries to load the admin page without authorization it should say that the user has no authorization 31. When a logged in user gets to the profile page their username should be printed - it is inmutable. Available defaults should prepopulte the fields. 32. The username doesn't load. The firefox console reports: Uncaught SyntaxError: redeclaration of const logoutButton 33. Check the whole authentication flow as it seems broken. 34. In the admin interface allow to toggle administrative rights for users. But always enforce there to be at least one user with admin rights 35. remove default for bio and email in the profile page 36. Don't use an avatar URL but allow the user to upload an avatar 37. Show the avatar with all posts 38. Show the avatar with each entry on the home page. On the specific // page don't show the avatar and user name with each entry 39. For the user filter create a dropdown of all users that are available on the server 40. If I select a user filter I want the appropriate page to be opened (e.g. /user/ for user of / -home- for all-users) 41. git commit the whole lot 42. version the sql schema and make sure it can be upgraded in the future. 43. allow editing of individual links - add a edit button for the links owned by the authenticated user - otherwise do not show a link 44. Add authenticated link editing 45. Expose ownership if feed data 46. Render edit action for owned links 47. On every page, when a user has authenticated show its avatar and name in the header next to a sign out putton. 48. execute next todo 49. execute final todo (nummer 3) 50. Pressing signout (on the home page) does not log the user out 51. Instead of the buttons on the top of the page create a 'hamburger' dropdown menu. The menu items are sign in, profile, admin, and sign out with authenticated visibility rules. 52. The menu items on the dropdown render behind
53. The menu should not show the profile, admin and signout items when nobody is authenticated. 54. Add one entry on top of the hamburger menu 'home' that always directs to the home page. 55. where the hamburger menu shows the avatar and username, replace by username only and link to the /user/ page 56. Change both the plugin and the backed to allow a logged link to be tagged witn zero or more tags (10 max). In the pluggin tags can be selected from existing tags and new ones can be created. Add the ability to sort on tags on the front page. 57. The seed list is: #Internet #Cybersecurity #Fediverse #Food #Photography #Music #AI 58. The seed list is: #Internet, #Cybersecurity, #Fediverse, #Food, #Photography, #Music, #AI 59. On the home page allow filtering on tags 60. when editing lables I want to be able to selec multiple tags or add one myself. 61. Make the tags filtering case incensitive (but maintain case of tags) 62. Display the date as "2026 June 18 - 20:22" 63. Create a page where users can add, delete, or edit labels - Labels can be edited and deleted by the same user that created them. The administrator can delete any label. 64. The profile page shows in red: "can't access property \"classList\", document.querySelector(...) is null" 65. The post prefix is now 'From my #LinkLog: "' make that 'From my #LinkLog: ' 66. Use the logo.svg in both the plugin as well as on the web page 67. use the logo as the logo on the dropdown for firefox extensions but put it on a dark background 68. Make sure that the logo is used in the toolbar 69. For the logo in the toolbar make the background dark 70. Make sure the addon conforms to Firefox guidelines 71. Create a make file that will regenerate the logo and icon files from LinkLog.svg 72. Make sure the addon conforms to Firefox guidelines 73. How come when te container starts after docker compose down -v the database is still populated with old links 74. Refine the Plugins Settings page. When the user is logged in it shows all " logged in at " and a sign-out button. If the user is not logged in it shows the form as is now. 75. On the plugin, next to the logo, create a link of the form: [LinkLog](https:///) 76. Use the Asset Font from google foundry as font for the LinkLog text 77. Create an about page and add an entry in the hamburger menu. The about page explains what the linklog does 78. On the bottom of all files add a copyright statement (Olaf Kolkman) and a link to the git.kolkman.org/LinkLog repository in small print 79. the link in the site footer must be underlined and in the same color as the other text 80. Add copyright sign and 2026 to the copyright notices 81. in the footer make the link the same color as the mother text, when clicked use a tint from the Catpuccin theme 82. Add a GNU License file 83. Add a copyright statement to source files refer to GNU license 84. Add the version to the name of the resulting xpi 85. Set the version number of the backend to 0.1.0 84. Add the creation of an xpi bundle for the webextention to the Makefile 85. Correct: A signed XPI will be generated manually and checked into the repository under XPI/signed 86. The "data_collection_permissions" property is missing from the plugin 87. Validate the XPI during the make process of the unsigned xpi 88. pressing remove still does not remove a user. 89. Trying to remove user alice: Could not remove alice: Internal Server Error 90. create a gitea action that is ran every time main is updated and that creates a docker image tagged development 91. Use an access token to publish to registry, not username and password 92. Add SMTP capabilities to the backend. Use it to validate the email addresses using a validation link in mail 93. Do not configure default users at bootstrap. Instead present a configuration page (only present if no administrator is configured). The configuration page asks for the admin users credetials and allows to configure the SMTP settings and sends a test mail after configuration 94. After saving the configuration - add link to home page together with "LinkLog is configured and the SMTP test mail was sent." 95. In the confiuration seperate the safe and send mail functionality. Allow the user to resend test mail 5 times with a 20 seconds interval and then hold back for 2 minutes - show a visual timer counting down. 96. when running the initial config use the defaults from the .env file when available 97. Use oauth to register with the mastodon account and obtain access to post 98. Allow user to enter the mastodon server to authenticate to 99. Clicking authenticate with this server (social.secret-wg.org) generates 502 error 100. Log the unlogged chat and promt in the VIBE directory 101. when password is mistyped send a password reset link 102. when running the initial config use the defaults from the .env file when available 103. After saving the configuration - add link to home page together with "LinkLog is configured and the SMTP test mail was sent." 104. In the confiuration seperate the safe and send mail functionality. Allow the user to resend test mail 5 times with a 20 seconds interval and then hold back for 2 minutes - show a visual timer counting down. 105. Use oauth to register with the mastodon account and obtain access to post 106. Allow user to enter the mastodon server to authenticate to 107. Log the unlogged chat and promt in the VIBE directory 108. Continue to log prompts and chats in VIBE 109. use VIVE that is in the current directory 110. Posting to mastodon seems to fail, try to fix, add debug logging 111. LINKLOG_PUBLIC_URL and TRAEFIK_HOST are the same and can be merged. (use LINKLOG_PUBLIC_URL), fix docker-compose to use said variable 112. Format mastodon posts like From my #LinkLog: Title, optional comment, and from: URL 113. Only print the 'from' line if there is no title. Put the title directly behind the colon, and put all tags on the last line. 114. In the frontend do not show edit buttons on the home page even when a user is logged in. On the // page show the edit button on the right of the entry. Also add a delete button. 115. Put the buttons on the right hand side of the link item, make the buttons smaller and same color scheme 116. Put the mastodon button on the lower right corner of the log entry 117. Make sure that the makefile also rebuilds XPI if any of its source files are changed 117. Change that location to be immediately below the edit and delete button 116. When the user is authorized and on its // page show a Mastodon post button with logo; after posting keep it functional but change its color. 117. Continue to log interactions to the VIBE directory. 118. On the home page, when clicking on the avatar or the user, show the profile information. 119. Localize the firefox plugin. 120. Create a spanish, german, french and dutch locale. 121. On the admin page add the SMTP settings (with the validation button). 122. Populate the SMTP fields with the current values except for the password. Send the testmail to the currently authenticated admin user. Only use updated fields when testing. Use the same logic as in the configuration page to restrict endless testing. 123. Report any errors that may occur from the SMTP module to the user. 124. In the admin screen allow to select multiple themes for the backend. Create at least one plain day and one night theme, and add in all catpuccin themes for good measure. 125. For the day and latte themes the contrast on the link items is too low. 126. Add 3 other of the most popular themes. 127. Show the tags in the linklog on the bottom left, move the date to the bottom right - horizontally align the tags with the date. 128. Continue todos. 129. Do not show 'no comment provided' but leave empty when no comment has been provided. 130. Decrease the space between link-log items. 131. Perform the next items on the todo list. 132. Correct: move the sort and filter toolbar underneath the theme and menu, in the header, on the home page and on the pages. 133. Run frontend and style checks. 134. Keep the sort and filter bar left of the logo and pack it snug against the menu and theme selector. 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. ## Future entries Append each new user prompt here with its date and preserve the chronological order.