This commit is contained in:
@@ -511,3 +511,120 @@ Add the creation of an xpi bundle for the webextention to the Makefile
|
||||
|
||||
### Assistant outcome
|
||||
Added a portable `xpi` Makefile target that regenerates logo assets and packages the Firefox extension into `LinkLog.xpi`, excluding metadata and minified artifacts. Added README instructions, ignored the generated XPI, and verified the archive contents and integrity with `unzip -tq`.
|
||||
|
||||
### User
|
||||
Correct: A signed XPI will be generated manually and checked into the repository under XPI/signed
|
||||
|
||||
### Assistant outcome
|
||||
Defined the release workflow around a manually checked-in signed XPI and added version/update-manifest validation, Docker image publishing, and Gitea release asset handling.
|
||||
|
||||
### User
|
||||
The "data_collection_permissions" property is missing from the plugin
|
||||
|
||||
### Assistant outcome
|
||||
Added Firefox `data_collection_permissions` requiring `websiteActivity`, with no optional categories, and enforced the declaration in release validation.
|
||||
|
||||
### User
|
||||
Validate the XPI during the make process of the unsigned xpi
|
||||
|
||||
### Assistant outcome
|
||||
Added unsigned-XPI validation to the Makefile. The validator checks ZIP integrity, required files, macOS metadata, and exact manifest parity.
|
||||
|
||||
### User
|
||||
pressing remove still does not remove a user.
|
||||
|
||||
### Assistant outcome
|
||||
Fixed admin user removal behavior, added server-side self-protection, improved browser error reporting, and updated the admin cache-busting version.
|
||||
|
||||
### User
|
||||
Trying to remove user alice: Could not remove alice: Internal Server Error
|
||||
|
||||
### Assistant outcome
|
||||
Found the SQLite foreign-key failure caused by Alice-owned tokens, links, and plugin configuration. User deletion now removes dependent records transactionally before deleting the user. Full validation passed.
|
||||
|
||||
### User
|
||||
Create a Gitea Action for every update to main that creates a Docker image tagged development
|
||||
|
||||
### Assistant outcome
|
||||
Added `.gitea/workflows/development.yml`, publishing `git.kolkman.org/olaf/link-log:development` on every push to `main`, with manual dispatch support.
|
||||
|
||||
### User
|
||||
Use an access token to publish to registry, not username and password
|
||||
|
||||
### Assistant outcome
|
||||
Changed release and development workflows to use `REGISTRY_TOKEN` as the Docker registry credential while retaining `REGISTRY_USERNAME` as the login identity.
|
||||
|
||||
### User
|
||||
Add SMTP capabilities and email validation links
|
||||
|
||||
### Assistant outcome
|
||||
Added SMTP delivery, email verification tokens, verification-link handling, and environment configuration for SMTP.
|
||||
|
||||
### User
|
||||
Do not configure default users at bootstrap. Present a configuration page when no administrator exists.
|
||||
|
||||
### Assistant outcome
|
||||
Removed default-user bootstrap, added a first-run setup page, persisted SMTP settings, created the first administrator through setup, and added an SMTP test-mail step.
|
||||
|
||||
### User
|
||||
Separate saving configuration from sending test mail, allow five sends with 20-second intervals, then hold for two minutes with a visual timer.
|
||||
|
||||
### Assistant outcome
|
||||
Split setup into Save configuration, Send test mail, and Complete setup actions. Added persistent server-side throttling, reload-safe countdown state, a five-send limit, and a two-minute cooldown.
|
||||
|
||||
### User
|
||||
Use `.env` defaults during initial configuration.
|
||||
|
||||
### Assistant outcome
|
||||
The setup status endpoint now exposes effective environment SMTP defaults, and the setup form populates blank fields from them. Persisted setup values take precedence after saving.
|
||||
|
||||
### User
|
||||
Use OAuth to register with the Mastodon account and obtain access to post.
|
||||
|
||||
### Assistant outcome
|
||||
Added Mastodon OAuth app registration, authorization and callback endpoints, one-time OAuth state storage, and per-user access-token persistence.
|
||||
|
||||
### User
|
||||
Allow the user to enter the Mastodon server to authenticate to.
|
||||
|
||||
### Assistant outcome
|
||||
The profile now requires an explicit Mastodon server, saves that server before OAuth, and authenticates against the selected instance.
|
||||
|
||||
### User
|
||||
Clicking authenticate with this server for social.secret-wg.org generates a 502 error.
|
||||
|
||||
### Assistant outcome
|
||||
Confirmed the Mastodon instance was returning HTTP 429 during app registration. OAuth app credentials are now cached per instance, and upstream rate-limit responses are passed through with retry information instead of being reported as generic 502 errors.
|
||||
|
||||
### User
|
||||
When a password is mistyped, send a password reset link.
|
||||
|
||||
### Assistant outcome
|
||||
Added hashed, expiring, single-use password-reset tokens, SMTP reset mail, a reset-password page, generic login errors, and session revocation after reset.
|
||||
|
||||
### User
|
||||
Log the unlogged chat and prompt in the VIBE directory.
|
||||
|
||||
### Assistant outcome
|
||||
Appended the previously unlogged feature work and this request to `VIBE/PROMPTS.md` and `VIBE/CHAT_LOG.md`.
|
||||
|
||||
### User
|
||||
Continue to log prompts and chats in VIBE
|
||||
|
||||
### User
|
||||
Use the VIBE directory in the current workspace.
|
||||
|
||||
### Assistant outcome
|
||||
Confirmed the current workspace is `/home/olaf/LinkLog_Dev` and appended both requests and this outcome to the VIBE logs located at `VIBE/PROMPTS.md` and `VIBE/CHAT_LOG.md`.
|
||||
|
||||
### User
|
||||
Posting to Mastodon seems to fail, try to fix, add debug logging.
|
||||
|
||||
### Assistant outcome
|
||||
Changed Mastodon status publishing to form-encoded API requests, added safe configurable logging for skipped, successful, and failed posts, included upstream HTTP response details without logging access tokens, and wired `LINKLOG_LOG_LEVEL` through the environment and Compose configuration. Updated the posting regression test. The focused test and complete Dockerized backend suite passed with 22 tests.
|
||||
|
||||
### User
|
||||
`LINKLOG_PUBLIC_URL` and `TRAEFIK_HOST` are the same and can be merged. Use `LINKLOG_PUBLIC_URL` in Docker Compose.
|
||||
|
||||
### Assistant outcome
|
||||
Removed the duplicate `TRAEFIK_HOST` configuration, changed both Traefik router rules to use `LINKLOG_PUBLIC_URL`, standardized the value as a host name, and normalized scheme-less values to valid HTTP/HTTPS backend callback URLs. Compose validation, URL normalization, and the complete Dockerized backend suite passed with 22 tests.
|
||||
|
||||
Reference in New Issue
Block a user