From 4a6a373f1e8e9230f919f640b78a0e40b36a302f Mon Sep 17 00:00:00 2001 From: Fredrik Johansson Date: Mon, 13 Jul 2026 19:00:36 +0200 Subject: [PATCH] Restyle UI to match flit/wisp theming, add delete + token revoke/list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit UI: ported flit/wisp's dark, JetBrains-Mono-accented theme wholesale (same CSS vars, same card/button/input vocabulary) so stash reads as part of the same family of tools instead of a bare unstyled list. List view is now card-based with unread indicators; reader view got proper article typography. Delete: the list and reader views now have a delete button (with a confirm prompt) wired to the existing DELETE /api/articles/:id via a new POST /delete/:id UI route, since browser forms can't issue DELETE directly. express.urlencoded() added to parse the form posts this and the existing mark-read buttons need. Token management: added listTokens/revokeToken to db.ts, plus `npm run tokens` (lists label/created_at/last-4-chars only — never re-prints a full secret) and `npm run revoke-token --