Skip to content

feat: Quotes tab + Search tab on the Feed engine; retire the blog layer - #235

Open
danieltmbr wants to merge 1 commit into
feature/feed-blog-tabfrom
feature/feed-quotes-tab
Open

feat: Quotes tab + Search tab on the Feed engine; retire the blog layer#235
danieltmbr wants to merge 1 commit into
feature/feed-blog-tabfrom
feature/feed-quotes-tab

Conversation

@danieltmbr

Copy link
Copy Markdown
Owner

Summary

Stack 3/4 (on #234). Quotes adopts the BlogTab pattern wholesale; SearchTab migrates with it, which lets the old blog layer retire.

  • QuotesList mirrors PostsList: one QuotesQuery drives the @Query predicate (QuoteRecord.quotes), the network fetch, and the re-fetch trigger; view-owned FeedPage state; row-driven frontier paging; pull-to-refresh + paging in browse and search alike
  • Quote browse feeds from GET /api/quotes directly (paged, server-filtered by languages + sources) — the catalogue/blog piggyback refresh is gone, and browse gains pagination
  • QuotesModel slims to the source filter — search/paging state lives in the feed
  • SearchTab fires all three feeds with typed inputs, each superseding its own in-flight request — no view debounce
  • Old blog layer deleted (BlogModel, actions, env keys, cells): its last consumers migrated here

Verification

  • swift test --package-path app-core — 49 tests green (old BlogModel suite retired with the model)
  • Reader scheme builds (macOS)

🤖 Generated with Claude Code

QuotesList mirrors PostsList: one QuotesQuery drives the local @query predicate
(QuoteRecord.quotes), the network fetch, and the re-fetch trigger; view-owned
FeedPage paging state; row-driven frontier paging; pull-to-refresh and paging
in browse and search alike.

- Quote browse now feeds from GET /api/quotes directly (paged, server-filtered
  by languages + sources) — the catalogue/blog piggyback refresh is gone, and
  browse gains pagination
- QuotesModel slims to the source filter; search/paging state lives in the feed
- SearchTab fires all three feeds with typed inputs (posts/quotes/catalogue
  search), superseding per feed — no view debounce
- The old blog layer (BlogModel, actions, env keys, cells) is deleted: its last
  consumers (the quotes piggyback and SearchTab) migrated here

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant