| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Make sidebar filters additive by preserving context in links | Adam Mathes | 10 days | 2 | -7/+20 |
| | | |||||
| * | Create 'make check' unified workflow and fix various lint issues | Adam Mathes | 10 days | 9 | -57/+60 |
| | | |||||
| * | Improve infinite scroll responsiveness on mobile/iPad | Adam Mathes | 10 days | 1 | -2/+2 |
| | | |||||
| * | Fix horizontal scrolling on iPad and improve mobile responsiveness | Adam Mathes | 10 days | 6 | -5/+28 |
| | | |||||
| * | chore: update build artifacts and finalize test improvements | Adam Mathes | 11 days | 24 | -728/+2004 |
| | | |||||
| * | feat: add manual crawl button and E2E test for crawl cycle | Adam Mathes | 11 days | 3 | -1/+61 |
| | | |||||
| * | feat: add username field to login for better password manager support | Adam Mathes | 11 days | 4 | -6/+34 |
| | | |||||
| * | chore: align local Makefile with GitHub CI jobs | Adam Mathes | 11 days | 4 | -12/+28 |
| | | |||||
| * | chore: fix lint and type errors to resolve CI failures | Adam Mathes | 11 days | 20 | -99/+192 |
| | | |||||
| * | style: fix font theme application to body text | Adam Mathes | 11 days | 3 | -1/+38 |
| | | |||||
| * | test: mock RSS feeds in E2E tests | Adam Mathes | 11 days | 7 | -4/+55 |
| | | |||||
| * | ci: enhance workflow with E2E tests and Docker check | Adam Mathes | 11 days | 8 | -125/+96 |
| | | |||||
| * | assets update | Adam Mathes | 11 days | 2 | -0/+12 |
| | | |||||
| * | style: update Settings page to match glass sidebar aesthetic | Adam Mathes | 11 days | 11 | -22053/+208 |
| | | |||||
| * | Docs: Update README.md with recent changes and feature additions (NK-sdxq5p) | Adam Mathes | 11 days | 1 | -1/+21 |
| | | |||||
| * | UI: Improve consistency of settings, logout, and theme sections in sidebar ↵ | Adam Mathes | 11 days | 6 | -11/+379 |
| | | | | | (NK-v9e7r3) | ||||
| * | UI: Add collapsible caret icons for Tags and Feeds in sidebar (NK-gjymiw) | Adam Mathes | 11 days | 7 | -31/+65 |
| | | |||||
| * | Cleanup root directory by moving scripts to scripts/ and fix CSRF cookie ↵ | Adam Mathes | 11 days | 9 | -8/+243 |
| | | | | | policy for dev env | ||||
| * | new workflows based on past issues | Adam Mathes | 11 days | 5 | -1/+137 |
| | | |||||
| * | task: improve mobile responsiveness of React UI\n\n- Added media queries to ↵ | Adam Mathes | 11 days | 6 | -13/+144 |
| | | | | | App.css to handle mobile sidebar layout (overlay with backdrop)\n- Implemented auto-hiding sidebar on mobile when links are clicked\n- Reduced padding and adjusted max-widths for smaller screens in App.css, FeedItem.css, and Settings.css\n- Added window resize listener to Dashboard to manage sidebar visibility based on width\n- Verified all existing tests pass\n\nFixes NK-g818qn | ||||
| * | task: delete vanilla js prototype\n\n- Removed vanilla/ directory and ↵ | Adam Mathes | 11 days | 2860 | -683184/+4 |
| | | | | | web/dist/vanilla directory\n- Updated Makefile, Dockerfile, and CI workflow to remove vanilla references\n- Cleaned up web/web.go to remove vanilla embed and routes\n- Verified build and tests pass\n\nCloses NK-2tcnmq | ||||
| * | test: add background crawler timing tests | Adam Mathes | 11 days | 2 | -2/+130 |
| | | | | | | | | | | | | | | | | | Added tests to verify background crawler behavior: - Tests that backgroundCrawl returns immediately when minutes <= 0 - Tests that backgroundCrawl executes at the specified interval - Tests that Run() returns early when port is -1 (testing mode) These tests verify the general structure and timing of the background crawler without requiring a full integration test with actual feeds. Closes NK-pwogze Created follow-up tickets: - NK-rhelrq: End-to-end integration test for complete crawl cycle - NK-0oti10: Documentation for background crawler behavior | ||||
| * | fix: auto-load more items when pressing 'j' on last item\n\nPreviously, if ↵ | Adam Mathes | 11 days | 4 | -6/+52 |
| | | | | | you were focused on the last loaded item and that item was\nvery long (extending past the viewport), pressing 'j' would do nothing\nbecause there were no more items loaded yet.\n\nNow, when the user presses 'j' and lands on the last item, we automatically\ntrigger loading more items (if available), ensuring that the next 'j' press\nwill work as expected.\n\nAdded test to verify this behavior works correctly. | ||||
| * | feat: fix authentication to handle no-password scenario\n\n- Updated ↵ | Adam Mathes | 11 days | 3 | -0/+356 |
| | | | | | Authenticated() to return true when no password is configured\n- Updated apiLoginHandler to succeed when no password is set\n- Added comprehensive backend tests for both password/no-password cases\n- Added E2E tests for authentication flows (password tests are skipped by default)\n- All tests pass for both authentication scenarios\n\nFixes issue where app would require login even when no password was configured.\nNow properly supports passwordless mode for local development. | ||||
| * | feat: add secure_cookies configuration option\n\n- Added SecureCookies bool ↵ | Adam Mathes | 11 days | 6 | -5/+18 |
| | | | | | field to config.Settings\n- Added --secure-cookies command line flag\n- Updated CSRFMiddleware to use config setting instead of hardcoded value\n- Default is false for local development, set to true for production HTTPS\n- Updated config.example and README.md with documentation\n- Updated tests to pass config to CSRFMiddleware\n\nThis allows users to easily switch between insecure cookies (for local dev)\nand secure cookies (for production HTTPS) via config file or command line. | ||||
| * | fix: CSRF cookie configuration for local network access\n\n- Changed ↵ | Adam Mathes | 11 days | 9 | -17/+22 |
| | | | | | SameSite from Lax to None to allow cookie access across localhost/IP variations\n- Added Secure=false for local development (should be true in production with HTTPS)\n- Added credentials:'include' to all fetch requests to ensure cookies are sent\n- Updated tests to expect credentials parameter in fetch calls\n\nThis fixes the 403 Forbidden error when accessing from LAN IPs like 192.168.x.x | ||||
| * | fix: make infinite scroll less aggressive by using threshold 1.0 for ↵ | Adam Mathes | 11 days | 2 | -23/+42 |
| | | | | | sentinel observer | ||||
| * | fix: relax CSP to allow unsafe-eval for legacy UI | Adam Mathes | 11 days | 1 | -1/+1 |
| | | |||||
| * | feat: add font theme support (fixing NK-rn4nzp) | Adam Mathes | 11 days | 7 | -19/+105 |
| | | |||||
| * | fix: restore CI backend job by creating dummy assets for embed and updating ↵ | Adam Mathes | 11 days | 1 | -1/+8 |
| | | | | | linter (fixing NK-nx8dhw) | ||||
| * | fix: update Dockerfile to use Go embed and fix build path (fixing NK-sk6pym) | Adam Mathes | 11 days | 1 | -7/+10 |
| | | |||||
| * | test: increase frontend coverage for Settings and improve FeedItem css | Adam Mathes | 11 days | 25 | -6179/+3907 |
| | | |||||
| * | style: refine sidebar design to closely match v1 (fixing NK-7jh6re) | Adam Mathes | 11 days | 3 | -22/+57 |
| | | |||||
| * | fix: ensure neko toggle button is always accessible (fixing NK-zvt8hi) | Adam Mathes | 11 days | 4 | -51/+32 |
| | | |||||
| * | feature: add scrape full text button to feed items (fixing NK-8hu7z1) | Adam Mathes | 11 days | 9 | -18/+79 |
| | | |||||
| * | ui: redesign sidebar to match v1 aesthetic and fix navigation | Adam Mathes | 11 days | 5 | -185/+139 |
| | | |||||
| * | feature: implement full OPML and Text import/export (fixing NK-r6nhj0) | Adam Mathes | 11 days | 12 | -41/+479 |
| | | |||||
| * | routing: make new UI default at / and move legacy UI to /v1/ (fixing ↵ | Adam Mathes | 11 days | 4 | -4/+89 |
| | | | | | NK-mgmn5m, NK-p89hyt) | ||||
| * | ui: simplify themes to light/dark and improve theme-aware styling (fixing ↵ | Adam Mathes | 11 days | 8 | -51/+62 |
| | | | | | NK-dp5efo) | ||||
| * | security: add HTTP security headers (fixing NK-7xuajb) | Adam Mathes | 11 days | 6 | -4/+61 |
| | | |||||
| * | updated readme to reflect AI | Adam Mathes | 11 days | 1 | -2/+6 |
| | | |||||
| * | security: run docker container as non-root user (fixing NK-o3n9jf) | Adam Mathes | 11 days | 1 | -2/+9 |
| | | |||||
| * | security: mitigate SSRF in image proxy and feed fetcher (fixing NK-0ca7nq) | Adam Mathes | 11 days | 6 | -17/+171 |
| | | |||||
| * | security: implement CSRF protection and improve session cookie security ↵ | Adam Mathes | 11 days | 12 | -26/+148 |
| | | | | | (fixing NK-gfh33y) | ||||
| * | UI: Centering content area in v2 | Adam Mathes | 11 days | 5 | -4/+4 |
| | | |||||
| * | Refactor: project structure, implement dependency injection, and align v2 UI ↵ | Adam Mathes | 11 days | 84 | -3374/+28796 |
| | | | | | with v1 | ||||
| * | Fix web tests by removing nil-box checks no longer applicable with go:embed | Adam Mathes | 12 days | 1 | -89/+47 |
| | | |||||
| * | Update README to reflect removal of rice tool and new asset locations | Adam Mathes | 12 days | 1 | -7/+6 |
| | | |||||
| * | Audit and reduce Go dependencies: replace go.rice with embed, pflag with flag | Adam Mathes | 12 days | 28 | -303/+71 |
| | | |||||
| * | Optimize asset packaging: move UI assets to root dist/ and decouple rice ↵ | Adam Mathes | 12 days | 15 | -802/+579 |
| | | | | | embedding | ||||
