Gabriel Kaszewski GKaszewski
GKaszewski pushed to master at GKaszewski/thoughts 2026-05-17 09:57:32 +00:00
9e795eefdc fix: make ThoughtNote url field optional for AP compat
18cf2c9f54 feat: implement verify() for all stub activity handlers
Compare 2 commits »
GKaszewski pushed to master at GKaszewski/thoughts 2026-05-17 09:50:09 +00:00
b58c96b843 feat: implement federation post/connections backfill schedulers
8ea24461ba feat: load more pagination for user profile thoughts
e14a9f90c8 fix: route local users to /users/{username} in remote connection lists
28756ef4cd feat: load more pagination for remote user posts
7f27ae49c3 fix: overflow-y scroll on html to prevent layout shift on dropdown open
Compare 8 commits »
GKaszewski pushed to master at GKaszewski/thoughts 2026-05-16 12:56:39 +00:00
32bfb00970 feat: Frutiger Aero redesign — glass panels, Aero shimmer, interaction moments
7ce2901c2a docs: add Frutiger Aero redesign implementation plan
8bbc713093 docs: add Frutiger Aero redesign spec
Compare 3 commits »
GKaszewski pushed to main at GKaszewski/gabrielkaszewski-next 2026-05-16 12:09:56 +00:00
07ec8f2ab1 feat: add canonical URL to metadata
3301c6cfa5 feat: add gabrielkaszewski.pl to traefik router
71b871ed5c docs: add dual-domain implementation plan
f9f26dc584 docs: add dual-domain design spec
Compare 4 commits »
GKaszewski pushed to master at GKaszewski/thoughts 2026-05-16 10:09:56 +00:00
a0aa3f381e refactor: extract inline test modules to separate files
GKaszewski pushed to master at GKaszewski/thoughts 2026-05-16 09:51:39 +00:00
6c685d19e8 docs: update README with new federation endpoints and environment variable details
GKaszewski deleted branch v2 from GKaszewski/thoughts 2026-05-16 09:42:46 +00:00
GKaszewski pushed to master at GKaszewski/thoughts 2026-05-16 09:42:45 +00:00
9aee4ceb6d feat: v2 rewrite — hexagonal arch, ActivityPub federation, NATS, deployment-ready (#1)
GKaszewski merged pull request GKaszewski/thoughts#1 2026-05-16 09:42:43 +00:00
feat: v2 rewrite — hexagonal arch, ActivityPub federation, NATS, deployment-ready
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-16 09:41:27 +00:00
0e76ca1895 clean up
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-16 09:37:44 +00:00
2754e3e820 chore(application): fix unused import and clippy warnings in thoughts use cases
4b1e7565ac feat(bootstrap): wire ApiKeyServiceImpl + PgEngagementRepository
5618da7d37 refactor(presentation): replace impl FromAppState boilerplate with deps_struct! macro in remaining handlers
e9f7851400 refactor(presentation/feed): call ports directly — remove shallow use case wrappers
d701a40e61 feat(presentation/thoughts): use enrichment use cases — real engagement stats, no hardcoded zeros
Compare 16 commits »
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-16 00:56:54 +00:00
65ec64a4d9 feat(activitypub): index hashtags from incoming federated notes
efa9bbc6e5 feat(bootstrap): inject TagRepository into ThoughtsObjectHandler
3907ee1538 feat(activitypub): index hashtags from incoming federated notes
98e96b306a fix(postgres): accept_note returns ThoughtId via SELECT after INSERT
0d43d0adb9 refactor(ap-ports): accept_note returns ThoughtId instead of ()
Compare 7 commits »
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-16 00:23:03 +00:00
78ee7b9388 feat: suspense boundaries, streaming sidebar, N+1 fix for top-friends
f135e4d583 feat(frontend): loading.tsx skeletons for feed, tags, search, and thread pages
42baf3fe3c perf(frontend): stream sidebar via Suspense — feed renders immediately; sidebar loads async
e86f07ef34 refactor(frontend): TopFriends self-contained — fetches own data, no N+1
98d3fdb832 feat(frontend): TagsSkeleton and CountSkeleton for sidebar Suspense fallbacks
Compare 23 commits »
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 16:58:53 +00:00
94ea7a287f clean up
GKaszewski pushed to v2 at GKaszewski/thoughts 2026-05-15 16:58:27 +00:00
511a09db25 chore: remove arch-refactors subproject
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