|
|
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 |
|
|
|
4b8d1027c1
|
feat(domain): models
|
2026-05-14 03:18:49 +02:00 |
|
|
|
94a3f414e4
|
feat(domain): errors and value objects
|
2026-05-14 03:16:22 +02:00 |
|
|
|
63a7001165
|
chore: scaffold v2 workspace
|
2026-05-14 03:07:45 +02:00 |
|
|
|
321571aae9
|
docs: v2 Plan 1 implementation plan (core)
|
2026-05-14 03:03:02 +02:00 |
|