New Features
ChatGPT and Hacker News Extractors
New ChatGPT and Hacker News extractors preserve complete conversations and
discussion threads. ChatGPT extraction keeps visible user and assistant turns,
including headings, lists, tables, code blocks, and safe links. It supports
authenticated conversations, public shares, and custom GPT conversation URLs.
Hacker News extraction records submission metadata, optional post text, and the
complete nested comment tree. Shared discussion utilities also improve how
Reddit and Discourse comments are represented.
URL Regular Expression Search and Cleanup
Queries can now use url_re: to match normalized document URLs with Go regular
expressions. Matching supports anchors, case folding, negation, and grouped
alternatives. Invalid or excessively long expressions return a clear error.
The delete API supports a dry_run mode that counts matches without changing
the index. The Rules page and result actions can use this preview to delete
documents that match a new or edited skip rule. Hister shows the match count
and asks for confirmation while keeping the saved rule if deletion is canceled.
Safari History Imports
hister import browser can now import Safari history on macOS, including visit
counts and start date filtering. Browser databases are detected from their
schema instead of their filename, which also resolves ambiguous Safari and
Ladybird database names. Permission errors explain the Full Disk Access setting
required by macOS.
Terminal Focus and Native Appearance
The terminal interface now separates search input from result navigation.
Keyboard, pointer, and scroll actions move focus predictably, while contextual
shortcuts and feedback reflect the active area. Dialogs, tabs, rules, previews,
and narrow layouts have more consistent navigation and pointer behavior.
The new default terminal appearance inherits the terminal foreground,
background, and ANSI palette. The Settings overlay can switch among terminal,
automatic, dark, and light modes, while the theme picker remains available for
choosing complete Hister themes.
Richer Suggestions and Previews
OpenSearch suggestions now include pinned and history results before index
matches, together with descriptions and direct target URLs. Local and remote
file suggestions open the appropriate file or readable preview.
Readable previews display document type, language, label, visit count,
ownership, and extractor metadata. They also provide links to the source and a
standalone preview. Exact document identifiers keep previews and version
history on the correct document when users index the same URL separately.
Enhancements
- Home page: indexed pages, files, rules, and aliases use compact clickable
statistics, including a direct file search. - Web navigation: frequently used destinations are visible again, and the
menu provides automatic, light, and dark appearance choices. - User administration:
hister update-user --passwordcan assign or change
a password, including for an account originally created through OAuth. Token
regeneration now requires confirmation in the profile interface. - Semantic search: index metadata records the embedding configuration and
warns when stored vectors need reindexing. PostgreSQL configurations are
validated against the 2000 dimension limit of its HNSW vector index. - Indexer maintenance: compatibility backfills run in interruptible
background batches, so older indexes no longer delay server startup. - Operations:
/healthis available outside any configured base path.
Generated pages avoid stale caching while immutable assets use long lived
cache headers. - OAuth: provider discovery, token exchange, and profile requests now have
bounded request timeouts. - Video extraction: the
ytdlpextractor accepts anextra_domainslist
for additional supported sites. Archive.org pages no longer invoke it by
default. - Configuration documentation: settings show their server or client scope,
environment overrides appear earlier, and config path precedence is clearer. - Nix: the flake uses the upstream NixOS Hister module, and dependency
hashes are maintained throughnix-update. - Dependencies: Go modules, npm packages, container bases, Nix inputs, and
GitHub Actions were updated.
Bug Fixes
- Local files pass through the normal processing chain during reindexing, and
Markdown snapshots remain classified as local files. - File statistics include global documents in multiple user mode.
- Preview content and archived versions resolve by exact document identifier
instead of selecting another user's copy of the same URL. - Partial rule updates preserve any omitted rule groups.
- Search suggestions no longer contain duplicates.
- Input method composition no longer starts searches before text composition
completes. - Leaving the search page no longer displays an expected WebSocket error.
- PostgreSQL semantic search rejects unsupported vector dimensions before
attempting to create the vector store. GET /mcpreturns method not allowed instead of the web application.- The container health check works when Hister uses a nonroot base URL.
- Safari browser extension origins are accepted by CSRF validation.
- Unrelated files whose names resemble language indexes are ignored.
- Bleve keeps its established open file allowance, avoiding index failures
without reducing performance.
Backward Compatibility Notes
The following changes require attention when upgrading from v0.18.0:
- Nix flake:
x86_64-darwinis no longer exported because Nix 26.11 does
not support it. The Hister flake module now relies on the upstream
services.histermodule supplied by nixpkgs.