Skip to content

v1.1.7 - Black Math

Choose a tag to compare

@orneryd orneryd released this 16 Jun 23:34

[v1.1.7] - Black Math - 6.16.2026

You can now install and run using Homebrew!

brew tap --trust orneryd/nornicdb && brew install nornicdb && brew services start nornicdb

Changed

  • llama.cpp bundle/build refresh
    • Updated bundled llama.cpp artifacts and synchronized build surfaces (Makefile, Windows batch scripts, shell/PowerShell build scripts, and Docker llama images) to the current pinned integration version.
  • Embedding model defaults hardened for local GGUF stability:
    • Embedding context features now default flash_attn to disabled (0) instead of auto for safer startup across Metal/CUDA backends.
    • NORNICDB_EMBEDDING_FLASH_ATTN=0 is treated as an explicit override (not silently ignored).
  • GPU-assisted HNSW construction path retuned for lower latency and lower allocation pressure:
    • Build-time candidate generation now uses a Metal batched matrix/top-k primitive plus graph-beam expansion instead of per-query GPU search calls.
    • Hot-path build code now reuses graph snapshot scratch state and batch flattening buffers, avoiding repeated per-batch/per-iteration map/slice churn.
    • Default GPU graph-beam knobs were tightened to reduce candidate work without changing persistence format:
      • NORNICDB_HNSW_BUILD_GPU_BEAM_WIDTH default now effectively min(candidate_k, 64).
      • NORNICDB_HNSW_BUILD_GPU_BEAM_UNION_MAX default now 4096.
    • On the internal BenchmarkHNSWBuildCPUVsAcceleratedCandidatesLarge1024D reference case (8k vectors, 1024 dimensions, Apple M3 Max), observed build latency moved from ~1.45s CPU to ~0.93s Metal graph-beam (~1.55x faster), with significantly reduced GPU-build heap growth versus earlier GPU prototypes.
  • Relationship vector-search fast paths expanded:
    • Relationship vector query specs and fast-path execution now use relationship vector indexes where applicable instead of scanning relationships and decoding vectors in the query path.
    • This reduces latency and allocation pressure for Graphiti fact-search shapes backed by relationship embeddings.
  • macOS/Homebrew release automation tightened:
    • Intel Homebrew tarballs now build on macos-15-intel.
    • The macOS release workflow now invokes the Homebrew artifact script through the restored make homebrew-artifacts target, preventing release jobs from failing after the main macOS assets upload succeeds.

Added

  • Homebrew distribution release plumbing:
    • Added a Homebrew tap scaffold under homebrew/ with formula, tap CI, formula-update workflow, and release maintenance docs.
    • Added make homebrew-artifacts and scripts/build-homebrew-artifacts.sh to publish nornicdb-darwin-arm64.tar.gz, nornicdb-darwin-amd64.tar.gz, and SHA256SUMS for Homebrew installs.
    • Extended the macOS release workflow to attach Homebrew tarballs and dispatch tap formula update PRs when HOMEBREW_TAP_REPOSITORY and HOMEBREW_TAP_TOKEN are configured.
  • NORNICDB_LLAMA_VERBOSE_LOAD generation-load diagnostics toggle:
    • Set to true/1 to expose native llama.cpp model-load diagnostics for Heimdall generation model loading.

Fixed

  • Configuration-driven auth disabling is now honored by server startup:
    • auth.enabled: false and server.auth: none from the loaded configuration no longer get overridden by serve startup defaults.
    • --no-auth remains a hard disable override, which keeps Homebrew first-run configurations that choose no authentication aligned with runtime behavior.
  • Heimdall local-model fallback error reporting now preserves both attempts:
    • When GPU load fails and CPU fallback also fails, the returned error now includes both failure paths instead of only the final fallback error.
  • Flash-attention override semantics corrected for Heimdall and rerank paths:
    • NORNICDB_HEIMDALL_FLASH_ATTN=0 and NORNICDB_RERANK_FLASH_ATTN=0 are now honored as explicit values.
  • Parameter-map property access correctness fixed across direct and WITH projection forms:
    • $map.key and $map['key'] now resolve to typed values in RETURN/expression evaluation instead of being returned as literal source text.
    • WITH $map AS m RETURN m.key / m['key'] now evaluate correctly (no token corruption from scalar substitution).

What's Changed

  • chore(deps-dev): bump vite from 8.0.14 to 8.0.16 in /ui in the npm_and_yarn group across 1 directory by @dependabot[bot] in #218

Full Changelog: v1.1.6...v1.1.7