aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Enhance CSRF protection for login pageAdam Mathes9 days3-33/+61
| | | | | | | | | | Login form now includes a CSRF token from the cookie as a hidden form field. The CSRF middleware accepts tokens from either the X-CSRF-Token header (for JS clients) or the csrf_token form field (for HTML forms). Removed /login from the CSRF exclusion list so login POSTs are now validated. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* v3: persist sidebar state via cookie, default closed on tablet/mobileAdam Mathes9 days3-7/+61
| | | | | | | | | | Sidebar open/close state is now saved to a cookie (neko_sidebar) so it persists across page reloads. On first visit without a cookie, the sidebar defaults to closed on tablet and mobile (<=1024px viewport) and open on desktop. Removes the auto-open-on-resize behavior that was overriding user preference. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Merge pull request #5 from adammathes/claude/thicket-ready-crank-RmQuIAdam Mathes9 days7-5/+15
|\ | | | | Change mark-as-read threshold from 50% to 100% visibility
| * v3 ui: require 100% visibility before marking items as readClaude9 days7-5/+15
|/ | | | | | | | | | | | | Change IntersectionObserver threshold from 0.5 to 1.0 so items are only marked as read when fully scrolled into view, reducing accidental mark-as-read during fast scrolling. Also fix unused Category import in perf test and add thicket config.json to repository so future agents can use thicket CLI commands. Closes NK-s2g59a https://claude.ai/code/session_019Z4VJxzY7tcAuNkPAkvry9
* ticket priority changesAdam Mathes9 days1-2/+2
|
* V3 UI Polish: Improved keyboard navigation, fixed logo position, and updated ↵Adam Mathes9 days14-54/+115
| | | | | | | | | | | branding - Fix V3 keyboard navigation delay (resolved NK-wjats7) - Update V3 document title to 'neko' (resolved NK-4p3s91) - Fix V3 neko logo/button position to be top-left fixed (resolved NK-89za3s) - Improve FeedItems (React) stability with ref-based index tracking and robust tests - Sync V3 styling and selection feedback with V2 patterns - Rebuild production assets
* Fix v3ui: neko button fixed positionAdam Mathes9 days8-25/+10
| | | | | | | - Remove duplicate neko logo from v3 sidebar - Keep sidebar toggle button fixed at top-left even when sidebar is open - Add top padding to v3 sidebar to prevent overlap with the fixed toggle button - Update v3 tests to match UI changes
* Merge pull request #4 from adammathes/claude/performance-stress-testing-qQuV8Adam Mathes9 days8-1/+1024
|\ | | | | Add performance benchmarks, stress tests, and frontend perf tests
| * Add performance benchmarks, stress tests, and frontend perf testsClaude9 days8-1/+1024
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge pull request #3 from adammathes/claude/performance-stress-testing-qQuV8Adam Mathes9 days2-0/+286
|\| | | | | Add performance and stress test plan
| * Add performance and stress test planClaude9 days2-0/+286
|/ | | | | | | | | Comprehensive plan covering Go backend benchmarks (item/filter/API/middleware/crawler), stress tests (concurrent reads/writes, large datasets), and frontend perf tests (render throughput, store event cascades). Saved to both PLAN.md and DOCS/ for reference by other agents. https://claude.ai/code/session_01ChDVWFDrQoFjMYHpaLGr9s
* Fix v3 theme contrast and sync with v2 colors, add v3 logo, and fix v2 test ↵Adam Mathes9 days13-298/+110
| | | | | | | | | | 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
* move docs to DOCS dirAdam Mathes9 days2-0/+243
|
* updated license dateAdam Mathes9 days1-1/+1
|
* Fix v3 build process and CSRF login/logout exclusionsAdam Mathes9 days7-18/+42
| | | | | | | - 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
* Implement feed management in settingsAdam Mathes9 days4-2/+115
| | | | | | | | | - Close NK-cuz8gh: v3 feed management - Add 'Manage Feeds' section to settings view in v3 UI - Implement deleteFeed and updateFeed helper functions - Add event listeners for deleting feeds and updating tags - Add tests for new functionality - Created NK-cdwj52 for bulk edit feature
* Remove Filters header from sidebarAdam Mathes9 days2-3/+3
| | | | | | - Close NK-edahin: cut 'FILTERS' text - Remove the h3 Filters header in frontend-vanilla/src/main.ts - Verified that tests still pass
* Implement settings toggle logic and refactor sidebar navigationAdam Mathes9 days3-3/+45
| | | | | | | | - Close NK-s8nytj: Settings page close behavior - Update frontend-vanilla/src/main.ts to toggle settings/filter navigation - Add tests in frontend-vanilla/src/main.test.ts for navigation logic - Created NK-gxvegm for feed/tag settings behavior - Created NK-f64ocp for routing logic refactor
* added lots of tickets to fix v3Adam Mathes9 days1-0/+1
|
* Updated README.md, human-styleAdam Mathes9 days1-59/+24
|
* Fix restricted login access and modernize login pageAdam Mathes9 days4-22/+208
| | | | | | | | - 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
* Fix scroll mark as read in V3 UIAdam Mathes9 days3-1/+71
| | | | | | - Close NK-k2fh32: scroll mark as read broken in V3 UI - Add IntersectionObserver to item list in renderItems - Add test case ensuring apiFetch is called when item intersects
* Web: Make vanilla (v3) frontend the default at root, move react (v2) to /v2/Adam Mathes10 days1-7/+6
|
* Vanilla JS (v3): Removed confusing secondary cat logo, fixed mobile ↵Adam Mathes10 days8-30/+34
| | | | overflow, cleaned up styles
* Vanilla JS (v3): Fix mobile horizontal scroll, simplify logo to 🐱 emoji, ↵Adam Mathes10 days7-133/+302
| | | | implement feed deselect, and complete Settings (Add Feed, Export/Import OPML)
* Vanilla JS (v3): Restore base font to 18px and keep sidebar fonts compactAdam Mathes10 days5-7/+8
|
* Vanilla JS (v3): Adjust font sizes to comfortable 16px middle groundAdam Mathes10 days5-8/+7
|
* Vanilla JS (v3): Reduce font size and implement collapsible sidebar sections ↵Adam Mathes10 days6-33/+65
| | | | for Tags and Feeds
* Vanilla JS (v3): Add Logout button, 'neko' cat emoji toggle, and mobile ↵Adam Mathes10 days8-138/+288
| | | | responsiveness with backdrop
* Vanilla JS (v3): Fix filtering logic, Settings navigation, and refine styles ↵Adam Mathes10 days10-37/+57
| | | | for v2 parity
* Vanilla JS (v3): Redesign to 2-pane glassmorphism, fix CSP errors, fix ↵Adam Mathes10 days18-534/+1216
| | | | Settings view, and achieve 80% test coverage
* Vanilla JS (v3): Final parity with React (Search, Settings, Shortcuts)Adam Mathes10 days10-156/+474
|
* Vanilla JS (v3): Implement Tags, Filters, and Infinite ScrollAdam Mathes10 days12-92/+346
|
* Vanilla JS (v3): Implement 3-pane layout, item fetching, reading, and testingAdam Mathes10 days23-123/+1791
|
* Scaffold Vanilla JS Frontend (v3): Create directory, update Makefile/web.go, ↵Adam Mathes10 days21-44/+1512
| | | | embed dist/v3
* Document performance optimizations and add Vanilla JS proposalAdam Mathes10 days1-1/+65
|
* Temporarily disable CI triggersAdam Mathes10 days1-4/+5
|
* Optimize frontend with memoized FeedItem and efficient IntersectionObserverAdam Mathes10 days3-12/+12
|
* Optimize frontend with memoized FeedItem and efficient IntersectionObserverAdam Mathes10 days8-166/+186
|
* Update README.mdAdam Mathes10 days1-33/+31
|
* Add networking tools (net-tools, iproute2, netcat) to devcontainer imageAdam Mathes10 days1-1/+4
|
* Configure devcontainer to use docker-compose.dev.yaml for consistent setupAdam Mathes10 days1-9/+6
|
* Add docker-compose.dev.yaml for consistent containerized development environmentAdam Mathes10 days2-9/+33
|
* Update ticket status after closing NK-hy162wAdam Mathes10 days1-1/+1
|
* Switch to HashRouter to fix page reload issues (NK-hy162w)Adam Mathes10 days7-31/+43
|
* Add devcontainer configuration and update documentation for containerized ↵Adam Mathes10 days2-6/+24
| | | | development
* Devcontainer: Install Node.js 20 directly in DockerfileAdam Mathes10 days1-1/+3
|
* Update ticket status after closing NK-p0nfoiAdam Mathes10 days1-1/+2
|
* Frontend: Build and check in production assets for multi-select featureAdam Mathes10 days4-9/+9
|
* Frontend: Implement multi-select feeds in sidebar (NK-p0nfoi)Adam Mathes10 days3-12/+59
|