Mob-kill leaderboard now visible: 3rd sub-tab in the Leaderboards tab (Player /
Forge & Actions / Mob Kills). Pick any of the 29 enemies -> ranked accounts by kills
of that mob, styled like the player leaderboard, with a total-kills counter on top.
Backed by the cached per-enemy count arrays already deployed. Data is now populated
(~39k accounts with kill data after a full pusher cycle, top killers correct).
Files: static/mob_leaderboard.js (new), static/forge_stats.js (sub-tab wiring),
static/index.html (include + cache-bust bumps).
Suggestions: 'planned' posts are now commentable too (were locked like the finished
statuses). open + planned stay open for non-mod comments; implemented/declined/closed
stay locked. Enforced on both sides: feedback_comment endpoint and feedback_tab.js
composer gate.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add Suggestions tab: Discord-style board with live updates + mod moderation
A community suggestions board (tab "Suggestions"):
- Overview lists suggestions; clicking one opens the discussion beside it, with a
"Back" button to the full-width overview. Long bodies are truncated in the list.
- "Agree" upvote pill on posts (one per browser via a localStorage uid). Threaded
comments with Enter-to-send / Shift+Enter for a newline; the composer is pinned and
the message area scrolls, so posting never scroll-jumps.
- Ordering: Open, then Planned, then a grayed Implemented/Declined/Closed at the bottom.
- Moderation (right-click, mods only via the existing SM_MOD_KEY cookie): delete a
suggestion, set its status, or delete a comment.
- Live for everyone on the tab via SSE (/feedback/stream, in-process pub/sub like the
leaderboard): new posts, comments, votes, status changes and deletes apply in place.
Backend: SQLite under /data on the Space (survives restarts and rebuilds), next to
app.py locally. Endpoints under /feedback/*; mod actions enforced server-side…