| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | 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 |
| | | |||||
| * | chore: cleanup ignored files | Adam Mathes | 12 days | 1 | -100/+0 |
| | | |||||
| * | refactor(backend): improve testability and add tests (NK-6q9nyg) | Adam Mathes | 12 days | 4 | -119/+517 |
| | | |||||
| * | fix(v2): remove distracting selection styles and fix build (NK-8rhpp3) | Adam Mathes | 12 days | 2 | -39/+77 |
| | | |||||
| * | Implement robust Gzip middleware and update page size analysis | Adam Mathes | 12 days | 2 | -9/+136 |
| | | |||||
| * | Analyze page size and fix frontend tests | Adam Mathes | 12 days | 1 | -0/+212 |
| | | |||||
| * | UI Refinements: remove redundant header and fix global monospace font stack | Adam Mathes | 12 days | 1 | -220/+0 |
| | | |||||
| * | Fix frontend asset base path and add regression test for serving frontend | Adam Mathes | 12 days | 1 | -0/+24 |
| | | |||||
| * | Implement Frontend Logout with tests | Adam Mathes | 12 days | 2 | -0/+34 |
| | | |||||
| * | Implement frontend login logic with >90% coverage | Adam Mathes | 13 days | 2 | -0/+94 |
| | | |||||
| * | Scaffold new frontend and close NK-t0nmbj | Adam Mathes | 13 days | 3 | -42/+180 |
| | | |||||
| * | wip: tui updates (buggy) | Adam Mathes | 13 days | 2 | -2/+80 |
| | | |||||
| * | Refactor backend to a clean REST API | Adam Mathes | 13 days | 3 | -649/+95 |
| | | | | | | | | | | | - Created new 'api' package with testable router and RESTful handlers - Handlers in 'api' use proper HTTP methods and status codes - Standardized JSON responses and error handling - Refactored 'web' package to delegate logic to 'api' - Maintained backward compatibility for legacy frontend routes - Simplified 'web/web_test.go' and added comprehensive 'api/api_test.go' - All tests passing with improved modularity | ||||
| * | Add comprehensive test suite — 81% cross-package coverage | Adam Mathes | 13 days | 1 | -0/+647 |
| | | | | | | | | | | | | | | | | | | | | | | | Bug fixes: - config: remove unused log import - item: fix Printf format %d->%t for boolean ReadState - util: update stale config.Read -> config.Init, remove config.Config.DBServer Test files added: - config/config_test.go: Init, readConfig, addDefaults (100%) - vlog/vlog_test.go: Printf, Println verbose/silent (100%) - models/db_test.go: InitDB tests - models/feed/feed_test.go: CRUD, filter, Categories, NewFeed, ResolveFeedURL (87%) - models/item/item_test.go: CRUD, Filter with category/search/starred, rewriteImages (71%) - exporter/exporter_test.go: all export formats (91%) - importer/importer_test.go: InsertIItem, ImportJSON (90%) - crawler/crawler_test.go: GetFeedContent, CrawlFeed, CrawlWorker, Crawl (89%) - web/web_test.go: auth, login/logout, stream, item, feed, category, export, crawl, imageProxy handlers (77%) Remaining 0% functions require HTTP/rice.MustFindBox/main entry and can't be unit tested without refactoring (see tickets NK-gqkh96, NK-6q9nyg). | ||||
| * | clean up old files, update git ignore | Adam Mathes | 2025-05-25 | 1 | -20/+36 |
| | | |||||
| * | update dependencies | Adam Mathes | 2021-09-28 | 1 | -22/+22 |
| | | |||||
| * | stop clobbering the f key | Adam Mathes | 2018-10-04 | 1 | -6/+6 |
| | | |||||
| * | light/dark/black themes | Adam Mathes | 2018-09-29 | 1 | -8/+8 |
| | | |||||
| * | click targets on unread/all/star to li element instead of a for bigger tap ↵ | Adam Mathes | 2018-09-19 | 1 | -5/+5 |
| | | | | | targets | ||||
| * | wip adding /crawl/ manual crawl update | Adam Mathes | 2018-07-04 | 1 | -0/+13 |
| | | |||||
| * | enable feed export from web interface | Adam Mathes | 2018-07-04 | 2 | -4/+13 |
| | | |||||
| * | wip, simplifications | Adam Mathes | 2018-07-04 | 2 | -5/+5 |
| | | |||||
| * | log fatal web serving errors | Adam Mathes | 2018-06-17 | 1 | -1/+1 |
| | | |||||
| * | control style changes | Adam Mathes | 2018-06-16 | 1 | -8/+8 |
| | | |||||
| * | add back in search support, requires sqlite | Adam Mathes | 2018-06-16 | 2 | -7/+13 |
| | | |||||
| * | remove runtime static file dependencies, use rice boxes | Adam Mathes | 2018-06-12 | 2 | -14/+149 |
| | | |||||
| * | debug cleanup | Adam Mathes | 2018-04-29 | 1 | -2/+3 |
| | | |||||
| * | separator for scrape | Adam Mathes | 2018-04-27 | 1 | -8/+41 |
| | | |||||
| * | img proxy | Adam Mathes | 2018-04-26 | 1 | -4/+17 |
| | | |||||
| * | img proxy | Adam Mathes | 2018-04-26 | 1 | -9/+24 |
| | | |||||
| * | wip img proxy | Adam Mathes | 2018-04-24 | 1 | -0/+26 |
| | | |||||
| * | wip single category on feed | Adam Mathes | 2018-04-22 | 1 | -2/+24 |
| | | |||||
| * | crawl immediately on web feed add | Adam Mathes | 2017-04-17 | 1 | -0/+6 |
| | | |||||
| * | switch to single binary (neko) with standard flags. update config file to ↵ | Adam Mathes | 2017-02-20 | 1 | -17/+23 |
| | | | | | use nicer names | ||||
