aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend
AgeCommit message (Collapse)Author
2026-02-14feat(feed): auto-discover feed URLs from HTML pagesnsfisis
When an HTML page is provided instead of a direct feed URL, parse <link rel="alternate"> tags to find RSS/Atom feeds. Atom is preferred over RSS when both are present. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14refactor: migrate API from GraphQL to REST (TypeSpec/OpenAPI)nsfisis
Replace the entire GraphQL stack (gqlgen, urql, graphql-codegen) with a TypeSpec → OpenAPI 3.x pipeline using oapi-codegen for Go server stubs and openapi-fetch + openapi-typescript for the frontend client. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13feat: add feed sidebar and cursor-based paginationnsfisis
Add a feed sidebar to /unread and /read pages for filtering articles by feed, and replace the fixed 100-article limit with cursor-based pagination using a "Load more" button. Backend: - Add PageInfo, ArticleConnection types and pagination args to GraphQL - Replace GetUnreadArticles/GetReadArticles with parameterized queries - Add GetFeedUnreadCounts query and composite index - Add shared pagination helper in resolver Frontend: - Add FeedSidebar component with unread count badges - Add usePaginatedArticles hook for cursor-based fetching - Update ArticleList with Load more button and single-feed mode - Use ?feed=<id> query parameter for feed filtering Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-01refactor: extract feed fetch and sync logic into shared feed packagensfisis
Consolidate duplicated feed fetching and article syncing code from AddFeed resolver and fetchOneFeed into reusable feed.Fetch and feed.Sync functions. This unifies behavior (10s timeout, article updates) across both call sites. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12refactor: remove unused GetAllArticleGUIDs queryClaude
2026-01-12refactor: deduplicate articles at insertion time instead of query timeClaude
Change deduplication strategy from query-time (ROW_NUMBER window function) to insertion-time (global guid check before insert). Benefits: - Simpler queries without CTE/window functions - Consistent read state (no duplicate articles to manage) - Better query performance (no per-query deduplication overhead) Changes: - Add CheckArticleExistsByGUID query for global guid lookup - Add migration to remove existing duplicate articles - Modify fetchOneFeed and AddFeed to skip duplicates on insert - Revert GetUnreadArticles/GetReadArticles to simple queries
2026-01-12feat: deduplicate feed items by guidClaude
Use ROW_NUMBER() window function to filter out duplicate articles with the same guid across different feeds. This ensures each guid appears only once in unread/read article lists. - Add idx_articles_guid index for PARTITION BY performance - Modify GetUnreadArticles and GetReadArticles queries with CTE
2025-12-07refactor(graphql): change directory structurensfisis
2025-12-04refactor(backend): move cmd_*.go to cmd packagev0.4.3nsfisis
2025-12-04refactor(backend): move middleware.go to auth packagensfisis
2025-11-28refactor(backend): Move config.go to separate packagensfisis
2025-11-08refactor(backend): Centralize environment variable loading in config.gonsfisis
2025-11-08feat: Support multi-usernsfisis
2025-10-27feat(backend): Make feeds.user_id column non-nullnsfisis
2025-10-27refactor(backend): split main.gov0.3.4nsfisis
2025-10-27feat(backend): create-user commandnsfisis
2025-10-27feat(backend): Create users tablensfisis
2025-07-13chore: update justfilesnsfisis
2025-07-13feat(backend): change db file pathnsfisis
2025-07-13feat(backend): implement db schema migrationv0.2.0nsfisis
2025-07-13feat(container): fix Docker buildnsfisis
2025-07-12feat(backend,frontend): add feature to unsubscribe feednsfisis
2025-07-12feat(backend): introduce sqlcnsfisis
2025-07-12fix(backend): fix incorrect parsing of feeds.fetched_at columnnsfisis
2025-07-11feat(frontend): move favicon to frontend/nsfisis
2025-07-11feat(backend): remove REST API endpointsnsfisis
2025-07-11feat(backend): implement graceful shutdownnsfisis
2025-07-11feat(backend): implement GraphQL resolversnsfisis
2025-07-11feat(backend): add justfile for backendnsfisis
2025-07-11feat(backend): add GraphQL boilerplate codensfisis
2025-06-23refactor: change directory structurensfisis