| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Add performance benchmarks, stress tests, and frontend perf tests | Claude | 9 days | 1 | -0/+92 |
| | | | | | | | | | | | | | Go benchmarks cover item CRUD/filter/sanitization, API endpoints (stream, item update, feed list), middleware stack (gzip, security headers, CSRF), and crawler pipeline (feed parsing, mocked crawl). Stress tests verify concurrent reads/writes and large dataset handling. Frontend perf tests measure template generation, DOM insertion, and store event throughput. New Makefile targets: bench, bench-short, stress, test-perf. https://claude.ai/code/session_01ChDVWFDrQoFjMYHpaLGr9s | ||||
| * | Fix v3 theme contrast and sync with v2 colors, add v3 logo, and fix v2 test ↵ | Adam Mathes | 9 days | 6 | -14/+15 |
| | | | | | | | | | | | stability - Sync v3 dark/light theme colors with v2 defaults - Fix v3 settings input/select contrast in dark mode - Add logo emoji to v3 sidebar - Fix duplicate key warnings and side-effect issues in FeedItems.tsx (v2) - Rebuild production assets | ||||
| * | Fix v3 build process and CSRF login/logout exclusions | Adam Mathes | 9 days | 5 | -17/+38 |
| | | | | | | | | - Update Makefile to correctly build and copy frontend-vanilla (v3) assets - Fix frontend-vanilla/vite.config.ts to build to its own dist directory - Normalize CSRF check path and exclude /api/logout to fix v3 session clearing - Include latest built assets for v3 | ||||
| * | Fix restricted login access and modernize login page | Adam Mathes | 9 days | 3 | -21/+200 |
| | | | | | | | | | - Close NK-oqd24q: Fix login access for v3/api - Update web.go to exclude /login/ from CSRF check during initial submission - Modernize web/static/login.html with new CSS and structure - Add web/login_test.go to verify CSRF exclusion - Created NK-ngokc3 for further CSRF enhancements | ||||
| * | Web: Make vanilla (v3) frontend the default at root, move react (v2) to /v2/ | Adam Mathes | 10 days | 1 | -7/+6 |
| | | |||||
| * | Vanilla JS (v3): Removed confusing secondary cat logo, fixed mobile ↵ | Adam Mathes | 10 days | 4 | -6/+3 |
| | | | | | overflow, cleaned up styles | ||||
| * | Vanilla JS (v3): Fix mobile horizontal scroll, simplify logo to 🐱 emoji, ↵ | Adam Mathes | 10 days | 5 | -108/+131 |
| | | | | | implement feed deselect, and complete Settings (Add Feed, Export/Import OPML) | ||||
| * | Vanilla JS (v3): Restore base font to 18px and keep sidebar fonts compact | Adam Mathes | 10 days | 4 | -3/+3 |
| | | |||||
| * | Vanilla JS (v3): Adjust font sizes to comfortable 16px middle ground | Adam Mathes | 10 days | 4 | -3/+3 |
| | | |||||
| * | Vanilla JS (v3): Reduce font size and implement collapsible sidebar sections ↵ | Adam Mathes | 10 days | 4 | -10/+10 |
| | | | | | for Tags and Feeds | ||||
| * | Vanilla JS (v3): Add Logout button, 'neko' cat emoji toggle, and mobile ↵ | Adam Mathes | 10 days | 4 | -106/+108 |
| | | | | | responsiveness with backdrop | ||||
| * | Vanilla JS (v3): Fix filtering logic, Settings navigation, and refine styles ↵ | Adam Mathes | 10 days | 4 | -8/+9 |
| | | | | | for v2 parity | ||||
| * | Vanilla JS (v3): Redesign to 2-pane glassmorphism, fix CSP errors, fix ↵ | Adam Mathes | 10 days | 5 | -105/+105 |
| | | | | | Settings view, and achieve 80% test coverage | ||||
| * | Vanilla JS (v3): Final parity with React (Search, Settings, Shortcuts) | Adam Mathes | 10 days | 5 | -75/+105 |
| | | |||||
| * | Vanilla JS (v3): Implement Tags, Filters, and Infinite Scroll | Adam Mathes | 10 days | 5 | -51/+75 |
| | | |||||
| * | Vanilla JS (v3): Implement 3-pane layout, item fetching, reading, and testing | Adam Mathes | 10 days | 6 | -22/+52 |
| | | |||||
| * | Scaffold Vanilla JS Frontend (v3): Create directory, update Makefile/web.go, ↵ | Adam Mathes | 10 days | 7 | -40/+79 |
| | | | | | embed dist/v3 | ||||
| * | Optimize frontend with memoized FeedItem and efficient IntersectionObserver | Adam Mathes | 10 days | 3 | -12/+12 |
| | | |||||
| * | Switch to HashRouter to fix page reload issues (NK-hy162w) | Adam Mathes | 10 days | 2 | -6/+6 |
| | | |||||
| * | Frontend: Build and check in production assets for multi-select feature | Adam Mathes | 10 days | 4 | -9/+9 |
| | | |||||
| * | Frontend: Build and check in production assets for additive filtering fix | Adam Mathes | 10 days | 5 | -15/+15 |
| | | |||||
| * | Backend: Fix linting issues, improve error handling, and replace magic numbers | Adam Mathes | 10 days | 4 | -60/+60 |
| | | |||||
| * | Commit ticket updates and remaining backend lint fixes | Adam Mathes | 10 days | 1 | -1/+2 |
| | | |||||
| * | Create 'make check' unified workflow and fix various lint issues | Adam Mathes | 10 days | 1 | -26/+14 |
| | | |||||
| * | chore: update build artifacts and finalize test improvements | Adam Mathes | 11 days | 2 | -8/+8 |
| | | |||||
| * | chore: align local Makefile with GitHub CI jobs | Adam Mathes | 11 days | 2 | -7/+7 |
| | | |||||
| * | chore: fix lint and type errors to resolve CI failures | Adam Mathes | 11 days | 4 | -3/+3 |
| | | |||||
| * | ci: enhance workflow with E2E tests and Docker check | Adam Mathes | 11 days | 3 | -14/+2 |
| | | |||||
| * | assets update | Adam Mathes | 11 days | 2 | -0/+12 |
| | | |||||
| * | UI: Improve consistency of settings, logout, and theme sections in sidebar ↵ | Adam Mathes | 11 days | 4 | -3/+3 |
| | | | | | (NK-v9e7r3) | ||||
| * | UI: Add collapsible caret icons for Tags and Feeds in sidebar (NK-gjymiw) | Adam Mathes | 11 days | 5 | -14/+14 |
| | | |||||
| * | Cleanup root directory by moving scripts to scripts/ and fix CSRF cookie ↵ | Adam Mathes | 11 days | 1 | -2/+2 |
| | | | | | policy for dev env | ||||
| * | task: delete vanilla js prototype\n\n- Removed vanilla/ directory and ↵ | Adam Mathes | 11 days | 4 | -486/+0 |
| | | | | | 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 | ||||
| * | fix: auto-load more items when pressing 'j' on last item\n\nPreviously, if ↵ | Adam Mathes | 11 days | 2 | -5/+5 |
| | | | | | 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 | 2 | -0/+190 |
| | | | | | 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 | 2 | -4/+5 |
| | | | | | 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 | 6 | -15/+16 |
| | | | | | 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: relax CSP to allow unsafe-eval for legacy UI | Adam Mathes | 11 days | 1 | -1/+1 |
| | | |||||
| * | feature: add scrape full text button to feed items (fixing NK-8hu7z1) | Adam Mathes | 11 days | 5 | -14/+14 |
| | | |||||
| * | feature: implement full OPML and Text import/export (fixing NK-r6nhj0) | Adam Mathes | 11 days | 5 | -14/+14 |
| | | |||||
| * | routing: make new UI default at / and move legacy UI to /v1/ (fixing ↵ | Adam Mathes | 11 days | 2 | -1/+82 |
| | | | | | NK-mgmn5m, NK-p89hyt) | ||||
| * | security: add HTTP security headers (fixing NK-7xuajb) | Adam Mathes | 11 days | 2 | -1/+42 |
| | | |||||
| * | security: mitigate SSRF in image proxy and feed fetcher (fixing NK-0ca7nq) | Adam Mathes | 11 days | 1 | -3/+2 |
| | | |||||
| * | security: implement CSRF protection and improve session cookie security ↵ | Adam Mathes | 11 days | 2 | -5/+87 |
| | | | | | (fixing NK-gfh33y) | ||||
| * | UI: Centering content area in v2 | Adam Mathes | 11 days | 4 | -3/+3 |
| | | |||||
| * | Refactor: project structure, implement dependency injection, and align v2 UI ↵ | Adam Mathes | 11 days | 6 | -24/+32 |
| | | | | | with v1 | ||||
| * | Fix web tests by removing nil-box checks no longer applicable with go:embed | Adam Mathes | 12 days | 1 | -89/+47 |
| | | |||||
| * | Audit and reduce Go dependencies: replace go.rice with embed, pflag with flag | Adam Mathes | 12 days | 23 | -260/+1762 |
| | | |||||
| * | Optimize asset packaging: move UI assets to root dist/ and decouple rice ↵ | Adam Mathes | 12 days | 1 | -4/+4 |
| | | | | | embedding | ||||
| * | feat: add vanilla JS frontend prototype (NK-2xsgef) | Adam Mathes | 12 days | 1 | -0/+11 |
| | | |||||
