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
f9de21dcfa
refactor(tests): remove unused value_objects imports from test files
lint / lint (push) Failing after 9m20s
test / unit (push) Successful in 16m13s
2026-05-29 10:18:18 +02:00
bcd86fbfe7
refactor: extract handler business logic into application use cases
...
test / unit (push) Has been cancelled
lint / lint (push) Has been cancelled
11 handlers were calling repos/ports directly, bypassing the
application layer. Extracted into proper use cases:
feed: get_public_feed, get_user_feed, get_tag_feed, get_popular_tags
profile: get_user_profile (with follow check), list_users,
count_local_users, list_local_followers, list_local_following
federation_management: set_also_known_as
Also registers 9 previously undocumented handlers in OpenAPI modules.
2026-05-29 04:22:43 +02:00
37d03a06dd
docs(openapi): fix schema registration for federation actors and management
lint / lint (push) Failing after 8m56s
test / unit (push) Successful in 16m29s
2026-05-29 02:09:16 +02:00
55e5bcc2bb
docs(openapi): register federation management and actors doc modules
2026-05-29 02:08:08 +02:00
ac26eaca6b
docs(openapi): annotate federation actors handlers and add doc module
2026-05-29 02:06:40 +02:00
86d0497509
docs(openapi): annotate all federation management handlers and add doc module
2026-05-29 02:04:59 +02:00
989004dd74
docs(openapi): annotate all missing user handlers
2026-05-29 02:02:31 +02:00
64cc11c2a1
docs(openapi): annotate get_followers, get_following, get_popular_tags handlers
2026-05-29 02:00:53 +02:00
01ef118b0a
docs(openapi): add FeedOptionsQuery IntoParams and update feed annotations
2026-05-29 01:59:17 +02:00
0688ffe0ae
feat(backend): wire FeedRequest/FeedOptions sort+filter through all feed layers
2026-05-28 23:45:46 +02:00
e406464f9f
feat(presentation): add GET /federation/me/friends handler and route
lint / lint (push) Failing after 9m24s
test / unit (push) Successful in 16m41s
2026-05-28 03:48:59 +02:00
0e2b72b77a
feat(presentation): add GET /users/me/friends handler and route
2026-05-28 03:46:52 +02:00
af5c4481b6
fix: extract initiate_actor_move use case — remove event publish from handler
2026-05-28 02:41:42 +02:00
915163aac4
feat: split accept/reject into DB+event; broadcast_move via event in API
2026-05-28 02:32:50 +02:00
2445cad1c9
feat: add PATCH /federation/me/also-known-as endpoint
...
Adds alsoKnownAs column to users table (migration 013), reads it in
the AP actor JSON, and exposes PATCH /federation/me/also-known-as to
set or clear it. Required pre-condition for broadcast_move.
2026-05-28 01:59:35 +02:00
50a90efbce
feat: add POST /federation/me/move endpoint
2026-05-28 01:47:29 +02:00
5097c91261
feat: store AP note extensions in JSONB and render movies-diary posts as rich cards
2026-05-24 04:29:04 +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
d813e59b5c
fmt
2026-05-17 12:04:51 +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
9aee4ceb6d
feat: v2 rewrite — hexagonal arch, ActivityPub federation, NATS, deployment-ready ( #1 )
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
2026-05-16 09:42:40 +00:00