Files
gbrain/docs
d23b5a6ed4 fix(reliability): revive soft-deleted slugs on put, name degraded search reason, land silent-failure wave (#2345 #2028 #2330 #2297 #2251)
Three verified backlog items in one wave:

- #2345: putPage's ON CONFLICT upsert never cleared deleted_at, so
  re-creating a soft-deleted slug returned created_or_updated while the
  page stayed invisible (silent write-swallow). Both engines now set
  deleted_at = NULL on upsert; regression test in pages-soft-delete.

- #2028: the query-embed catch in hybridSearch was bare, so a slow
  provider missing the ~6s deadline silently degraded hybrid search to
  keyword-only (empty results for CJK content). The keyword-fallback meta
  now carries degraded_reason (embed_timeout / embed_error /
  no_embedding_provider), a once-per-process stderr warning names the
  deadline and GBRAIN_QUERY_EMBED_TIMEOUT_MS, and the env var is
  documented in docs/guides/search-modes.md. Tests drive all three
  reasons through hybridSearch end to end.

- #2330 + takeover of PR #2398 (code hunks, sans release bookkeeping):
  upload-raw small-file persistence + source-namespaced storage paths
  (#2297), explicit skill_surface check in the focused doctor so
  unassessed surfaces warn instead of scoring a vacuous 100 (#2330),
  getHealth/getStats soft-delete denominator parity (#2330), PGLite
  reinit hint (#2301), and the updateSourceConfig array-branch guard
  (#2251) — both engines in lockstep, with the PR's 8-test suite.

Co-authored-by: garrytan <garrytan@users.noreply.github.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 14:47:29 -07:00
..