Repository navigation
social: the feed, posting, and publishing a note - #3
Conversation
Adds Rollout 2's in-app half: an identity, a published set, and a third tab to read it from. Two composers, deliberately. The note editor gains one menu item -- Share to the feed -- which confirms before it does anything; the feed's own composer states the handle and the word Public before a word is typed and writes nothing to the private library. Nothing on Notes or To-dos links into the feed, and the app still opens on Notes. A post is a note that was public from birth. `bornPublic` is the only structural difference between it and a note shared later, which buys posts threads, updates and the follow-through loop for free, and keeps them out of the notes list. Both go through one publish path. Feed order is reverse chronological on the thread's last activity, not on creation -- a six-week-old commitment coming back with "done" is the event worth showing, and `composeFeed` has nowhere to put a ranking signal. Safety ships with the first public row rather than later, per App Store 1.2: report, block (symmetric, and it unfollows), and a reports table with a queue index. No server yet. `db/social-repo.ts` is the seam -- every social read and write is one of its methods -- and `lib/social-seed.ts` stands in for other users until there is a real one. The Supabase migration is written and not yet applied; its RLS adds exactly one policy, "is this row public", with feed composition left in testable code. docs/product.md rules 1 and 3 forbade a compose-to-feed box; amended in this commit, with the structural guard they were protecting kept. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DRL4dVgg5oebLSTenQv2G
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (26)
📝 WalkthroughWalkthroughThe change adds a local social platform with feed composition, public note publishing, profiles, follows, likes, views, blocks, reports, and mobile screens for feed, posts, handles, and profiles. ChangesSocial platform
Estimated code review effort: 5 (Critical) | ~120 minutes Sequence Diagram(s)sequenceDiagram
participant Feed
participant SocialProvider
participant SocialRepo
participant FeedCard
Feed->>SocialProvider: request feed state and scope
SocialProvider->>SocialRepo: read mirrored feed items
SocialRepo-->>SocialProvider: return filtered social data
SocialProvider-->>Feed: provide composed feed
Feed->>FeedCard: render feed item
FeedCard->>SocialProvider: toggle like
SocialProvider->>SocialRepo: persist reaction
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Adds Rollout 2's in-app half: an identity, a published set, and a third tab to read it from.
Two composers, deliberately. The note editor gains one menu item -- Share to the feed -- which confirms before it does anything; the feed's own composer states the handle and the word Public before a word is typed and writes nothing to the private library. Nothing on Notes or To-dos links into the feed, and the app still opens on Notes.
A post is a note that was public from birth.
bornPublicis the only structural difference between it and a note shared later, which buys posts threads, updates and the follow-through loop for free, and keeps them out of the notes list. Both go through one publish path.Feed order is reverse chronological on the thread's last activity, not on creation -- a six-week-old commitment coming back with "done" is the event worth showing, and
composeFeedhas nowhere to put a ranking signal.Safety ships with the first public row rather than later, per App Store 1.2: report, block (symmetric, and it unfollows), and a reports table with a queue index.
No server yet.
db/social-repo.tsis the seam -- every social read and write is one of its methods -- andlib/social-seed.tsstands in for other users until there is a real one. The Supabase migration is written and not yet applied; its RLS adds exactly one policy, "is this row public", with feed composition left in testable code.docs/product.md rules 1 and 3 forbade a compose-to-feed box; amended in this commit, with the structural guard they were protecting kept.
Claude-Session: https://claude.ai/code/session_017DRL4dVgg5oebLSTenQv2G
Summary by CodeRabbit