v1.1.7 - Black Math
[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_attnto disabled (0) instead of auto for safer startup across Metal/CUDA backends. NORNICDB_EMBEDDING_FLASH_ATTN=0is treated as an explicit override (not silently ignored).
- Embedding context features now default
- 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_WIDTHdefault now effectivelymin(candidate_k, 64).NORNICDB_HNSW_BUILD_GPU_BEAM_UNION_MAXdefault now4096.
- On the internal
BenchmarkHNSWBuildCPUVsAcceleratedCandidatesLarge1024Dreference case (8k vectors, 1024 dimensions, Apple M3 Max), observed build latency moved from ~1.45sCPU to ~0.93sMetal 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-artifactstarget, preventing release jobs from failing after the main macOS assets upload succeeds.
- Intel Homebrew tarballs now build on
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-artifactsandscripts/build-homebrew-artifacts.shto publishnornicdb-darwin-arm64.tar.gz,nornicdb-darwin-amd64.tar.gz, andSHA256SUMSfor Homebrew installs. - Extended the macOS release workflow to attach Homebrew tarballs and dispatch tap formula update PRs when
HOMEBREW_TAP_REPOSITORYandHOMEBREW_TAP_TOKENare configured.
- Added a Homebrew tap scaffold under
NORNICDB_LLAMA_VERBOSE_LOADgeneration-load diagnostics toggle:- Set to
true/1to expose native llama.cpp model-load diagnostics for Heimdall generation model loading.
- Set to
Fixed
- Configuration-driven auth disabling is now honored by server startup:
auth.enabled: falseandserver.auth: nonefrom the loaded configuration no longer get overridden by serve startup defaults.--no-authremains 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=0andNORNICDB_RERANK_FLASH_ATTN=0are now honored as explicit values.
- Parameter-map property access correctness fixed across direct and
WITHprojection forms:$map.keyand$map['key']now resolve to typed values inRETURN/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