Skip to content

v1.14.4-ce

Ten fixes for failures that looked like success

Every bug in this release passed its own health check: a query that returned the wrong rows without erroring, an index that reported itself created and vanished on restart, a settings page that announced a capability the install did not have, and an installer config that made GENERATE() fail on every CPU-only host.

Released: 2026-08-21 · Type: correctness and reliability · Upgrade: drop-in


Wrong query results on an indexed AND

Affects correctness — upgrade if you use secondary indexes

An AND where one conjunct is served by an index and the other is not returned rows the WHERE clause excluded.

SELECT * FROM telemetry_events
 WHERE received_at > '2026-08-18'            -- indexed
   AND event_type  = 'installation_created'  -- residual, dropped

Observed on a live install: 40 rows returned, 10 correct. No error is raised.

Two properties made this hard to spot:

  • COUNT(*) over the same WHERE returned the correct count, because an aggregate plans to TableScan → Filter.
  • Adding ORDER BY returned the correct rows, for the same reason.

So the two natural cross-checks both disagreed with the bug.

Fixed. The index-hit path now evaluates the remaining conjuncts through the same evaluator FilterExec uses. Predicate-only columns are materialised for evaluation and narrowed back out of the result.

Index definitions survive a restart

Previously CREATE INDEX wrote to an in-memory store only. Definitions did not reach disk, so a restart discarded every secondary index and the instance silently reverted to full table scans.

Results remained correct throughout — a table scan answers the same question — so the only symptom was an index that quietly stopped working.

Action required for existing installs

Indexes created before v1.14.4 were never persisted and will not reappear after upgrading. Recreate them once; from this release they survive restarts.

SHOW INDEXES also now reports secondary indexes. It previously listed only the primary key and unique constraints, so a CREATE INDEX was invisible to it even while the planner was actively using that index.

These two fixes ship together by necessity

The residual-predicate bug only manifests when an index is live in memory. Because restarts kept wiping indexes, instances silently reverted to the safe path. Making indexes durable makes the residual bug more likely to fire — neither fix is safe to ship alone.

Installer wrote a timeout that breaks GENERATE on CPU

The installer wrote [query] default_timeout_ms = 30000 into gateway.toml. The engine's own default is 300000. An install following the documented path therefore got a stricter timeout than an install with no config file.

On a CPU-only host a cold GENERATE() takes roughly 53 seconds, so GENERATE, AGENT_RUN and NL2SQL all failed with Operation timeout on a fresh install.

Existing installs

If your gateway.toml was generated by an older installer, raise [query] default_timeout_ms to 300000. New installs get this automatically.

Interface

Fix Detail
Wide results A result set with many columns pushed the editor and its controls off-screen; only the data table scrolls now
Agents tab Crashed the whole Settings page — on an empty database — because /v1/agents returns {"agents": []} and the client expected a bare array
Modals Rendered white text on a white panel; the shared component now defaults to the dark theme
Vector Search A placeholder page was removed from the navigation. Vector search is SQL: COSINE_SIMILARITY(EMBED(a), EMBED(b))
Sidebar Scrolls instead of clipping its last entries
Vision Provider Reports whether a vision model is actually installed, rather than always claiming native vision is active
Streaming The list no longer renders empty while streams are running
PDF preview Unblocked — the engine's own Content-Security-Policy was refusing blob-backed PDFs in every browser

Providers

Whitespace-only stop sequences are stripped before reaching a provider, which some APIs reject outright.

Validation

Gate Result
Feature validator, against the published artifact 187 / 187
Recipe certification, pristine data directory 162 / 162
AVX-512 audit 2,018 uses, all in _blake3_*, none in the inference path
Non-AVX-512 canary (i5-10400F) boot 3s · EMBED 384 dims · GENERATE OK · zero SIGILL

The validator ran against the artifact published for this release, not a local build.

Upgrading

Drop-in. No migration, no schema change, no config change.

docker pull synapcores/community:latest
curl -fsSL https://get.synapcores.com | sh