Skip to content

Release: feed controls (listserv-first ranking, sort, follow/hide orgs) - #59

Merged
DIodide merged 13 commits into
mainfrom
staging
Sep 28, 2026
Merged

DIodide merged 13 commits into
mainfrom
staging

Conversation

@DIodide

@DIodide DIodide commented Sep 28, 2026

Copy link
Copy Markdown
Member

DIodide and others added 13 commits September 28, 2026 04:43
blockOrg / unblockOrg / getBlockedOrgs server actions (zod-validated,
rate-limited, idempotent). Hiding unfollows and following unhides, each in
one transaction. notFromHiddenOrg() filters hidden orgs from the map and org
suggestions; getOrg/getOrgs expose isHidden.
- For you: +2.5 x source quality (announced on a listserv: min(1, log2(1+n)/2);
  unannounced MyPrincetonU listing: -0.3; Forum-created: +0.2). Org affinity
  weight 1 -> 4 so followed orgs reach the first pages; diversity cap kept.
- Sorts: foryou | soonest | recent (coalesce(announced_at, created_at) desc),
  validated with zod; same candidate set for every sort.
- Hidden orgs excluded from candidates in every sort, similar events and
  friends' activity. Pinned asOf snapshots follows/hides/new events so
  pagination is stable; orgs hidden since asOf drop out without shifting.
- FeedPage returns nextOffset/remaining; event detail exposes follow/hidden.
- Unit tests for scoring/sorts; DB-backed test for hides, sorts, paging.
- docs/ranking.md updated.
A ⋯ menu (shadcn DropdownMenu) with Follow/Unfollow <Org> and Hide events
from <Org>, shown only for events with an org. Hiding shows a sonner toast
with Undo (restoring a follow the hide removed).
…hide from cards

Sort sits beside the Cards/List toggle, lives in ?sort= (zod-validated on the
server) and is remembered per browser. Pagination uses the server's
nextOffset/remaining with asOf, per sort. Hiding an org drops its cards at once
and re-reads the counts; following updates every card from that org.
Org page keeps Follow primary and adds a secondary menu (Hide from my feed /
Show in my feed) plus a slim notice with Undo while hidden. The Orgs page gets a
Hidden chip (shown once something is hidden, /orgs?view=hidden) listing hidden
orgs with Unhide; hidden orgs are marked in the main list.
The standalone per-event hide icon is gone from cards and list rows. The ⋯
menu is on every feed card: Not interested in this event (same stub + Unhide,
now with an Undo toast), then Follow/Unfollow and Hide events from the org
when there is one.
A display name equal to the NetID (new accounts) or empty counts as no name.
Home reads it from the database, since the session name is captured at
sign-in and stays the NetID after onboarding. Onboarding's completion line
follows the same rule.
Feed controls: hoist listserv-announced events, sort options, follow/hide orgs
@DIodide
DIodide merged commit 917e577 into main Sep 28, 2026
5 checks passed
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