From a87dd4b2fe2548bbc717996a3eea7c325c314a2b Mon Sep 17 00:00:00 2001 From: damocles Date: Tue, 18 Aug 2026 23:17:06 +0200 Subject: [PATCH] forge: pin issue search indexer to db, not bleve --- nix/host-modules/hive-forge/default.nix | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/nix/host-modules/hive-forge/default.nix b/nix/host-modules/hive-forge/default.nix index ec3b54ee..f85eb089 100644 --- a/nix/host-modules/hive-forge/default.nix +++ b/nix/host-modules/hive-forge/default.nix @@ -705,6 +705,23 @@ in # tighter than the broad `private` builtin. webhook.ALLOWED_HOST_LIST = "external,${hyperhiveDomain}"; log.LEVEL = "Warn"; + # Pinned explicitly rather than left to upstream's default + # (currently `bleve`, a separate full-text index Forgejo + # builds/maintains itself). `db` searches the database + # directly instead — no second store that can silently + # disagree with it. Found via a false-positive search bug: + # `hive-forge list --search` returned matches with zero + # literal occurrences of the search term, consistent with a + # bleve index that drifted stale against the DB with + # nothing to detect the drift. At this repo's scale (~3.4k + # issues+PRs) a DB scan costs nothing worth noticing, and + # it's the same substring semantics `--search`'s own doc + # already promises — bleve's relevance ranking buys nothing + # we use here. Config-only (part of the forgejo unit, so a + # rebuild restarts it for free); the old bleve index + # directory is left on disk, unused, rather than risk + # deleting the wrong thing. + indexer.ISSUE_INDEXER_TYPE = "db"; ui = { DEFAULT_THEME = "catppuccin-vibec0re"; THEMES = "catppuccin-vibec0re,forgejo-auto,forgejo-light,forgejo-dark,gitea-auto,gitea-light,gitea-dark";