908789e639
fix: content negotiation for followers/following — resolve AP router conflict
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m28s
test / unit (pull_request) Failing after 11m39s
test / integration (pull_request) Failing after 17m5s
2026-05-14 21:42:38 +02:00
d5a116e483
feat(activitypub-base): impl actor_json port; return full user@domain handle from lookup
2026-05-14 20:47:41 +02:00
dbd891d60d
fix(activitypub-base): lookup_actor fetches WebFinger via HTTPS directly
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m40s
test / unit (pull_request) Successful in 16m33s
test / integration (pull_request) Failing after 17m33s
2026-05-14 20:25:14 +02:00
baf8b57b6d
fix(activitypub-base): strip leading @ from handle before WebFinger lookup
2026-05-14 20:16:00 +02:00
1d50b54227
fix(activitypub-base): use username as display_name in lookup_actor
2026-05-14 20:02:01 +02:00
fce819be7f
feat(activitypub-base): impl FederationActionPort for ActivityPubService
2026-05-14 19:59:19 +02:00
0e45707d7e
fix(postgres): persist and read avatar_url in remote_actor adapter
2026-05-14 19:57:13 +02:00
82f8772104
feat(domain): FederationActionPort trait + avatar_url on RemoteActor
2026-05-14 19:55:10 +02:00
8602614e7c
fix(ap): visibility-aware addressing — correct to/cc outbound, parse inbound to/cc
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m25s
test / unit (pull_request) Successful in 16m39s
test / integration (pull_request) Failing after 17m35s
2026-05-14 19:34:43 +02:00
a5ea97bbaa
fix: visibility-aware feeds — owner sees all, followers see followers-only, home feed includes non-public posts
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m44s
test / unit (pull_request) Successful in 16m12s
test / integration (pull_request) Failing after 16m59s
2026-05-14 18:18:42 +02:00
5c9acdecc1
fix(postgres): get_thread uses recursive CTE — fetches all nested replies not just direct ones
lint / lint (push) Has been cancelled
test / integration (push) Has been cancelled
test / unit (push) Has been cancelled
lint / lint (pull_request) Failing after 9m18s
test / unit (pull_request) Successful in 16m9s
test / integration (pull_request) Failing after 17m5s
2026-05-14 17:56:03 +02:00
12adddaa16
fix(nats): use explicit subject prefixes — WorkQueue retention disallows > wildcard
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m9s
test / unit (pull_request) Successful in 16m19s
test / integration (pull_request) Failing after 17m5s
2026-05-14 17:20:21 +02:00
d3b7ecad15
fix(ap): add url field to Note, handle Delete(actor) and Tombstone objects
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m12s
test / unit (pull_request) Successful in 15m52s
test / integration (pull_request) Failing after 17m10s
2026-05-14 16:47:17 +02:00
458feebcdd
feat(nats): migrate to JetStream — at-least-once delivery with durable consumer
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m25s
test / unit (pull_request) Successful in 15m53s
test / integration (pull_request) Failing after 16m42s
2026-05-14 16:41:17 +02:00
550865bad4
fix: resolve all clippy warnings — redundant closures, dead code, collapsible_if, needless borrow
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m25s
test / unit (pull_request) Successful in 16m57s
test / integration (pull_request) Failing after 17m29s
2026-05-14 16:33:34 +02:00
10c4a66de5
Refactor handlers and OpenAPI documentation for improved readability and consistency
...
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 6m49s
test / unit (pull_request) Successful in 16m24s
test / integration (pull_request) Failing after 17m7s
- Reorganized imports in health, notifications, social, thoughts, and users handlers for clarity.
- Updated function signatures in handlers to improve readability by aligning parameters.
- Enhanced JSON response formatting in notifications and thoughts handlers.
- Improved error handling in user-related functions.
- Refactored OpenAPI documentation to maintain consistent formatting and structure.
- Cleaned up unnecessary code and comments across various files.
- Ensured consistent use of `Arc` for shared state in AppState and WorkerHandlers.
2026-05-14 16:28:57 +02:00
004bfb427b
feat: implement merge readiness plan to close gaps between v2 and v1
...
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 5m8s
test / unit (pull_request) Successful in 16m18s
test / integration (pull_request) Failing after 16m59s
- Task 1: Fix feed response hydration by adding `to_thought_response` helper and updating feed handlers to return full `ThoughtResponse`.
- Task 2: Wire follower/following REST routes for user feeds.
- Task 3: Add user listing and count endpoints, including `GET /users` and `GET /users/count`.
- Task 4: Implement popular tags feature with `GET /tags/popular`.
- Task 5: Enhance configuration with HOST, CORS_ORIGINS, and optional rate limiting using tower-governor.
2026-05-14 16:28:18 +02:00
970f5a1644
fix: move user_feed to FeedRepository — proper counts and viewer flags for user timelines
2026-05-14 16:06:38 +02:00
ecba9267cf
fix: compute liked_by_viewer/boosted_by_viewer from DB — viewer_id was ignored in all feed queries
2026-05-14 16:03:55 +02:00
cc9658975f
fix: tag feed returns full FeedEntry with author and counts
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 5m2s
test / unit (pull_request) Successful in 16m3s
test / integration (pull_request) Failing after 16m59s
2026-05-14 15:43:02 +02:00
9b47779e63
feat: GET /tags/popular — top tags by usage count
2026-05-14 15:34:40 +02:00
eb7dbb0aee
feat: GET /users (search/list) and GET /users/count
2026-05-14 15:34:37 +02:00
ed744046f4
refactor(activitypub-base): eliminate double get_local_actor — extract thought_note_json, remove dead broadcast_to_followers methods
2026-05-14 14:36:54 +02:00
931894d77a
refactor(activitypub-base): extract accepted_follower_inboxes helper — eliminate 7x duplicated filtering
2026-05-14 14:23:38 +02:00
2485869af6
fix(activitypub-base): deterministic announce IDs so Undo(Announce) can reference original activity
2026-05-14 14:16:48 +02:00
b0b3c6a59b
feat: BoostRemoved → Undo(Announce) fan-out via OutboundFederationPort
2026-05-14 14:10:11 +02:00
057fc29abc
fix(activitypub-base): validate update Note id URL, add updated field to Update Notes
2026-05-14 13:50:05 +02:00
1fa8389a69
feat(activitypub-base): Announce broadcast + impl OutboundFederationPort for ActivityPubService
2026-05-14 13:46:31 +02:00
114d9f9558
fix(activitypub): re-export NoteType from activitypub-base, drop direct activitypub_federation dep
2026-05-14 12:51:47 +02:00
e995b29be1
refactor(nats): replace NatsEventConsumer with NatsMessageSource implementing MessageSource
2026-05-14 12:36:45 +02:00
c202eded05
feat(event-transport): MessageSource trait + EventConsumerAdapter for transport-agnostic consuming
2026-05-14 12:34:45 +02:00
f9ca5836fb
refactor: rename event-publisher → event-transport
2026-05-14 12:30:58 +02:00
cfc8c19175
refactor(nats): strip NatsEventPublisher, add NatsTransport implementing Transport
2026-05-14 12:22:11 +02:00
a684c922e0
feat(event-publisher): Transport trait + EventPublisherAdapter for transport-agnostic event routing
2026-05-14 12:20:29 +02:00
1127a5946f
feat: UserUnblocked + UserRegistered events, fix unblock_user and register signatures
2026-05-14 11:06:36 +02:00
4ae3af8086
refactor(activitypub): ThoughtsObjectHandler uses ActivityPubRepository port, drops postgres dep
2026-05-14 10:58:25 +02:00
e0b0a71f1d
feat(postgres): PgActivityPubRepository implementing ActivityPubRepository port
2026-05-14 10:55:58 +02:00
2080fec347
feat(activitypub): ThoughtNote AP object and ThoughtsObjectHandler
2026-05-14 10:23:35 +02:00
21b6a04f97
feat(postgres-federation): FederationRepository and ApUserRepository
2026-05-14 10:19:57 +02:00
ebc612a311
feat(activitypub-base): copy from movies-diary with username-based actor URLs
2026-05-14 10:15:34 +02:00
a0893b1c69
feat(nats): NatsEventPublisher and NatsEventConsumer with payload conversion
2026-05-14 09:54:50 +02:00
57232705fe
feat(event-payload): serializable NATS event payload types
2026-05-14 09:48:58 +02:00
4eeaea2a14
feat(postgres): upgrade FeedRepository search from ILIKE to pg_trgm
2026-05-14 09:28:02 +02:00
ebf0aaab58
feat(postgres-search): PgSearchRepository using pg_trgm
2026-05-14 09:26:36 +02:00
6e5d0de636
feat(postgres): pg_trgm extension and GIN search indexes
2026-05-14 09:21:59 +02:00
2b428b2b0a
feat(auth): JWT AuthService and Argon2 PasswordHasher
2026-05-14 03:47:08 +02:00
69608cfc75
feat(postgres): Tag, ApiKey, TopFriend, Notification, RemoteActor, Feed repos
2026-05-14 03:45:11 +02:00
02ce3a49b4
feat(postgres): LikeRepository, BoostRepository
2026-05-14 03:40:15 +02:00
1dab9ffbfb
feat(postgres): FollowRepository, BlockRepository
2026-05-14 03:38:20 +02:00
9dd04541ac
feat(postgres): ThoughtRepository
2026-05-14 03:35:39 +02:00