feat(community): community feed — browse, publish, fork, mDNS discovery #78

Open
pyr0ball wants to merge 7 commits from feature/community into feature/meal-planner
Owner

Summary

  • Backend: Migration 026 (community_pseudonyms SQLite), KiwiCommunityStore subclassing cf-core SharedStore, 8 FastAPI endpoints (browse/publish/fork/delete/RSS/AP/local-feed), mDNS advertisement via zeroconf (opt-in per a11y audit), element snapshot computation (SFAH scores, allergen detection, dietary tags), ActivityPub JSON-LD scaffold, RSS 2.0 feed
  • Frontend: Pinia community store, CommunityFeedPanel with filter bar + load-more + fork toast, CommunityPostCard, PublishPlanModal (focus-trapped, inline pseudonym setup), Community tab added to MealPlanView
  • Tier gates: community_browse (Free), community_publish (Paid), community_fork_adapt (Paid/BYOK)
  • Fail-soft: All write paths degrade gracefully when COMMUNITY_DB_URL is unset; browse returns empty with a plain-language note

Dependencies

Blocked by Circuit-Forge/circuitforge-core#46 (community module) and Circuit-Forge/circuitforge-orch#37 (community PostgreSQL) — both on hold pending joint menagerie integration test. This PR can be reviewed now; merge after dependencies land.

Test Plan

  • 136 tests passing (35 new community tests added)
  • Verify community tab appears in MealPlanView after docker build
  • Verify GET /api/v1/community/posts returns empty list when COMMUNITY_DB_URL unset
  • Verify GET /api/v1/community/feed.rss returns valid XML
  • Set COMMUNITY_DB_URL and verify posts write/read against PostgreSQL
  • Verify mDNS does not advertise without user opt-in
## Summary - **Backend:** Migration 026 (community_pseudonyms SQLite), KiwiCommunityStore subclassing cf-core SharedStore, 8 FastAPI endpoints (browse/publish/fork/delete/RSS/AP/local-feed), mDNS advertisement via zeroconf (opt-in per a11y audit), element snapshot computation (SFAH scores, allergen detection, dietary tags), ActivityPub JSON-LD scaffold, RSS 2.0 feed - **Frontend:** Pinia community store, CommunityFeedPanel with filter bar + load-more + fork toast, CommunityPostCard, PublishPlanModal (focus-trapped, inline pseudonym setup), Community tab added to MealPlanView - **Tier gates:** `community_browse` (Free), `community_publish` (Paid), `community_fork_adapt` (Paid/BYOK) - **Fail-soft:** All write paths degrade gracefully when COMMUNITY_DB_URL is unset; browse returns empty with a plain-language note ## Dependencies Blocked by Circuit-Forge/circuitforge-core#46 (community module) and Circuit-Forge/circuitforge-orch#37 (community PostgreSQL) — both on hold pending joint menagerie integration test. This PR can be reviewed now; merge after dependencies land. ## Test Plan - [x] 136 tests passing (35 new community tests added) - [ ] Verify community tab appears in MealPlanView after docker build - [ ] Verify `GET /api/v1/community/posts` returns empty list when COMMUNITY_DB_URL unset - [ ] Verify `GET /api/v1/community/feed.rss` returns valid XML - [ ] Set COMMUNITY_DB_URL and verify posts write/read against PostgreSQL - [ ] Verify mDNS does not advertise without user opt-in
pyr0ball added 7 commits 2026-04-12 18:09:15 -07:00
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/community:feature/community
git checkout feature/community

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git checkout feature/meal-planner
git merge --no-ff feature/community
git checkout feature/community
git rebase feature/meal-planner
git checkout feature/meal-planner
git merge --ff-only feature/community
git checkout feature/community
git rebase feature/meal-planner
git checkout feature/meal-planner
git merge --no-ff feature/community
git checkout feature/meal-planner
git merge --squash feature/community
git checkout feature/meal-planner
git merge --ff-only feature/community
git checkout feature/meal-planner
git merge feature/community
git push origin feature/meal-planner
Sign in to join this conversation.
No description provided.