Gabriel Kaszewski GKaszewski
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 16:55:52 +00:00
0592861edd refactor: 5 architectural improvements (Tasks 2-5 + Task 6 fix)
6024a65060 feat(infra): transactional outbox — OutboxWriter port, PgOutboxWriter, OutboxRelay, TestOutbox; update create_thought + delete_thought
15b1d0fdb7 fix(db): map 23505 unique_violation to DomainError::Conflict (→ HTTP 409); close TOCTOU on register save
Compare 3 commits »
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 14:31:29 +00:00
a02ae3e662 fix(db): in_reply_to_id FK ON DELETE SET NULL — deleting a thought no longer blocks if it has replies
e43d784c39 feat(worker): DLQ processor — exhausted events moved to failed_events with exponential retry
c092b9e658 feat(postgres): failed_events table and PgFailedEventStore for dead-letter queue
340886fcfe fix(nats): explicit consumer config, ack timeouts, unknown-event acking, delivery_count
75e8d349e3 fix(auth): validate JWT secret length, equalize login timing, reduce TTL to 24h
Compare 7 commits »
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 13:49:50 +00:00
fd9e526b81 fix(search): use to_thought_response in search handler — was returning snake_case partial data
6dd4e3366c fix(search): viewer-aware SQL in search_thoughts — ViewerContext now real instead of hardcoded false
48b57abf92 refactor(adapters): update FeedEntry construction to use EngagementStats + ViewerContext
686dc1c91a refactor(domain): FeedEntry — EngagementStats + Option<ViewerContext> sub-structs
693f53b4b6 docs: FeedEntry decoupling implementation plan
Compare 17 commits »
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 10:52:48 +00:00
711b3ec63b fix(ap): protocol compliance — actor verification, on_unlike, Move, bto/bcc
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 10:31:32 +00:00
314dad5451 Refactor database error handling across repositories to use IntoDbResult for improved error management
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 10:08:52 +00:00
a040a38036 fix(service): remove unused followers and following route handlers
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 10:04:09 +00:00
6273635aeb feat: implement unread notification count and enhance user listing with pagination
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 09:52:57 +00:00
5f61a71336 test(activitypub): add missing argument to test case for clarity
7b1e26fa9e fix(ap): propagate sharedInbox through DbActor — was hardcoded None everywhere
bd1dd89f78 refactor(bootstrap): use ap_service.router() as single source of truth for AP routes
a8caca8df8 fix(bootstrap): register /inbox shared inbox route — was missing, Mastodon delivers deletes there
296dfdaeee fix(frontend): key RemoteUserProfile and Tabs by actor/user id to reset state on navigation
Compare 28 commits »
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 02:45:14 +00:00
2e3b81de17 fix: full fediverse handle display + follower count includes remote
4342a06319 clean up
d88eb5d127 feat(frontend): show @handle and link to profile in federation actor lists
d98c338e52 fix(frontend): unify local+remote followers/following — profile tab becomes Requests only
895b892cf2 feat(frontend): proper pagination with page numbers and ellipsis
Compare 19 commits »
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 01:20:39 +00:00
f7ac6f6476 feat(dependencies): add bcrypt, blowfish, cipher, and inout packages to Cargo.lock
9976c1481a feat(frontend): show precise date on hover over relative timestamps
e6b351b472 feat(frontend): show fediverse handle @user@domain on local user profiles
706d7389ed refactor: replace inline find_by_id calls with get_user use case in presentation handlers
6e9b1596d8 refactor: move UUID/username routing to application use case — fix handler boundary leak
Compare 8 commits »
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 00:48:39 +00:00
555bcea307 fix: correct API_URL default value in deploy script
031a22514d feat: implement remote unfollow — wire FederationActionPort through delete_follow handler
Compare 2 commits »
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 00:20:13 +00:00
eebdbeaaf2 chore: use shared-services network for NATS, hardcode URL to match homeserver
f387be43fb chore: replace nginx proxy with direct Traefik routing on two domains
1a1ba3da63 refactor(domain): remove public_key/private_key from User model — managed by federation adapter
9757ebdabf refactor(application): move local/remote follow routing out of presentation handler
344bcf34af refactor(domain): move DB string conversions out of domain enums
Compare 5 commits »
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-14 23:39:02 +00:00
a123c0b8cc feat(frontend): rich OG metadata + dynamic page titles across all routes
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-14 23:33:45 +00:00
71a0f55c93 chore: deploy workflow is manual-only (workflow_dispatch)
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-14 23:32:12 +00:00
e1bb7dde1f chore: update compose.prod.yml (worker+nats external), CI builds frontend, deprecate thoughts-backend
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-14 23:27:09 +00:00
61c82d77ba chore: deploy.sh builds and pushes both backend and frontend images
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-14 23:26:26 +00:00
b2d6be90c2 chore: update README, Dockerfile, compose.yml — add frontend/worker services, SSR env var, feature list
4cd94b3c7f clean up
Compare 2 commits »
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-14 23:24:34 +00:00
0734ef20c6 chore: stop tracking .env (already in .gitignore)
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-14 23:23:21 +00:00
32161e777b docs: movies-diary first-class integration design notes
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-14 23:18:34 +00:00
27e94d64b0 fix: fetch_actor_urls_from_collection follows 'first' page link like outbox does