aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * Exclude full_content from stream list API responsesClaude9 days3-15/+63
| | | | | | | | | | | | | | | | | | | | | | The /stream endpoint now skips selecting full_content and header_image from the database, reducing memory allocation and response payload size for list views. Full content remains available via /item/:id endpoint. Adds omitempty to JSON tags so empty fields are omitted from responses, and a test verifying full_content is excluded from stream responses. https://claude.ai/code/session_019Z4VJxzY7tcAuNkPAkvry9
* | Merge pull request #6 from adammathes/claude/fix-mobile-scroll-read-yVmVkAdam Mathes9 days2-8/+13
|\ \ | |/ |/| Fix mobile scroll not marking items as read in v3 UI
| * Fix mobile scroll not marking items as read in v3 UIClaude9 days2-8/+13
|/ | | | | | | | | | | | | | Two issues prevented IntersectionObserver from firing on mobile: 1. threshold: 1.0 required items to be 100% visible, but on mobile viewports items with descriptions are often taller than the screen 2. root: null used the viewport, but scrolling happens inside .main-content (overflow-y: auto) while body has overflow: hidden Switched to "scrolled past" pattern: items are marked read when they scroll above the viewport (like the working legacy UI). Set root to the actual scroll container element. https://claude.ai/code/session_01NSUnBzNrgQVUNg9PnugF7N
* more ticketsAdam Mathes9 days1-4/+9
|
* v3: fix feed toggle from settings page, add navigation testsAdam Mathes9 days2-1/+36
| | | | | | | | | When on the settings page and clicking a feed that was previously active, navigate to that feed instead of toggling back to home. The toggle behavior now only applies when already viewing that feed. Added tests for navigating from settings to feeds and tags. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* DOCS: comprehensive benchmark results from full perf test suiteAdam Mathes9 days1-0/+99
| | | | | | | | | Ran Go benchmarks (3x count) across api, crawler, item model, and web middleware packages. Also ran frontend-vanilla perf tests. Documented findings including stream allocation overhead, image proxy cost, and middleware latency. Added potential improvement recommendations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* 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
|