Commit Graph

354 Commits

Author SHA1 Message Date
42d3dbd251 docs: event-publisher transport abstraction plan 2026-05-14 12:18:41 +02:00
c072ee95cd refactor(presentation): pure HTTP library — remove concrete adapter deps and binary 2026-05-14 12:07:18 +02:00
0c7a6fe9be feat(bootstrap): composition root with Config + factory.rs 2026-05-14 12:05:00 +02:00
53185efe5e docs: bootstrap factory implementation plan 2026-05-14 12:00:20 +02:00
1866eef770 feat(presentation): OpenAPI docs at /docs (Swagger) and /scalar 2026-05-14 11:41:12 +02:00
137d1a0c6a feat(presentation): add utoipa::path annotations to all handlers 2026-05-14 11:34:02 +02:00
4f990afe5e feat(api-types): add utoipa ToSchema and IntoParams derives 2026-05-14 11:30:11 +02:00
fb8c75af72 docs: OpenAPI documentation implementation plan 2026-05-14 11:27:43 +02:00
2524440fe4 feat(presentation): GET /health endpoint 2026-05-14 11:21:58 +02:00
6082766935 feat(presentation): GET /users/me, GET /users/{username}/thoughts, GET /tags/{name} 2026-05-14 11:20:48 +02:00
e408a53136 docs: v1 parity gaps implementation plan 2026-05-14 11:19:29 +02:00
68fe8624cd feat(worker): Reply notification when ThoughtCreated has in_reply_to_id 2026-05-14 11:08:30 +02:00
1127a5946f feat: UserUnblocked + UserRegistered events, fix unblock_user and register signatures 2026-05-14 11:06:36 +02:00
f0b87311e3 docs: audit gap fixes implementation plan 2026-05-14 11:03:36 +02:00
ea14035062 fix: wire PgActivityPubRepository into ThoughtsObjectHandler — closes activitypub→postgres violation 2026-05-14 10:59:43 +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
5f8e96b9be feat(domain): ActivityPubRepository port with federation vocabulary 2026-05-14 10:52:35 +02:00
54bd1c193b docs: ActivityPubRepository port implementation plan 2026-05-14 10:50:06 +02:00
e0a27c99a4 feat(presentation): ActivityPub routes — WebFinger, NodeInfo, inbox, outbox 2026-05-14 10:28:22 +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
c9b389a00c docs: v2 Plan 4 federation implementation plan 2026-05-14 10:10:36 +02:00
3318635da6 feat(presentation): NatsEventPublisher with no-op fallback when NATS_URL unset 2026-05-14 10:00:39 +02:00
2e702c64cc feat(worker): consumer loop binary connecting NATS to handlers 2026-05-14 09:58:33 +02:00
2cee884fe1 feat(worker): NotificationHandler and FederationHandler stub 2026-05-14 09:58:31 +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
02de6b6f83 docs: v2 Plan 3 events+worker implementation plan 2026-05-14 09:45:57 +02:00
b599047d98 feat(presentation): wire SearchPort, /search returns thoughts + users 2026-05-14 09:38:02 +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
a3534317de feat(domain): SearchPort trait with thought and user search 2026-05-14 09:23:22 +02:00
6e5d0de636 feat(postgres): pg_trgm extension and GIN search indexes 2026-05-14 09:21:59 +02:00
bfe6db2215 docs: v2 Plan 2 search implementation plan 2026-05-14 09:19:52 +02:00
f75e796faf fix: align follow event with accepted state; redact internal error details 2026-05-14 04:10:27 +02:00
c5d262c68f feat(presentation): routes and main — Plan 1 complete 2026-05-14 04:06:17 +02:00
38106ecdb6 feat(presentation): all handlers 2026-05-14 04:00:04 +02:00
fb39ea2469 feat(presentation): state, errors, extractors, auth and user handlers 2026-05-14 03:56:42 +02:00
adc2102927 feat(application): all use cases 2026-05-14 03:52:36 +02:00
134ecdcfb4 feat(api-types): request and response DTOs 2026-05-14 03:48:16 +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
fe9655ee96 feat(postgres): UserRepository 2026-05-14 03:32:56 +02:00
62ee73e302 feat(postgres): initial migrations 2026-05-14 03:26:42 +02:00
80b656341d feat(domain): ports, events, test helpers 2026-05-14 03:23:42 +02:00