Add Actor profile settings #181

Merged
erik merged 2 commits from feat/task-83681958-activitypub-profile-fields into main 2026-06-21 17:41:50 -05:00
Owner

Summary

Replace the raw ActivityPub profile metadata JSON box with a dedicated Actor settings page that uses explicit profile fields, visual image pickers, and uploaded public identity images.

Task

Task: #task-83681958

Changes

  • Added /settings/actor as the public site Actor settings page and removed the old /settings/activitypub route.
  • Kept /settings focused on the logged-in site user's account display name, login username, and appearance mode.
  • Added explicit Actor controls for username, display name, summary, avatar, banner, pronouns, location, and website.
  • Replaced visible image URL/file controls with visual avatar/banner pickers that preserve existing URLs and preview selected files.
  • Upload selected avatar/banner files through the existing media upload service and save resulting URLs as imageUrl and bannerUrl metadata.
  • Publish pronouns, location, and website as ActivityPub PropertyValue attachments while keeping avatar/banner output from imageUrl/bannerUrl.
  • Use uploaded actor avatar/banner on normal public website surfaces where the static Slugkit logo/gradient were previously used, with existing static fallbacks.
  • Moved Fediverse handle into Federation runtime status and left Actor URLs visible for diagnostics.

Testing

  • Unit tests added/updated
  • Manual testing performed

Checklist

  • ./scripts/pre-pr.sh passes
  • Documentation updated (if needed)
  • No unrelated changes included
## Summary Replace the raw ActivityPub profile metadata JSON box with a dedicated Actor settings page that uses explicit profile fields, visual image pickers, and uploaded public identity images. ## Task Task: #task-83681958 ## Changes - Added `/settings/actor` as the public site Actor settings page and removed the old `/settings/activitypub` route. - Kept `/settings` focused on the logged-in site user's account display name, login username, and appearance mode. - Added explicit Actor controls for username, display name, summary, avatar, banner, pronouns, location, and website. - Replaced visible image URL/file controls with visual avatar/banner pickers that preserve existing URLs and preview selected files. - Upload selected avatar/banner files through the existing media upload service and save resulting URLs as `imageUrl` and `bannerUrl` metadata. - Publish pronouns, location, and website as ActivityPub `PropertyValue` attachments while keeping avatar/banner output from `imageUrl`/`bannerUrl`. - Use uploaded actor avatar/banner on normal public website surfaces where the static Slugkit logo/gradient were previously used, with existing static fallbacks. - Moved Fediverse handle into Federation runtime status and left Actor URLs visible for diagnostics. ## Testing - [x] Unit tests added/updated - [ ] Manual testing performed ## Checklist - [x] `./scripts/pre-pr.sh` passes - [x] Documentation updated (if needed) - [x] No unrelated changes included
feat: add ActivityPub profile fields
All checks were successful
CI / build-lint-test (pull_request) Successful in 47s
5512acb8d6
Task: #task-83681958
Author
Owner

PR Review

Summary

Reviewed PR #181 against task task-83681958. The implementation replaces the raw ActivityPub profile metadata JSON textarea with explicit profile fields, supports avatar/banner uploads through the existing media service, and keeps ActivityPub avatar/banner output intact while adding profile field attachments.

Acceptance criteria

  • /settings/activitypub shows explicit fields for avatar image, banner image, pronouns, location, and website instead of a raw profile metadata JSON textarea.
  • Avatar and banner fields allow selecting an image file from the local machine and upload it successfully.
  • Uploaded avatar and banner URLs are saved as imageUrl and bannerUrl in ActivityPub actor profile metadata.
  • Existing imageUrl, bannerUrl, pronouns, location, and website metadata values are shown when editing an existing actor.
  • Saving the form preserves supported metadata fields and rejects invalid website values with a clear error.
  • ActivityPub actor output continues to publish avatar and banner images from imageUrl and bannerUrl.

Blocking issues

None.

Warnings

None.

Verification

  • ./scripts/pre-pr.sh passed.
  • CI status for commit 5512acb8d66f018d3f2dd85e9ab775736e4fe10f is success.

Final verdict

Approved. Ready for human merge approval.

## PR Review ### Summary Reviewed PR #181 against task `task-83681958`. The implementation replaces the raw ActivityPub profile metadata JSON textarea with explicit profile fields, supports avatar/banner uploads through the existing media service, and keeps ActivityPub avatar/banner output intact while adding profile field attachments. ### Acceptance criteria - [x] `/settings/activitypub` shows explicit fields for avatar image, banner image, pronouns, location, and website instead of a raw profile metadata JSON textarea. - [x] Avatar and banner fields allow selecting an image file from the local machine and upload it successfully. - [x] Uploaded avatar and banner URLs are saved as `imageUrl` and `bannerUrl` in ActivityPub actor profile metadata. - [x] Existing `imageUrl`, `bannerUrl`, `pronouns`, `location`, and `website` metadata values are shown when editing an existing actor. - [x] Saving the form preserves supported metadata fields and rejects invalid website values with a clear error. - [x] ActivityPub actor output continues to publish avatar and banner images from `imageUrl` and `bannerUrl`. ### Blocking issues None. ### Warnings None. ### Verification - `./scripts/pre-pr.sh` passed. - CI status for commit `5512acb8d66f018d3f2dd85e9ab775736e4fe10f` is `success`. ### Final verdict Approved. Ready for human merge approval.
feat: refine actor settings UI
All checks were successful
CI / build-lint-test (pull_request) Successful in 44s
f7a7f522e7
Task: #task-83681958
erik changed title from Add ActivityPub profile metadata fields to Add Actor profile settings 2026-06-21 17:39:14 -05:00
Author
Owner

PR Review

Summary

Reviewed updated PR #181 against task task-83681958. The implementation now provides a dedicated /settings/actor page for the public site/ActivityPub actor, keeps /settings focused on the logged-in site user account, replaces raw profile metadata JSON with explicit fields and visual image pickers, uploads avatar/banner images through existing media storage, and uses uploaded actor images on public site surfaces.

Acceptance criteria

  • /settings/activitypub shows explicit fields for avatar image, banner image, pronouns, location, and website instead of a raw profile metadata JSON textarea. Implemented as /settings/actor; the old /settings/activitypub route is intentionally removed and covered by tests.
  • Avatar and banner fields allow selecting an image file from the local machine and upload it successfully.
  • Uploaded avatar and banner URLs are saved as imageUrl and bannerUrl in ActivityPub actor profile metadata.
  • Existing imageUrl, bannerUrl, pronouns, location, and website metadata values are shown when editing an existing actor.
  • Saving the form preserves supported metadata fields and rejects invalid website values with a clear error.
  • ActivityPub actor output continues to publish avatar and banner images from imageUrl and bannerUrl.

Blocking issues

None.

Warnings

None.

Verification

  • ./scripts/pre-pr.sh passed.
  • CI status for commit f7a7f522e7d4ae983c5b63d74872eb603737f6ff is success.

Final verdict

Approved. Ready for human merge approval.

## PR Review ### Summary Reviewed updated PR #181 against task `task-83681958`. The implementation now provides a dedicated `/settings/actor` page for the public site/ActivityPub actor, keeps `/settings` focused on the logged-in site user account, replaces raw profile metadata JSON with explicit fields and visual image pickers, uploads avatar/banner images through existing media storage, and uses uploaded actor images on public site surfaces. ### Acceptance criteria - [x] `/settings/activitypub` shows explicit fields for avatar image, banner image, pronouns, location, and website instead of a raw profile metadata JSON textarea. Implemented as `/settings/actor`; the old `/settings/activitypub` route is intentionally removed and covered by tests. - [x] Avatar and banner fields allow selecting an image file from the local machine and upload it successfully. - [x] Uploaded avatar and banner URLs are saved as `imageUrl` and `bannerUrl` in ActivityPub actor profile metadata. - [x] Existing `imageUrl`, `bannerUrl`, `pronouns`, `location`, and `website` metadata values are shown when editing an existing actor. - [x] Saving the form preserves supported metadata fields and rejects invalid website values with a clear error. - [x] ActivityPub actor output continues to publish avatar and banner images from `imageUrl` and `bannerUrl`. ### Blocking issues None. ### Warnings None. ### Verification - `./scripts/pre-pr.sh` passed. - CI status for commit `f7a7f522e7d4ae983c5b63d74872eb603737f6ff` is `success`. ### Final verdict Approved. Ready for human merge approval.
erik merged commit 29645b7891 into main 2026-06-21 17:41:50 -05:00
erik deleted branch feat/task-83681958-activitypub-profile-fields 2026-06-21 17:41:50 -05:00
Sign in to join this conversation.
No description provided.