Skip to content

Remove engagement layer app-side (issue #85)#86

Merged
harshitsinghbhandari merged 12 commits into
mainfrom
remove-engagement-app
Jul 18, 2026
Merged

Remove engagement layer app-side (issue #85)#86
harshitsinghbhandari merged 12 commits into
mainfrom
remove-engagement-app

Conversation

@harshitsinghbhandari

Copy link
Copy Markdown
Member

Summary

App-side removal of the engagement layer (part of #85). Comments, likes, bookmarks, follows, view counts, and the heat/trending/For-You feed are deleted; the home page now always renders the reverse-chronological Latest feed via the anon client, sidebar rails are recency-ranked, and moderation is narrowed to post/user report targets.

The DB schema is intentionally untouched here: no app code reads or writes any engagement table, count column, or RPC anymore (grep-verified), so this deploys safely against the current schema. The schema drop follows in the stacked migration PR, which must merge and be applied only after this deploys.

Verification

  • pnpm typecheck, pnpm test (1047 tests), and pnpm build all green
  • Every task passed an independent spec + quality review with fix rounds; final whole-branch review passed
  • e2e specs updated textually but not executed in this workflow

🤖 Generated with Claude Code

harshitsinghbhandari and others added 12 commits July 18, 2026 19:59
Delete the comments feature end to end: API routes, UI components,
lib/comments helpers, and their tests. Strip the comment branches from
report/moderation code (reports schema, report creation, admin report
list and page, ReportActions, RestoreButton, audit page target-type
options) and drop the now-unused `comment` rate-limit bucket. Post and
user reports keep working; posts.comment_count display is left alone
for a later task per the plan.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Everyone gets the reverse-chronological feed the anon path already
rendered; the personalized For-You feed and all heat-score ranking
(lib/heat.ts, shortlist/rerank/affinity, trending tags/feed/strip,
/trending) are gone. Sidebar top-by-type rails switch from heat-score
to published_at recency and get retitled "Recent playbooks" / "Recent
deep dives". Like/bookmark/comment counts stay wired through for now;
Task 3 strips those.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… (issue #85)

- Capture .order() call arguments in test mock (orderArgs array) and assert
  the recency test verifies .order was called with 'published_at' and
  { ascending: false }; the suite can now detect dropped or reversed sorts.
- Remove unused 'hash' icon from RailIconName union and ICON_PATHS, leftover
  from deleted TrendingTagsRail component.
- Update .rail-heading CSS comment to reference only surviving consumers:
  TopByType (playbooks and deep dives) and FeaturedTagsFallback (featured
  topics).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Delete the likes/bookmarks routes, buttons, list page, and engagement
lookup, and strip like_count/bookmark_count/comment_count out of every
UI surface that displayed them: PostCard, the post detail page, the
home/latest/tag feeds, and search results. Rename the shared
'engagement' rate-limit bucket to 'follow' since /api/follows (removed
in a later task) was its only remaining consumer after likes/bookmarks
are gone.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Delete the follow/unfollow feature: the API route, FollowButton,
UserCard, follow-state/follow-list lookups, and the followers/following
list pages. Strip follower_count/following_count from profile lookups
and the ProfileHeader stats row, and drop the now-unused follow
rate-limit bucket. The DB still has the follows table and count
columns; the app just stops reading them (Task 6 drops the schema).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Delete the view-beacon API route and component; strip view_count from
post/profile lookups and the view_count rate-limit bucket. Also removes
the now-dead Phase 7 comments CSS block (comments feature was fully
deleted in an earlier task on this branch) and fixes tests/docs that
were forced stale or broken by these deletions.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- tests/e2e/a11y.spec.ts: remove /trending from PUBLIC_ROUTES
- tests/e2e/mobile.spec.ts: delete stale trending-strip test
- lib/feed/index.ts + app/page.tsx: rename ShortlistRow to LatestFeedRow
- tests/e2e/global-setup.ts: update comment (remove engagement/comments examples)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@harshitsinghbhandari
harshitsinghbhandari merged commit d7b3f7b into main Jul 18, 2026
1 check passed
@harshitsinghbhandari
harshitsinghbhandari deleted the remove-engagement-app branch July 18, 2026 18:04
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