📰 NewsStack
A secure, login-protected curation & publishing tool for This Week In Chia.
Curators review posts from multiple X accounts, make keep/hide decisions, generate exact TWIC-style <li class='post'> blocks, and batch-publish while maintaining full state and audit trail — all without exposing internals.
Current Capabilities (High-Level)
Live Tool
The full authenticated curation dashboard (login required) is at:
https://twic.website/newsstack/(Authenticated curators only - data, state, and actions stay private.)
📅 Daily Progress Log
High-level notes only. We keep sensitive implementation details, methods, and keys off the public page for security.
- 4-button layout now matches arrow semantics (Reject left, then Pending, Undo, Accept right) with arrows shown in button labels.
- True LIFO "Undo last" now correctly reverts the most recent processed item (whether accepted or rejected) using action history covering both.
- Eliminated every popup (no more alert/confirm on Generate All or Publish All). Pure button-text feedback + list clearing + count updates.
- Blank-line date grouping in published output preserved correctly (sanitize individual li first, then group with leading newline, re-apply in append step).
- Updated this redesign page with all the latest progress (high-level only) and called it a night.
- LiGenerator (PHP) + append flow now guarantees single-line li elements (str_replace on newlines to space both in generator and on publish).
- Publish output is reverse chronological + inserts a blank line (via newline) between groups of different dates.
- Accepted section with optimistic move on Accept, per-item + Generate All / Publish All, and authenticated "View / Copy Generated HTML" viewer (data/accepted.html stays Forbidden to the public).
- Keyboard support: A or right-arrow = Accept, R or left-arrow = Reject, P or down-arrow = Pending/Return, U or up-arrow = Undo (Ctrl/Alt/Meta ignored so hard refreshes don't trigger actions).
- Live inline counts + top stat cards update on every action (no more stale "Pending Items in Stack" after F5 or operations).
- Logout fixed so unauthenticated visitors reliably see the login form (proper cookie path scoping + multi-path expire on logout).
- "Undo last" switched from last-accepted-only to true last-processed via actionHistory.
- Deploy.ps1 + newsstack-post-deploy wrapper: safe robocopy/scp, never copies vendor/, chown/chmod first, composer as www-data, apache graceful. Split commands so sudoers matches exactly.
- Clean minimal sudoers (Cmnd_Alias lines + single user line) that is fully non-interactive - no password prompts and no more daily "password is required" emails on every deploy.
- Secure subfolder hosting (/newsstack/), .htaccess blocks on src/data/logs, proper session handling.
🔒 Security and Transparency Note
This page describes high-level progress only. Implementation details, internal tooling, authentication methods, deploy secrets, exact sudoers content, wrapper scripts, and any novel approaches stay private. The live curation tool itself requires authentication and is not publicly indexed or linked from the main site root.