e61e5b4cec
fix: profile friends section shows profile owner's following list, not viewer's
lint / lint (push) Has been cancelled
test / integration (push) Has been cancelled
test / unit (push) Has been cancelled
lint / lint (pull_request) Failing after 9m46s
test / unit (pull_request) Successful in 16m32s
test / integration (pull_request) Failing after 17m49s
2026-05-14 18:08:50 +02:00
171cfe4373
fix: follow/block handlers accept username string — was parsing as UUID
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m38s
test / unit (pull_request) Successful in 16m13s
test / integration (pull_request) Failing after 17m31s
2026-05-14 18:03:16 +02:00
24bfda8458
feat: extract and save hashtags on thought creation
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m18s
test / unit (pull_request) Successful in 16m4s
test / integration (pull_request) Failing after 17m16s
2026-05-14 18:01:07 +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
255ff549a4
fix: getThoughtThread parses flat array and builds nested tree — backend returns Vec not nested object
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m51s
test / unit (pull_request) Successful in 16m52s
test / integration (pull_request) Failing after 17m6s
2026-05-14 17:52:52 +02:00
c67371231e
fix(thoughts): thought_to_json uses camelCase — POST/GET responses now match ThoughtSchema
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 16m22s
test / integration (pull_request) Failing after 17m18s
2026-05-14 17:49:22 +02:00
68261c4b2b
fix: include own thoughts in home feed
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m27s
test / unit (pull_request) Successful in 16m33s
test / integration (pull_request) Failing after 17m15s
2026-05-14 17:47:13 +02:00
057ed3ccbf
fix: joinedAt nullable in UserSchema, guard null in profile page
2026-05-14 17:45:01 +02:00
8ef3a300bc
fix(users): return camelCase from GET /users list — UserSummary was snake_case
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m34s
test / unit (pull_request) Successful in 16m5s
test / integration (pull_request) Failing after 18m6s
2026-05-14 17:44:59 +02:00
c8c430fe7f
fix: getUserProfile calls /users/{username}/profile to avoid AP route 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 9m13s
test / unit (pull_request) Successful in 15m54s
test / integration (pull_request) Failing after 18m39s
2026-05-14 17:39:20 +02:00
ec0e24db8d
fix: add GET /users/{username}/profile REST endpoint — AP actor owns /users/{username}
2026-05-14 17:39:19 +02:00
7cb6b94b08
fix: per_page not perPage in Zod schemas — raw serde_json keys are snake_case
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m36s
test / unit (pull_request) Successful in 17m6s
test / integration (pull_request) Failing after 17m0s
2026-05-14 17:32:39 +02:00
b95cebc799
fix: await searchParams and params for Next.js 15 async API, compute totalPages in all-users page
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m41s
test / unit (pull_request) Successful in 16m33s
test / integration (pull_request) Failing after 17m3s
2026-05-14 17:28:35 +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
44385adb6b
feat: update frontend to work with v2 backend — camelCase, new endpoints, nested author
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m38s
test / unit (pull_request) Successful in 16m2s
test / integration (pull_request) Failing after 17m2s
2026-05-14 17:14:27 +02:00
7110f30e16
fix: top-friends returns usernames not UUIDs
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 16m13s
test / integration (pull_request) Failing after 17m12s
2026-05-14 17:08:12 +02:00
aadd876994
feat: camelCase JSON responses, isFollowedByViewer, customCss, GET /users/me/following-list
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 9m15s
test / unit (pull_request) Successful in 16m3s
test / integration (pull_request) Failing after 17m19s
2026-05-14 17:04:42 +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
e6f4a6256f
refactor(application): fix 4 code smells — validate username input, extract ownership guard and dedup helpers
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 5m12s
test / unit (pull_request) Successful in 16m23s
test / integration (pull_request) Failing after 17m26s
2026-05-14 16:27:03 +02:00
dd7beb7ab4
chore: add compose.yml for local dev (postgres + nats)
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 5m9s
test / unit (pull_request) Successful in 16m14s
test / integration (pull_request) Failing after 17m3s
2026-05-14 16:22:16 +02:00
ddd9b17ed7
test(application): fill unit test gaps — api_keys, profile, auth, thoughts, social
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 5m7s
test / unit (pull_request) Successful in 16m2s
test / integration (pull_request) Failing after 16m57s
2026-05-14 16:19:35 +02:00
d50c13a2db
refactor: wrap direct port calls behind use cases — notifications, search, popular_tags
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 5m7s
test / unit (pull_request) Successful in 15m51s
test / integration (pull_request) Failing after 17m3s
2026-05-14 16:13:34 +02:00
004f3cd4d2
fix(arch): move AP router assembly to bootstrap — presentation no longer depends on activitypub-base
2026-05-14 16:09:21 +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
4890501512
chore: add deploy.sh — build amd64 image and push to registry
lint / lint (push) Has been cancelled
test / integration (push) Has been cancelled
test / unit (push) Has been cancelled
lint / lint (pull_request) Failing after 5m4s
test / unit (pull_request) Successful in 16m39s
test / integration (pull_request) Failing after 16m56s
2026-05-14 15:46:53 +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
38b4774a63
feat(bootstrap): configurable HOST, CORS_ORIGINS, and optional rate limiting
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 5m3s
test / unit (pull_request) Successful in 16m6s
test / integration (pull_request) Failing after 17m45s
2026-05-14 15:37:38 +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
a2cc4fba21
feat(presentation): wire GET /users/{username}/follower-list and /following-list
2026-05-14 15:34:33 +02:00
6eba91e699
fix(presentation): hydrate feed responses with full ThoughtResponse — remove UUID-only stubs
2026-05-14 15:31:44 +02:00
cf94b0ba6c
ci(test): split into unit (no DB) and integration (postgres) jobs
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
lint / lint (pull_request) Failing after 5m9s
test / unit (pull_request) Successful in 15m59s
test / integration (pull_request) Failing after 16m59s
2026-05-14 15:17:59 +02:00
057f10cb69
chore: Dockerfile, README, LICENSE, .env.example, CI workflows (lint/test/deploy)
lint / lint (push) Has been cancelled
test / test (push) Has been cancelled
lint / lint (pull_request) Failing after 5m3s
test / test (pull_request) Failing after 18m48s
2026-05-14 15:15:18 +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
eaf079069f
fix(application): gate federation broadcast on Public/Unlisted visibility only
2026-05-14 14:03:31 +02:00
a37c877172
chore(worker): remove stale dependencies after business logic migration
2026-05-14 13:59:45 +02:00
904916d4c1
refactor(worker): thin handlers + factory — move all business logic to application services
2026-05-14 13:57:14 +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
83e87e644b
test(application): document user-not-found silent-skip and locality guard in FederationEventService
2026-05-14 13:44:13 +02:00
13282fc88e
feat(application): FederationEventService — content fan-out business logic
2026-05-14 13:40:10 +02:00
10605bbf2f
test(application): add self_boost_creates_no_notification test
2026-05-14 13:37:29 +02:00