| Commit message (Expand) | Author | Age | Files | Lines |
| ... | |
| * | fix: mobile scroll preservation, bottom toolbar for detail panel | Fuwn | 2026-02-08 | 2 | -66/+84 |
| * | feat: add toolbar position setting (top or bottom) | Fuwn | 2026-02-08 | 3 | -82/+123 |
| * | feat: enforce tier-based history retention (14d free, 90d pro/dev) | Fuwn | 2026-02-08 | 2 | -3/+3 |
| * | feat: add Umami analytics (production only) | Fuwn | 2026-02-08 | 2 | -2/+10 |
| * | fix: toast notification z-index behind entry panel | Fuwn | 2026-02-08 | 1 | -0/+1 |
| * | feat: show tier-specific welcome message on subscription activation | Fuwn | 2026-02-08 | 1 | -1/+2 |
| * | fix: invoice.paid handler now retrieves subscription for correct tier resolution | Fuwn | 2026-02-08 | 1 | -16/+13 |
| * | debug: add webhook signature verification logging | Fuwn | 2026-02-08 | 1 | -1/+5 |
| * | fix: exclude webhook route from auth middleware to prevent 405 | Fuwn | 2026-02-08 | 1 | -1/+1 |
| * | feat: enable promotion codes on Stripe checkout | Fuwn | 2026-02-08 | 1 | -0/+1 |
| * | feat: add Vercel BotID protection and fix billing origin fallback | Fuwn | 2026-02-08 | 11 | -10/+67 |
| * | feat: add support email to account settings | Fuwn | 2026-02-08 | 1 | -0/+12 |
| * | feat: share with highlighted excerpt and fix auth redirect URLs | Fuwn | 2026-02-08 | 7 | -19/+199 |
| * | chore: gate Vercel analytics and speed insights to production only | Fuwn | 2026-02-08 | 1 | -2/+2 |
| * | fix: share clipboard write for Safari transient activation | Fuwn | 2026-02-08 | 2 | -36/+49 |
| * | feat: add feed management features and fix subscribe_to_feed bugs | Fuwn | 2026-02-08 | 5 | -47/+390 |
| * | feat: implement authenticated feed support across worker and web app | Fuwn | 2026-02-08 | 6 | -1/+66 |
| * | fix: clicking notifications button while panel is open now correctly dismisse... | Fuwn | 2026-02-08 | 2 | -1/+4 |
| * | fix: notification count alignment — add flex to button so ml-auto pushes co... | Fuwn | 2026-02-08 | 1 | -1/+1 |
| * | feat: add feed URL editing in subscription settings, fix notification badge s... | Fuwn | 2026-02-08 | 4 | -4/+102 |
| * | feat: add option to show favicons next to feed names in entry list | Fuwn | 2026-02-08 | 3 | -0/+50 |
| * | feat: add appearance option to toggle folders above/below ungrouped feeds in ... | Fuwn | 2026-02-08 | 3 | -99/+134 |
| * | feat: display folders above ungrouped feeds in sidebar, add delete-all-custom... | Fuwn | 2026-02-08 | 3 | -39/+107 |
| * | fix: enforce same-origin on all service worker cache routes | Fuwn | 2026-02-07 | 1 | -8/+13 |
| * | fix: use dynamic icon as favicon, center text with lineHeight | Fuwn | 2026-02-07 | 4 | -0/+3 |
| * | fix: service worker passes cross-origin requests through to network | Fuwn | 2026-02-07 | 1 | -2/+8 |
| * | fix: move vercel.json into apps/web for monorepo install resolution | Fuwn | 2026-02-07 | 1 | -0/+5 |
| * | fix: space/shift+space scrolls focused panel, revert content font, fix share ... | Fuwn | 2026-02-07 | 6 | -60/+28 |
| * | feat: resolve 7 pre-ship QoL items | Fuwn | 2026-02-07 | 7 | -6/+140 |
| * | fix: resolve 6 pre-ship audit bugs | Fuwn | 2026-02-07 | 7 | -25/+127 |
| * | security: remove unsafe-eval CSP, fix host header injection, harden API routes | Fuwn | 2026-02-07 | 5 | -16/+33 |
| * | fix: dynamically calculate detail panel equal split from current layout | Fuwn | 2026-02-07 | 1 | -4/+9 |
| * | fix: reset panel sizes without page reload, prevent partial-data max width cl... | Fuwn | 2026-02-07 | 4 | -37/+74 |
| * | fix: reset sidebar to midpoint of min/max, detail to 50/50 split | Fuwn | 2026-02-07 | 1 | -6/+32 |
| * | fix: prevent sidebar max width from clamping persisted size on load | Fuwn | 2026-02-07 | 1 | -0/+1 |
| * | fix: persist sidebar size across collapse/expand cycles | Fuwn | 2026-02-07 | 1 | -1/+1 |
| * | fix: api key prefix rename, revoke fix, and webhook validation | Fuwn | 2026-02-07 | 5 | -16/+40 |
| * | feat: dynamically compute sidebar max width from item text widths | Fuwn | 2026-02-07 | 1 | -2/+105 |
| * | fix: use fixed rem-based sidebar min/default with whitespace-nowrap | Fuwn | 2026-02-07 | 3 | -79/+7 |
| * | fix: measure text nodes in sidebar min width calculation | Fuwn | 2026-02-07 | 2 | -26/+23 |
| * | fix: include sidebar footer items in min width measurement | Fuwn | 2026-02-07 | 1 | -19/+48 |
| * | fix: use Canvas text measurement for sidebar min width | Fuwn | 2026-02-07 | 1 | -8/+23 |
| * | fix: measure sidebar min width from children intrinsic widths | Fuwn | 2026-02-07 | 1 | -2/+16 |
| * | feat: derive sidebar min/default width from measured content | Fuwn | 2026-02-07 | 1 | -2/+19 |
| * | fix: persist detail panel sizes with panelIds-keyed storage | Fuwn | 2026-02-07 | 2 | -1/+2 |
| * | feat: persist sidebar panel sizes across page refreshes | Fuwn | 2026-02-07 | 2 | -2/+15 |
| * | fix: use string percentages for react-resizable-panels v4 size props | Fuwn | 2026-02-07 | 2 | -45/+56 |
| * | feat: pre-ship polish — UI improvements, keyboard shortcuts, appearance set... | Fuwn | 2026-02-07 | 30 | -452/+1127 |
| * | style: lowercase all user-facing strings and add custom eslint rule | Fuwn | 2026-02-07 | 41 | -132/+402 |
| * | feat: asa.news RSS reader with developer tier, REST API, and webhooks | Fuwn | 2026-02-07 | 134 | -0/+13435 |