all repos — searchix @ d94a199425050ef9b1da09e5b8bba7611d3c1082

Search engine for NixOS, nix-darwin, home-manager and NUR users

CHANGELOG.md (view raw)

Changelog

v0.2.5 (2025-09-03)

Features

  • also prune storage and index on SIGUSR1 (afc540f)
  • improve logging of pruning process (dd9ca0b)
  • improve logging of errors in source ID handler (7f75159)
  • include search query in error messages (77a8dec)
  • make manual fetch always update sources (ff56604)

Fixes

  • abort pruning if too many entities selected (6ae7560)

v0.2.4 (2025-08-25)

Features

  • storage: respect –replace flag (abef2e5)
  • improve error logging during import (bc04964)

Fixes

  • not re-indexing despite –reindex argument (5afd91c)

v0.2.3 (2025-08-25)

Features

  • re- ingest/index on SIGUSR1/2 (832214d)
  • listen for SIGHUP if running in a terminal (15a5b32)

Fixes

  • always re-index if storage is (re-)created (12a29a5)
  • invalid config generated by nixos module (0da8640)
  • unable to set log level from nixos module (6d42ad1)
  • add missing prefix to version link in footer (5c14549)

v0.2.2 (2025-08-21)

Features

  • disable storm internal logging (180d4cf)
  • make web search timeout configurable (8a1972a)

Fixes

  • error setting up programs DB (3be8a83)
  • enable graceful shutdown (ff3d5a3)

v0.2.1 (2025-08-13)

Features

  • remove entities not present in current import (d6d0bf3)
  • pretty-print schema metadata file (85276e9)
  • store import timestamp on entities (35226fd)

Fixes

  • storage error (f896b68)
  • error when exporting from storage to index (131ccd3)

v0.2.0 (2025-08-13)

⚠ BREAKING CHANGE

  • searchix-web requires serve argument

Features

  • add check-config command (6196d25)
  • split storage import and indexing (40d106a)
  • store data separate from search index (520dcca)
  • add offline flag to reindex (mostly for dev) (21e9e77)
  • improve tracking and display of import runs (faf67ad)
  • add –fetch action to populate data/sources (001c5b4)
  • make downloaded filenames consistent (a49d405)
  • store fetched files in data directory (bdb5a54)
  • limit file operations using os.Root (1d518f4)
  • switch from errors to fault (3dfbd8d)

Fixes

  • update search index as part of update timer (a1bbe1c)
  • styles broken after updates due to stale cache/hash mismatch (450ff2d)
  • handle missing manpage URL map without aborting (a34ba86)
  • set date of files copied from nix store (762d97b)
  • don’t try to parse an empty last-modified header (cee1276)
  • error saving metadata when re-indexing (3e92836)
  • don’t log and exit on graceful shutdown timeout (1db432a)
  • import package even with incorrect ‘homePage’ casing (4c66828)
  • re-enable margin-top for headers in full page view (7b08d54)

v0.1.46 (2025-07-07)

Features

  • enable advanced query string syntax (465a9a8)
  • improve matching of multiple keywords (516f3e9)

v0.1.45 (2025-07-07)

Features

  • add link to status page (35aa773)

Fixes

  • set default values for custom sources (756d8f1)
  • avoid panic when rendering combined data (1685f38)
  • panic rendering corrupted data (a2b341d)

v0.1.44 (2025-06-25)

Fixes

  • descriptions truncated by one character (e7d8aad)
  • remove trailing full-stop from single-sentence descriptions (c102058)

v0.1.43 (2025-06-12)

Fixes

  • first sentence of some descriptions cut off (f608afd)

v0.1.42 (2025-06-12)

Features

  • link man pages like how NixOS does it (2f2d869)
  • parse {man} in markdown documentation (813e5a2)
  • parse {file} in markdown documentation (a4c441f)
  • parse {var} in markdown documentation (d296272)
  • parse {env} in markdown documentation (7ab69fb)
  • parse {command} in markdown documentation (cb907ad)
  • parse {option} in markdown documentation (0ba69e5)
  • enable parsing of markdown fences (2d958a5)
  • create option link parser (93b800b)

v0.1.41 (2025-06-09)

Features

  • improve logging of import process (e0e35b1)
  • enable automatic re-indexing on schema version changes (1d4eff7)

Fixes

  • matching long prefixes in option names (regression) (d2bc9be)
  • don’t quit after generating index for first time (7514e61)
  • keep names_with_underscores as single tokens (87f2c60)

v0.1.40 (2025-05-29)

Fixes

  • exact/prefix matches for package name/attr not shown (1f7e995)

v0.1.39 (2025-05-29)

Fixes

  • match option name prefixes even when len > 25 (61f28d3)

v0.1.38 (2025-04-13)

Features

  • improve display on smaller screens (8efd1e2)
  • hide description table on smaller screens (1b8b6b5)

Fixes

  • scroll header nav instead of wrapping words on tablets (8d11809)

v0.1.37 (2025-04-06)

Fixes

  • package definition link regressed since v0.1.31 (0cceea8)
  • missing base.css in package lib folder (2b50775)

v0.1.36 (2025-04-03)

Features

  • prioritise whole-phrase matches (c6bc629)
  • add flag to generate error page for web server (5127a98)

Fixes

  • prioritise exact attribute matches above all (c2bbda8)
  • erroneously running importer on every startup (e699eaa)

v0.1.35 (2025-04-02)

Features

  • enable searching homepages field (0ceaf8e)
  • improve logging of next import time (00b189d)
  • make index batch size configurable (f38ccb5)
  • list package platforms in detail view (f8f4f74)

Fixes

  • importer timeout ignored in scheduler (75c2afd)

v0.1.34 (2025-03-24)

Features

  • buffer fetched HTTP bodies (abf819d)
  • re-index on startup if last run > 24 hours ago (6984d4d)

Fixes

  • another typo in search markup (efaaf3f)
  • typo in indexing status (fecc84f)
  • nil pointer panic in importer (0fb48cf)

v0.1.33 (2025-03-24)

Fixes

  • build failure due to outdated file reference (dd58d99)

v0.1.32 (2025-03-24)

Features

  • improve handling of long option descriptions (4fa3ceb)
  • widen body (1c56ff7)
  • improve display of indexing times and durations (297a7a2)
  • link directly to version changelog in footer (7d4ff28)
  • js: allow opening details in new tab/window (03fa0eb)
  • promote prefix/exact name/attr matches (1328df9)

Fixes

  • missing content of last index run time (0dc2635)
  • block single-character queries (0cd9a24)
  • don’t attempt to load more than configured number of results (d39204e)

v0.1.31 (2025-03-22)

Features

  • nixos-module: allow setting environment variables (e8fbdf3)
  • nixos-module: allow setting environment variables (78fc3e6)
  • demote NUR results in combined search (782b636)
  • promote results with literal or prefix name matches (49a07fb)
  • make list of source links dynamic (7247322)
  • enable NUR package import (2705e97)
  • wrap search form in semantic element (ff1e953)
  • show last/next/current indexing run time (383ee78)
  • shorten shutdown timeout in development (49e3004)
  • Convert templ components to gomponents (896d844)

Fixes

  • remove rendering from search timeout restriction (d4ec6e5)
  • package programs displayed off-centre (de98780)
  • footer spacing (c0c02ac)
  • detach version from rest of footer text (6b342b8)
  • wrong pagination links for combined results (9102aef)

v0.1.30 (2025-03-18)

Features

  • show version number and link in footer (5762645)
  • split compound words in names into n-grams (b650b99)

v0.1.29 (2025-03-17)

Fixes

  • nil pointer deference in nixpkgs-channel fetcher (573e24b)
  • build error (incomplete commit) (d5e1147)
  • build error caused by incomplete commit (f775db9)

v0.1.28 (2025-03-12)

Fixes

  • js error due to missing class on nav menu item (9af2747)

v0.1.27 (2025-03-11)

Fixes

  • sources disabled by default in NixOS module (333bd2f)

v0.1.26 (2025-03-11)

Fixes

  • nixos import fails with default settings (5cdcac9)

v0.1.25 (2025-03-11)

Features

  • link to referenced projects (cb37af4)

Fixes

  • panic when source order > number of sources (d99fb7b)

v0.1.24 (2025-03-11)

Fixes

  • js: switching source after reset uses old query (12947e5)

v0.1.23 (2025-03-10)

Fixes

  • remove duplicate link to source code (1fe30ce)

v0.1.22 (2025-03-10)

Features

  • default to combined search on root path (05a32bd)

v0.1.21 (2025-03-06)

Features

  • prioritise exact matches on programs/attr/name field (6c9a3a9)
  • improve relevance with compound words (24e3fc9)

Fixes

  • re-index refusing to delete data directory with programs.db (3ee8248)

v0.1.20 (2025-01-24)

Fixes

  • build failure (bad rebase) (2d6315f)

v0.1.19 (2025-01-24)

Fixes

  • import slowdown when querying programs database (1e50453)

v0.1.18 (2025-01-20)

Features

  • allow HTTP request logging to be disabled (584d295)
  • sentry: trace all transactions (19d8046)

v0.1.17 (2025-01-19)

Fixes

  • sentry: report correct HTTP path in traces (eece88d)
  • use importer configured timeout for sentry check-ins (b706b5a)

v0.1.16 (2025-01-15)

Features

  • enable searching via program names for multi-program packages (7aea6aa)

Fixes

  • dev: fix CSP not working in dev mode behind reverse proxy (b26ddba)

v0.1.15 (2025-01-05)

Features

  • offer to show all results on one page (if < 10000) (9207642)

Fixes

  • dev: overwrite previous asset hash on change (d289e54)

v0.1.14 (2025-01-02)

Features

  • show scores in results table in dev mode (58643f3)

Fixes

  • boost non-stemmed matches over stemmed matches (797c6e2)

v0.1.13 (2024-12-30)

Features

  • increase results per page (e1787bf)
  • de-rank packages on ‘all’ search (df5db96)

v0.1.12 (2024-12-04)

Fixes

  • use UTC time for fetch/import timer (c92530b)
  • enable using module in pure evaluation mode (ec4946e)
  • enable using module in pure evaluation mode (174ad04)

v0.1.11 (2024-11-20)

Features

  • apply stemming to search index terms (72d56a6)

v0.1.10 (2024-11-10)

Fixes

  • search all missing expected results (8656f47)

v0.1.9 (2024-08-17)

Fixes

  • don’t error when item not found (b427c26)
  • tell browsers not to capitalise search input (faf4d0e)

v0.1.8 (2024-07-13)

Features

Fixes

  • nil panics rendering last page of search results (b1fd710)
  • panic rendering error pages (ee83dfd)
  • opensearch searches not using input query (a5f58bc)
  • extra data after error parsing query string (4423458)
  • panic rendering search results (5a2d54d)
  • panic on search error (f076b5b)

v0.1.7 (2024-06-29)

Features

  • add message for users with javascript disabled (e500a10)

Fixes

  • blank modal when using browser navigation (8ef4bc9)
  • duplicated results tables via JS search (e0d86be)
  • panic rendering results (dbeddce)
  • incorrect formatting of options results headers (107d54a)

v0.1.6 (2024-06-19)

Features

  • add low-memory mode (63599c7)
  • enable configuration of flags as environment variables (a495a67)
  • display results in a table, showing details on click (408aed0)
  • add detail pages for packages/options (d40c0e1)
  • use stale-while-revalidate instead of immutable asset paths (872ae5d)
  • serve assets via immutable paths (896926a)
  • make security headers stricter (b537694)
  • enable sub-resource integrity for assets (4698a97)

Fixes

  • create index metadata when index exists and meta doesn’t (e665146)
  • moving through search history shows no results (66b2556)
  • nil pointer exception when (re-)indexing (2c4a19a)

v0.1.5 (2024-05-29)

Features

  • improve search relevance by boosting keyword matches (73185e4)
  • support cleartext HTTP/2 (i.e. from a reverse proxy) (16b4337)

Fixes

  • missing alternate forms of packages with the same name (838e178)
  • incorrect (switched) behaviour of –update/–replace (97021f7)
  • re-enable exit –update/–replace (a5e3c14)
  • check for nil pointers in NewMux (2c1491d)

v0.1.4 (2024-05-23)

Features

  • stream files directly from fetcher to importer (0dbfe37)
  • add –update flag to force-update index and exit (9c790c1)
  • config: use enums’ string representations to print defaults (a90419a)
  • config: print durations and URLs with human values (0f55080)
  • show default configuration with –print-default-config (60a1569)

Fixes

  • abort import of source on batch processing errors (3053e41)
  • web: fetch host from request, not header, where it’s expected (e69d785)
  • nix: generate default baseURL from listen address and port (027db43)
  • make fetcher check on creation that it supports Source.Importer (b77a24f)
  • importer: abort import of current source in case of error (c821da1)
  • nix cannot read date/time TOML values from default config (202317d)
  • duplicate error logging on config parse error (6037d5c)

v0.1.3 (2024-05-17)

Features

  • ui: enable resetting form by clicking current source link (6ea953b)
  • render markdown in packages’ LongDescription (934a069)
  • use attribute instead of name for packages (698881a)

v0.1.2 (2024-05-17)

Fixes

  • css: pagination styles not applied (f10543d)

v0.1.1 (2024-05-17)

Fixes

  • nix: missing version variable in build (8a1c2e8)

v0.1.0 (2024-05-17)

Features

  • display more information about packages (8df293c)
  • error on non-matching configuration entries (6488132)
  • automatically add/remove sources to/from index (9f241bf)
  • support searching packages (05e6197)
  • index: enable storage of package data (42611df)
  • improve accessibility and browser behaviour (054d2b3)
  • exit after rebuilding index if --replace is specified (d6e117b)
  • decode brotli-compressed files (b8da487)
  • extract and store package set (e.g. nodePackages) (8b78a98)
  • importer: process packages from nixpkgs package.json (51f774a)
  • add caching header (except on error pages) (eb88ab1)
  • monitor import jobs via sentry (fa97ca8)
  • add browser search engines via opensearch description (5521173)
  • print clickable URL on startup in dev mode (121ec2b)
  • render HTML error pages (2d5ee7b)
  • module: add default for Web.Environment (634534d)
  • add DownloadOptions importer (fetches pre-built options.json) (df3b6bf)
  • log on startup if index doesn’t exist (5f9c7ef)
  • rely on system to show log times in production (37afa6c)
  • allow adding extra HTML to the body via configuration (7077a37)
  • enable using channel URLs if unable to resolve via NIX_PATH (fe79b45)
  • nix module (fb25a97)
  • clicking another source re-uses query (42bcd10)
  • js: save and restore input state with history (b517b1e)
  • version search index mapping schema and warn if outdated (76f18d6)
  • dynamically link to sources (631c02a)
  • format server listen address as URL (f42dfe7)
  • enable index path to be configured (0986e86)
  • importer: make timeout configurable via command-line (1db7c2a)
  • importer: add –replace flag to overwrite existing index (778e1d7)
  • allow configuration of log level (99d5507)
  • enable setting config file path via command line (14c1dda)
  • import sources from configuration in go code and index options (e062ca7)
  • make configuration optional (967f6fd)
  • improve search by using a custom tokeniser for option names (24b81a6)
  • paginate search results (973345a)
  • search multiple sources (212e5cf)
  • search one set of options (c15b142)
  • link to exact commits in NixOS/nixpkgs (8c13320)
  • render markdown examples (c0fbf11)
  • link to nixpkgs on github for declarations (71de547)
  • auto-linkify URLs in markdown (0d65324)
  • render markdown in option descriptions (2430f46)
  • browser history management (87ec9ec)
  • show metadata in grid (b682ed9)
  • frontend search implementation (5b9e67f)
  • create nixos options.json importer (1fb64b0)
  • add basic input frontend (0945da8)
  • add css (177c2de)
  • watch and live reload in development (8411fb4)
  • serve a very basic html template (7360307)

Fixes

  • render errors as HTML given correct content-type (2edf3f0)
  • missing last page of search results (f9b0340)
  • store only data from current entity in index (3b877b3)
  • nil pointer when updating all sources (041ebd2)
  • don’t panic when re-indexing if fetcher did not update (43fe431)
  • css: support browsers without css nesting (29f2099)
  • logging: track whether headers are written properly (c5c9f72)
  • rebuild index when –replace is specified (d558039)
  • bad git conflict resolution (d65d80e)
  • flake: remove overlay export (8e22448)
  • importer: don’t create duplicate nested directories (a94632e)
  • css: barely-visible text in dark mode (3fd832b)
  • module: include nix in path (67e1a28)
  • config: show read URL on parse failure (45432ae)
  • module: allow setting sentry DSN (f700a32)
  • don’t panic on TOML decode error (53c9fb2)
  • linking to wrong declaration URLs (df77930)
  • import: don’t remove index if there are errors (ef50bbf)
  • js: make reload after error execute attempted search (84acac6)
  • js error when no results found (628c2a8)
  • missing menu on search pages (793c89a)
  • no results for home-manager search (0eccb18)
  • config: add default channel name for home-manager (3554d8a)
  • missing menu on search page (42dd2f6)
  • pointer type mismatch (8ab9adf)
  • js: pushstate also on errors, so that the user can refresh (453ae85)
  • js: null value error for pagination (83f6751)
  • incorrect default/example values stored after processing (9f1a4aa)
  • incorrect data shown for default and example option keys (5e008c2)
  • panic on importing darwin options (9b24b80)
  • use options exposed via user’s channel instead of ours (1fdd1f8)
  • css: first grid row too tall (3c54a3f)