|
|
7b1e26fa9e
|
fix(ap): propagate sharedInbox through DbActor — was hardcoded None everywhere
|
2026-05-15 11:51:57 +02:00 |
|
|
|
bd1dd89f78
|
refactor(bootstrap): use ap_service.router() as single source of truth for AP routes
|
2026-05-15 11:47:37 +02:00 |
|
|
|
a8caca8df8
|
fix(bootstrap): register /inbox shared inbox route — was missing, Mastodon delivers deletes there
|
2026-05-15 11:45:46 +02:00 |
|
|
|
db1625dc0d
|
fix(ap): use Note id (not Create activity id) in CreateActivity::receive — fixes Delete sync
|
2026-05-15 10:58:13 +02:00 |
|
|
|
159a8ca43b
|
fix(ap): store avatar_url from fetched actor in remote_actors when following
|
2026-05-15 10:27:26 +02:00 |
|
|
|
cf6eec55da
|
fix(feed): append @domain to handle when remote_actors stored username-only handle (old data)
|
2026-05-15 10:17:13 +02:00 |
|
|
|
44e152783f
|
fix(feed): join remote_actors to get proper handle and avatar for remote authors
|
2026-05-15 10:09:14 +02:00 |
|
|
|
2a51241bb5
|
fix(ap): resolve parent ap_id for replies so inReplyTo is set on outbound Notes
|
2026-05-15 09:59:50 +02:00 |
|
|
|
f946239757
|
feat(api): expose replyToUrl in ThoughtResponse for remote reply context
|
2026-05-15 05:50:59 +02:00 |
|
|
|
90dbf76753
|
feat(feed): include remote following posts in home feed
|
2026-05-15 05:47:26 +02:00 |
|
|
|
6c83c193ed
|
feat(ap): @mention notification from inbound remote Notes
|
2026-05-15 05:44:10 +02:00 |
|
|
|
ca1ebc4b68
|
feat(ap): broadcast Update(Actor) when user updates their profile
|
2026-05-15 05:32:25 +02:00 |
|
|
|
d360e506db
|
feat(ap): handle Undo(Like) inbound activity
|
2026-05-15 05:28:52 +02:00 |
|
|
|
f008564c32
|
feat(ap): add hashtag tag array to outbound Notes
|
2026-05-15 05:26:56 +02:00 |
|
|
|
82f2a3aaa0
|
fix(ap): wrap outbound Note content in HTML paragraph tags
|
2026-05-15 05:25:20 +02:00 |
|
|
|
09bebf7dc9
|
fix: store in_reply_to on remote notes + use full handle in federation component links/actions
|
2026-05-15 05:09:44 +02:00 |
|
|
|
e04b08c202
|
feat(application): federate local likes + locality guard prevents remote boost re-broadcast
|
2026-05-15 04:58:38 +02:00 |
|
|
|
a7527c50be
|
feat(activitypub): implement on_like and on_announce_received in ThoughtsObjectHandler
|
2026-05-15 04:55:50 +02:00 |
|
|
|
e691b20a05
|
feat(activitypub-base): broadcast_like/undo_like + LikeActivity inbox handler
|
2026-05-15 04:52:03 +02:00 |
|
|
|
0cf34184d9
|
feat(activitypub-base): LikeActivity struct + on_like/on_announce_received trait methods
|
2026-05-15 04:49:20 +02:00 |
|
|
|
6d365dd3cf
|
feat(domain): add broadcast_like/broadcast_undo_like to OutboundFederationPort
|
2026-05-15 04:47:19 +02:00 |
|
|
|
2e3b81de17
|
fix: full fediverse handle display + follower count includes remote
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
test / unit (pull_request) Has been cancelled
test / integration (pull_request) Has been cancelled
|
2026-05-15 04:35:04 +02:00 |
|
|
|
a8fbfcf49e
|
feat(presentation): federation management endpoints
|
2026-05-15 04:10:36 +02:00 |
|
|
|
8c6e259133
|
feat(application): federation management use cases
|
2026-05-15 04:08:40 +02:00 |
|
|
|
75c1870891
|
feat(activitypub-base): implement federation management port methods
|
2026-05-15 04:05:31 +02:00 |
|
|
|
1b0bb911a0
|
feat(domain): add federation management methods to FederationActionPort
|
2026-05-15 03:35:58 +02:00 |
|
|
|
706d7389ed
|
refactor: replace inline find_by_id calls with get_user use case in presentation handlers
|
2026-05-15 03:14:09 +02:00 |
|
|
|
6e9b1596d8
|
refactor: move UUID/username routing to application use case — fix handler boundary leak
|
2026-05-15 03:12:52 +02:00 |
|
|
|
bbf6c97379
|
fix: UUID fallback in GET /users/{id} so AP actor URLs resolve for signature verification
|
2026-05-15 03:11:33 +02:00 |
|
|
|
b5427cab7d
|
fix: force HTTPS for WebFinger in follow/unfollow — library uses HTTP in debug mode
|
2026-05-15 03:03:51 +02:00 |
|
|
|
f7350847c5
|
fix: allow dots in usernames; BCrypt fallback in password verifier for v1 migrations
|
2026-05-15 02:56:18 +02:00 |
|
|
|
031a22514d
|
feat: implement remote unfollow — wire FederationActionPort through delete_follow handler
|
2026-05-15 02:46:24 +02:00 |
|
|
|
1a1ba3da63
|
refactor(domain): remove public_key/private_key from User model — managed by federation adapter
|
2026-05-15 02:06:06 +02:00 |
|
|
|
9757ebdabf
|
refactor(application): move local/remote follow routing out of presentation handler
|
2026-05-15 01:58:40 +02:00 |
|
|
|
344bcf34af
|
refactor(domain): move DB string conversions out of domain enums
|
2026-05-15 01:54:32 +02:00 |
|
|
|
27e94d64b0
|
fix: fetch_actor_urls_from_collection follows 'first' page link like outbox does
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
test / unit (pull_request) Has been cancelled
test / integration (pull_request) Has been cancelled
|
2026-05-15 01:18:28 +02:00 |
|
|
|
e3251b6928
|
fix: migrate thoughts.content VARCHAR(128) → TEXT to allow remote posts of any length
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m33s
test / unit (pull_request) Successful in 16m18s
test / integration (pull_request) Failing after 16m51s
|
2026-05-15 01:15:09 +02:00 |
|
|
|
83af9b2256
|
feat: show media attachment notice for unsupported post types (photos/videos)
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m20s
test / unit (pull_request) Successful in 16m15s
test / integration (pull_request) Failing after 17m1s
|
2026-05-15 01:12:44 +02:00 |
|
|
|
e83b08fcc8
|
fix: remote actor display names in thought cards — use last URL segment as username, resolve display_name after intern
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m13s
test / unit (pull_request) Successful in 15m56s
test / integration (pull_request) Failing after 17m29s
|
2026-05-15 01:04:42 +02:00 |
|
|
|
c536cc2cd4
|
feat(presentation): followers/following list endpoints for remote actors
|
2026-05-15 00:48:42 +02:00 |
|
|
|
38a13ad641
|
feat(worker): handle FetchActorConnections — resolve and cache remote actor connections
|
2026-05-15 00:40:34 +02:00 |
|
|
|
58126f195c
|
feat(activitypub-base): impl fetch_actor_urls_from_collection + resolve_actor_profiles (concurrent, 5s timeout)
|
2026-05-15 00:33:14 +02:00 |
|
|
|
d62dde67bb
|
feat(postgres): remote_actor_connections table + PgRemoteActorConnectionRepository
|
2026-05-15 00:29:33 +02:00 |
|
|
|
99dd89b60d
|
feat(domain): ActorConnectionSummary, ConnectionType, RemoteActorConnectionRepository, FetchActorConnections event
|
2026-05-15 00:25:54 +02:00 |
|
|
|
8b3dfffd3b
|
feat: followers/following links on remote profile; render remote post content as HTML
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m39s
test / unit (pull_request) Failing after 10m48s
test / integration (pull_request) Failing after 16m54s
|
2026-05-15 00:04:54 +02:00 |
|
|
|
fcfc1750fc
|
fix: truncate remote actor username to VARCHAR(32); fix outbox URL by following 'first' link
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m33s
test / unit (pull_request) Failing after 10m46s
test / integration (pull_request) Failing after 16m54s
|
2026-05-14 23:53:33 +02:00 |
|
|
|
4d2d56c8ae
|
fix(nats): revert to consumer.messages() — fetch() defaults no_wait:true which skips empty queues
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m21s
test / unit (pull_request) Failing after 10m57s
test / integration (pull_request) Failing after 16m44s
|
2026-05-14 23:34:51 +02:00 |
|
|
|
a4377fe209
|
fix(nats): remove filter_subject from consumer config
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (push) Has been cancelled
lint / lint (pull_request) Failing after 9m20s
test / unit (pull_request) Failing after 10m40s
test / integration (pull_request) Failing after 17m47s
|
2026-05-14 23:29:45 +02:00 |
|
|
|
16892007a3
|
fix(nats): use fetch().expires(30s) instead of messages() — without expires NATS returns empty immediately
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
test / integration (pull_request) Has been cancelled
test / unit (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
|
2026-05-14 23:25:01 +02:00 |
|
|
|
40ed9b1ad8
|
fix(nats): delete+recreate stream when retention policy is incompatible
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
test / unit (pull_request) Has been cancelled
test / integration (pull_request) Has been cancelled
|
2026-05-14 23:19:41 +02:00 |
|