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
79f1e63bb8
perf(feed): replace correlated subqueries with LEFT JOIN aggregations
...
lint / lint (push) Failing after 9m14s
test / unit (push) Successful in 16m3s
Feed queries ran 5 correlated subqueries per row (3 COUNT + 2 EXISTS
for engagement counts and viewer context). Replaced with LEFT JOIN
aggregations computed once per query. Adds migration 016 with indexes
on likes(thought_id), boosts(thought_id), thoughts(in_reply_to_id),
and compound viewer-context indexes — expected to drop ~3s queries to
<100ms on typical page sizes.
Also removes WebFinger from the footer (requires query params, zero
standalone value as a link).
2026-05-29 04:35:32 +02:00
fc806f82a4
feat: add Footer component with navigation links
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
2026-05-29 04:30:36 +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
5b4b747dd7
feat(federation): enrich RemoteActor with bio, banner, followers/following URLs
...
lint / lint (push) Failing after 9m25s
test / unit (push) Has been cancelled
Bumps k-ap to 0.3.1 which adds bio, banner_url, followers_url,
following_url, and also_known_as to RemoteActor. These are populated
from fetched actor JSON at follow/ingest time so followers and following
listings no longer return null profile fields.
Adds migration 015 for the new remote_actors columns, updates all JOIN
queries in postgres-federation to select and return the new fields, and
maps them through k_ap_actor_to_domain.
Also fixes clippy: remove empty line after doc comment in port.rs.
2026-05-29 04:07:52 +02:00
bd370776fe
refactor: simplify function signatures and improve code readability
lint / lint (push) Failing after 9m6s
test / unit (push) Has been cancelled
2026-05-29 03:47:29 +02:00
ecb61f9b8f
feat: add federation processed activities table and update dependencies
...
test / unit (push) Has been cancelled
lint / lint (push) Has been cancelled
- Created a new SQL migration to add the `federation_processed_activities` table with an index on `processed_at`.
- Updated dependencies in `Cargo.toml` files across `bootstrap` and `worker` crates, including version updates for `k-ap`.
- Enhanced the event publishing mechanism in the `factory.rs` file to include a new `KapPublisher` for handling federation events.
- Refactored the `build` function in `factory.rs` to accommodate the new event publisher and improve ActivityPub service initialization.
- Modified the worker's main loop to handle new federation event types and improved error handling for event processing.
Co-authored-by: Copilot <copilot@github.com >
2026-05-29 03:47:06 +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
4ab6da67c7
fix(frontend): fix instance badge overflow on narrow screens
2026-05-29 01:47:50 +02:00
dc75ac5f6c
fix(frontend): prevent handle overflow in instance badge row
2026-05-29 01:44:03 +02:00
b14b8592a2
fix(frontend): add instance badge to remote author movie diary cards
2026-05-29 01:42:43 +02:00
4db7194838
fix(frontend): wider search input on large and 2K screens
2026-05-29 01:40:11 +02:00
c94b42cba8
feat(frontend): add follow request explanation to remote user card
2026-05-29 01:37:57 +02:00
1ad6f8ae8f
feat(frontend): add fediverse handle format hints to search page
2026-05-29 01:36:53 +02:00
d76ff9dafb
feat(frontend): add fediverse handle widget to feed sidebar
2026-05-29 01:35:36 +02:00
522ee9c1b1
feat(frontend): add instance badge to remote author posts in feed
2026-05-29 01:34:12 +02:00
00996327fb
feat(frontend): add styled 404 and error pages
2026-05-29 01:20:32 +02:00
7ed639c9ea
fix(frontend): remove emojis from landing page feature cards and badges
2026-05-29 01:14:29 +02:00
3ad609a793
fix(frontend): de-AI landing page copy, remove em dashes and manifesto tone
2026-05-29 01:12:29 +02:00
9849bb4991
fix(frontend): prevent iOS Safari auto-zoom on input focus
2026-05-29 01:10:50 +02:00
2199e5c66d
fix(frontend): move search to header center on mobile, nav links in hamburger only
2026-05-29 01:08:57 +02:00
6e7bf05942
feat(frontend): add hamburger sheet menu for mobile nav
2026-05-29 01:07:27 +02:00
037217960e
fix(frontend): place scroll indicator directly below hero card in flow
2026-05-29 01:03:59 +02:00
44b3a6de60
fix(frontend): move scroll indicator inside hero section so it anchors correctly
2026-05-29 01:02:43 +02:00
1fd46f3f2a
feat(frontend): add animated scroll indicator to landing page hero
2026-05-29 01:01:29 +02:00
9c5d5518bb
fix(frontend): add blur overlay on landing page for better text contrast
2026-05-29 01:00:02 +02:00
95ea633e78
fix(frontend): restore background image on landing page by removing gradient override
2026-05-29 00:59:07 +02:00
a97507cc15
feat(frontend): replace inline LandingPage with new multi-section component
2026-05-29 00:56:28 +02:00
858faddda9
feat(frontend): add LandingPage server component with all 5 sections
2026-05-29 00:54:59 +02:00
ea3a32ccaf
feat(frontend): add LandingFeatures client component with scroll animation
2026-05-29 00:52:01 +02:00
8fad8eefa0
feat(frontend): add landing page CSS keyframes and utility classes
2026-05-29 00:50:44 +02:00
5a05968ae9
fix(frontend): rewrite FiltersSortingPanel with shadcn, correct styling, useTransition
2026-05-29 00:23:07 +02:00
8229285a2f
refactor(postgres): format FeedSqlBuilder for improved readability
2026-05-29 00:13:55 +02:00
145b07d636
refactor(postgres): introduce FeedSqlBuilder to consolidate SQL construction
2026-05-29 00:11:07 +02:00
7991aef47b
feat(frontend): wire FiltersSortingPanel into home feed with sort/filter params
2026-05-28 23:56:49 +02:00
ed6a4f9f72
feat(frontend): add FiltersSortingPanel client component
2026-05-28 23:55:04 +02:00
f815d71c32
feat(frontend): add FeedOptions type and update getFeed to support sort/filter params
2026-05-28 23:52:58 +02:00
0688ffe0ae
feat(backend): wire FeedRequest/FeedOptions sort+filter through all feed layers
2026-05-28 23:45:46 +02:00
95728302b7
feat(domain): add FeedSort, FeedFilter, FeedOptions, FeedRequest CQRS query types
2026-05-28 23:39:35 +02:00
4d00d856c1
feat: swap TopFriends for ProfileFriendsWidget on profile page
2026-05-28 22:54:13 +02:00
a279988d39
feat: add ProfileFriendsWidget with top-friends/all-friends conditional
2026-05-28 22:52:56 +02:00
2f56839938
feat: add AllFriendsCard component for local and remote friends
2026-05-28 22:50:50 +02:00
2ffdd5e269
feat: show Friends nav link only when logged in
2026-05-28 22:47:53 +02:00