Commit Graph
13 Commits
Author SHA1 Message Date
junv c5c18ae74a Add format=llm support which get rid of extra content and only focus on title, url, snippet 2026-03-09 17:55:38 +11:00
junv 9c9c52bf8b Add docker-compose 2026-03-07 12:15:53 +11:00
junvandCopilot efc237ae52 feat: add POST support and compatibility params to /api/search
- Switch @router.get to @router.api_route with methods=[GET, POST]
- Add pageNumber alias for page (takes precedence when provided)
- Add numResults, format, imageProxy, safesearch params (accepted for
  compatibility with external clients)
- Update README.md, agents.md, FEATURES.md with param reference tables
- Add CHANGELOG 1.8.1 entry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-24 10:53:35 +11:00
junvandCopilot 2f9889004c feat: add bookmarks for web and image results
- Bookmark icon on every web and image search result card
- Bookmark toggle in image lightbox viewer
- Dedicated /bookmarks page with All/Web/Images filter tabs
- Web bookmarks as cards, image bookmarks in masonry grid
- Full CRUD API: GET/POST /api/bookmarks, DELETE by id/url
- SQLite persistence in shared database
- Links in homepage footer and results page footer

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-23 19:04:46 +11:00
junvandCopilot e9a5d68553 feat: Redis search cache with configurable TTL
- Add optional Redis caching for search results (REDIS_URL env var)
- Cache TTL configurable via UI: 0h (disabled) to 168h (1 week), default 6h
- New backend modules: cache.py (async Redis get/set/flush), settings.py (SQLite settings table)
- New API endpoints: GET/PUT /api/settings, DELETE /api/cache
- New 'Cache' tab in Settings modal with status indicator, preset buttons, slider, and flush
- Cache keys are deterministic hashes of query+category+page+image_size+engines
- Redis is fully optional: graceful no-op when REDIS_URL unset or Redis unreachable
- Updated Dockerfile, README, CHANGELOG, FEATURES

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-23 17:26:14 +11:00
junvandCopilot b36d3e53b5 feat: accessibility overhaul, agent-friendly API, standardized errors
P0 fixes:
- Image result cards are now real <a> links (open-in-new-tab, Cmd-click, copy-link)
- aria-label on all icon-only buttons (settings, clear, close, nav, toggles, delete)
- Search input semantics: label, name=q, type=search, combobox ARIA pattern
- Visible focus-visible ring on all interactive elements, removed bare outline-none

P1 fixes:
- Skip to main content link for keyboard navigation
- Proper heading hierarchy (h1/h2) and landmark elements (nav, main, aside)
- aria-live regions for loading/results/error announcements
- Custom favicon SVG (eliminates 404 console errors)
- Dialog/modal semantics with role=dialog and aria-modal

P2 API improvements:
- result_id, rank, engine on every result; timestamp, total_results, has_next on response
- Standardized APIError model (code/message/details/retry_hint) on all error responses
- X-Response-Time-Ms and rate-limit headers on all responses
- curl examples and sample JSON in OpenAPI docs for every endpoint
- Global exception handler returns consistent error JSON
- engines parameter in URL for reproducible sessions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-23 17:06:09 +11:00
junvandCopilot bd22089d23 Update CHANGELOG and FEATURES docs for v1.3.0
- Lightbox navigation with arrow keys
- Visited link styling
- Mobile settings modal fix
- Search stats collapsed by default on mobile

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-23 16:28:04 +11:00
junv 16968b8565 add masonry image layout 2026-02-23 16:09:52 +11:00
junv 7c0430f2dc Update google and bing search logic 2026-02-23 15:55:25 +11:00
junv cb1469c23d Update settings! 2026-02-23 14:56:27 +11:00
junv 2144687bd3 Add feature to exclude results from a website 2026-02-23 14:50:31 +11:00
junv 8ded475231 Update 2026-02-23 14:41:23 +11:00
junv 9d36d4aba9 Done by copilot 2026-02-23 14:37:07 +11:00