New Features
Web Crawler
New hister index -r <url> command crawls sites recursively.
Supports the standard Go HTTP backend and a headless Chrome backend (chromedp).
Configurable depth, link count, allowed/excluded domains, and URL patterns.
PostgreSQL Backend
Full PostgreSQL support as an alternative to SQLite.
Configure via a postgres:// connection string in server.database.
Extractor Pipeline Overhaul
Extractors are now configurable, have explicit states (continue/done), and expose
a Preview() method used by the preview panel. New extractors included:
- Custom
pkg.go.devextractor for Go documentation pages - Basic Stack Overflow extractor
Desktop Readability Panel
Focused search results load automatically in a split-pane reader on the right side
on screens wider than 1280 px. The panel is togglable and its open/closed state persists.
Enhancements
- HTML sanitizer (bluemonday) applied to all extracted content
metadatafield added to documents for arbitrary key/value datasearchinput type attribute on search fields for better mobile UX- Build commit ID shown in the version string
- Admin users can create global indexes or indexes on behalf of other users
hister indexskips already-indexed URLs by default; pass--forceto reindex them- URL and domain wildcard matching automatically anchors to start and end
- Table of contents added to the API docs page
- Document indexed date shown in the preview panel
- Search query reflected in the browser tab title
- WebSocket communication optimised to reduce redundant round-trips
- Automatic redirect on zero results is now optional (configurable)
importcommand renamed toimport-browserto freeimportfor index import/export
Bug Fixes
- Browser history database opened read-only to avoid lock conflicts (#304)
- History entries now deleted when their associated document is deleted (#303)
- Crawler user-agent correctly applied after redirect handling (#302)
- Fixed field-specific alternation parts in query parser (#274)
- Negated query terms no longer trimmed twice
- HTML field no longer leaks into search results (#268)
- Expanded query hint only shown when the expansion is longer than the original query
- URL changes after HTTP redirects now resolved correctly
- Crawler no longer stops on HTTP errors
- Crawler timeout now applied during browser history import (#278)
- Pinned result titles no longer truncated on narrow screens
- Dark mode handled correctly in the preview panel
- Mobile layout no longer introduces unwanted line breaks