|
|
84edf58de6
|
fix(federation): fix 27 AP bugs, gaps, and inconsistencies
lint / lint (push) Failing after 9m26s
test / unit (push) Successful in 16m3s
Round 1 — 18 bug fixes:
- remote likes/boosts now persist in engagement tables
- intern_remote_actor uses name@domain, expanded username to VARCHAR(255)
- PgRemoteActorRepository upsert/find now handles all fields
- update_following_status no longer a no-op, count_followers counts all
- accept/reject follow publishes event before DB mark (atomicity)
- fetch_outbox_page follows pagination via next links
- actor URL canonicalized to /users/{uuid}
- content_to_html escapes single quotes
- WebFinger accepts application/ld+json type
- try_from_ap accepts Article and Page object types
- feed SQL uses parameterized viewer UUID instead of format!
- content cap raised from 500 to 5000 chars
- also_known_as changed from Option<String> to Vec<String>
- connections fetch always triggers from page 1
Round 2 — 9 gap fixes:
- on_announce_removed handler deletes boost row on Undo(Announce)
- on_update handles Person/Service/Group actor profile updates
- sync_remote_actor_to_user syncs remote_actors → users on create/update
- FederationBlockPort: block_by_username sends Block activity to remote
- domain RemoteActor gains inbox_url, shared_inbox_url fields
- remote_actors attachment column (JSONB) with read/write
- .well-known/host-meta endpoint
- 256KB body limit on AP inbox routes
- outbox cleanup job (7-day retention, hourly sweep)
|
2026-05-29 11:28:40 +02:00 |
|
|
|
f6893b19dc
|
feat: update dependencies to k-ap v0.1.7 and add profileHref utility for user links
|
2026-05-27 23:38:14 +02:00 |
|
|
|
01932cf337
|
feat: add image upload for avatar and banner
|
2026-05-24 02:06:47 +02:00 |
|
|
|
6936b7ce62
|
chore: switch activitypub-base to k-ap git dep
|
2026-05-17 22:47:32 +02:00 |
|
|
|
d56d34cc27
|
refactor: replace long arg lists with input/config structs and builder
- Thought::new_local → NewThought struct (7 args → 1)
- UserWriter::update_profile → UpdateProfileInput struct (6 args → 2)
- update_profile use case → UpdateProfileInput (8 args → 3)
- ActivityPubService::new → builder pattern (9 args → 5 required + 4 optional setters)
- accept_note → AcceptNoteInput struct (8 args → 1)
- ThoughtNote::new_public → ThoughtNoteInput struct (8 args → 1)
Remove all #[allow(clippy::too_many_arguments)] annotations.
|
2026-05-17 12:25:53 +02:00 |
|
|
|
54910c6459
|
fix: make ThoughtNote sensitive field optional (default false)
|
2026-05-17 12:02:58 +02:00 |
|
|
|
2c34eb44e4
|
fix: make ThoughtNote url field optional for AP compat
|
2026-05-17 11:57:10 +02:00 |
|
|
|
a0aa3f381e
|
refactor: extract inline test modules to separate files
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
|
2026-05-16 12:08:38 +02:00 |
|