Fix actor settings data model #184

Merged
erik merged 1 commit from fix/task-bf6945b5-actor-settings-model into main 2026-06-21 22:23:49 -05:00
Owner

Summary

Restructures ActivityPub actor persistence so actor identity/key material is separate from structured profile settings and the primary actor selector is accurately named.

Task

Task: #task-bf6945b5

Changes

  • Adds migration 023_activitypub_actor_settings_model.sql to split activitypub_actors, add activitypub_actor_settings, and replace activitypub_settings with activitypub_primary_actor.
  • Migrates supported legacy profile metadata fields into explicit columns without adding JSON text settings storage.
  • Updates actor read/write code to persist supported profile fields through structured columns.
  • Updates migration, actor, and admin settings tests.
  • Updates docs describing the actor identity/settings/primary-selector split.

Testing

  • Unit tests added/updated
  • Manual testing performed

Checklist

  • ./scripts/pre-pr.sh passes
  • Documentation updated (if needed)
  • No unrelated changes included
## Summary Restructures ActivityPub actor persistence so actor identity/key material is separate from structured profile settings and the primary actor selector is accurately named. ## Task Task: #task-bf6945b5 ## Changes - Adds migration `023_activitypub_actor_settings_model.sql` to split `activitypub_actors`, add `activitypub_actor_settings`, and replace `activitypub_settings` with `activitypub_primary_actor`. - Migrates supported legacy profile metadata fields into explicit columns without adding JSON text settings storage. - Updates actor read/write code to persist supported profile fields through structured columns. - Updates migration, actor, and admin settings tests. - Updates docs describing the actor identity/settings/primary-selector split. ## 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
fix: restructure activitypub actor settings
All checks were successful
CI / build-lint-test (pull_request) Successful in 47s
ea4034e742
Task: #task-bf6945b5
Author
Owner

PR Review

Summary

Reviewed PR #184 against task task-bf6945b5. The changes restructure ActivityPub actor storage into minimal actor identity, structured actor settings, and an accurately named primary actor selector. The implementation updates migration coverage, actor read/write behavior, admin settings persistence tests, and related docs.

Acceptance criteria

  • Known actor profile fields are migrated out of profile_metadata_json into explicit columns or another explicit normalized structure.
  • Actor read/write code no longer stores supported profile fields as serialized JSON text.
  • Existing supported actor data is migrated without data loss, including identity, keys, timestamps, primary selection, and supported profile fields.
  • activitypub_settings is replaced with the clearer activitypub_primary_actor model.
  • Tests cover migration/read/write behavior for existing actor profile data.
  • The implementation follows existing project conventions.

Blocking issues

None.

Warnings

None.

Verification

  • Local ./scripts/pre-pr.sh passed.
  • Forgejo Actions task #251 passed for commit ea4034e.

Verdict

Approved. Do not merge until explicit human merge approval is given.

## PR Review ### Summary Reviewed PR #184 against task `task-bf6945b5`. The changes restructure ActivityPub actor storage into minimal actor identity, structured actor settings, and an accurately named primary actor selector. The implementation updates migration coverage, actor read/write behavior, admin settings persistence tests, and related docs. ### Acceptance criteria - [x] Known actor profile fields are migrated out of `profile_metadata_json` into explicit columns or another explicit normalized structure. - [x] Actor read/write code no longer stores supported profile fields as serialized JSON text. - [x] Existing supported actor data is migrated without data loss, including identity, keys, timestamps, primary selection, and supported profile fields. - [x] `activitypub_settings` is replaced with the clearer `activitypub_primary_actor` model. - [x] Tests cover migration/read/write behavior for existing actor profile data. - [x] The implementation follows existing project conventions. ### Blocking issues None. ### Warnings None. ### Verification - Local `./scripts/pre-pr.sh` passed. - Forgejo Actions task `#251` passed for commit `ea4034e`. ### Verdict Approved. Do not merge until explicit human merge approval is given.
erik force-pushed fix/task-bf6945b5-actor-settings-model from ea4034e742
All checks were successful
CI / build-lint-test (pull_request) Successful in 47s
to c4f36552ad
All checks were successful
CI / build-lint-test (pull_request) Successful in 47s
2026-06-21 22:21:33 -05:00
Compare
Author
Owner

PR Review Update

Summary

Re-reviewed PR #184 after the amended commit c4f3655. The PR now also fixes ActivityPub actor document publishing for locally stored profile image settings: root-relative avatar/banner URLs such as /media/uploads/... are resolved against ACTIVITYPUB_PUBLIC_ORIGIN before being emitted as Person.icon and Person.image.

Acceptance criteria

  • Known actor profile fields are migrated out of profile_metadata_json into explicit columns or another explicit normalized structure.
  • Actor read/write code no longer stores supported profile fields as serialized JSON text.
  • Existing supported actor data is migrated without data loss, including identity, keys, timestamps, primary selection, and supported profile fields.
  • activitypub_settings is replaced with the clearer activitypub_primary_actor model.
  • Tests cover migration/read/write behavior for existing actor profile data and ActivityPub actor document publishing of local profile image settings.
  • The implementation follows existing project conventions.

Blocking issues

None.

Warnings

None.

Verification

  • Local ./scripts/pre-pr.sh passed.
  • Forgejo Actions task #252 passed for commit c4f3655.

Verdict

Approved. Do not merge until explicit human merge approval is given.

## PR Review Update ### Summary Re-reviewed PR #184 after the amended commit `c4f3655`. The PR now also fixes ActivityPub actor document publishing for locally stored profile image settings: root-relative avatar/banner URLs such as `/media/uploads/...` are resolved against `ACTIVITYPUB_PUBLIC_ORIGIN` before being emitted as `Person.icon` and `Person.image`. ### Acceptance criteria - [x] Known actor profile fields are migrated out of `profile_metadata_json` into explicit columns or another explicit normalized structure. - [x] Actor read/write code no longer stores supported profile fields as serialized JSON text. - [x] Existing supported actor data is migrated without data loss, including identity, keys, timestamps, primary selection, and supported profile fields. - [x] `activitypub_settings` is replaced with the clearer `activitypub_primary_actor` model. - [x] Tests cover migration/read/write behavior for existing actor profile data and ActivityPub actor document publishing of local profile image settings. - [x] The implementation follows existing project conventions. ### Blocking issues None. ### Warnings None. ### Verification - Local `./scripts/pre-pr.sh` passed. - Forgejo Actions task `#252` passed for commit `c4f3655`. ### Verdict Approved. Do not merge until explicit human merge approval is given.
erik merged commit 740be633e4 into main 2026-06-21 22:23:49 -05:00
erik deleted branch fix/task-bf6945b5-actor-settings-model 2026-06-21 22:23:49 -05:00
Sign in to join this conversation.
No description provided.