Module: Social / Feed (always-on / customer)
Status: π’ Production (feed + posts live; engagement tables low-volume) Β· Last validated: 2026-09-06 Β· Priority: P1
The social layer β posts, stories, reactions, comments, shares, follow/friend graph, groups. This is the platform "Home". Validated against classs/PostWallModule.php, classs/KvFeedEngine.php, classs/FriendsModule.php + schema. No kv_module_control row (always-on).
A. Purpose
User-generated content + social graph, the engagement backbone. A creator-payout model exists (feed_monetization_payouts) but is not running. Posting can consume "posting credits".
B. Actors
Any registered user (via the social sub-profile); groups; pages; moderation/admin.
C. Entry points
/socialfeed.php, /socialcommunity.php; wall JS assets/newjs/wall.js. Feed ranking via KvFeedEngine::rank().
D. Feed engine
KvFeedEngine (classs/KvFeedEngine.php): getSettings(wallType) :29, activeDailyMode() :53, rank(candidates, viewerId, wallType, ctx) :75. Ranks candidate posts per viewer/wall.
E. Feature registry (prefix SOC-)
| ID | Feature | Actor | Method | Tables (write) | Status |
|---|---|---|---|---|---|
| SOC-001 | Create post | user | createPost :395 | post_master_wall, post_media_moderation | π’ |
| SOC-002 | React to post/media | user | reactToPost :802, reactToMedia :1040 | post_reactions, post_media_reactions | π’ |
| SOC-003 | Comment (+ edit/delete) | user | addComment :1178, editComment :1330, deleteComment :1393 | post_comments | π’ |
| SOC-004 | Share | user | (share) | post_shares, post_share_chain, post_share_log | π’ |
| SOC-005 | Save / poll vote | user | poll/save | post_saves, post_poll_votes | π’ |
| SOC-006 | Stories | user | story create/reply/poll | story_views, story_replies, story_poll_votes, story_mentions | π’ |
| SOC-007 | Seen tracking | system | logSeenPost(s) :276/:305 | post_views | π’ |
| SOC-008 | Post permissions | owner | updatePostPermissions :193 | post_master_wall, post_collaborators | π’ |
| SOC-009 | Follow / friend | user | FriendsModule (+ applyAutoFollowSeeds) | user_follow, user_friends, corporate_user_follow | π’ |
| SOC-010 | Groups | user | GroupsModule | groups_master | π’ |
| SOC-011 | Hashtag / mute | user | follow/mute | hashtag_follows, user_feed_mutes | π’ |
G. Data model (2026-09-06)
| Table | Rows | Role |
|---|---|---|
post_master_wall | 440 | posts (the wall) |
post_views | 732 | impressions (real usage) |
post_reactions / post_comments / post_shares | 0 / 0 / 0 | engagement (schema live, low current data) |
post_share_chain | 29 | share propagation |
post_media_moderation | 791 | per-media moderation verdicts |
user_follow | 76 | follow graph (not user_follows) |
user_friends | 76 | friend graph (not friends_master); user_friends_unfriend_log 46 |
corporate_user_follow | 4,020 | professional-network follows |
groups_master | 50 | groups |
posting_credit_* | β | posting-credit balances/packs/usage (posting_credit_balances, _monthly_usage, _packs, _settings, _transactions β all confirmed present, 2026-09-06) |
Row counts re-verified 2026-09-06 with liveCOUNT(*);post_master_wall,user_follow,user_friends, andcorporate_user_followhad each drifted a few rows from a prior pass of this table (feed usage is ongoing) β counts above are current as of today, not a correction of a wrong method, just a newer snapshot.
The engagement tables (post_reactions,post_comments,post_shares) are at 0 rows now but are the real stores (the write methods target them);post_views=732 andpost_share_chain=29 show the feature is exercised. Follow/friend live inuser_follow/user_friends(singular) β not the plural/*_masternames one might guess.
H. Financial impact
Mostly none. Two money-adjacent pieces: posting credits (posting_credit_*, a spend to post beyond a quota) and creator payouts (feed_monetization_payouts, built, not running).
K. Content lifecycle
create β media moderation (post_media_moderation) β publish β distribute (feed rank) β engage (react/comment/share) β edit β soft-delete (softDeletePost :1449) β archive.
L / M / N
Errors: SOC-E001 post blocked by media moderation (post_media_moderation verdict). Depends on identity (social sub-profile), notifications, uploads/AV scanner, professional network. Change-impact: feed ranking + engagement writes affect the highest-traffic surface β re-test createβrankβengage.