Content Quality: Clear News structure (release date, SQL-client changes, the window-function discrepancy, upgrade guidance, vendor-labelled benchmarks, what is unknown). 888 words, inside the News range. The headline, summary and lead are each backed by the release notes, the blog and the protocol docs.
Source Verification: Read all nine snapshots from sources/2026-11/surrealdb-40-adds-a-mysql-listener-and-a-postgresql-sql-dialect-to-its-postgres-port-but-its-blog-and-release-notes-differ-on-window-functions/ (source-0 to source-8, all HTTP 200, no archive fallback, no suspicious_patterns in the manifest; the scanner flagged nothing and the page text only contains 'AI agent' in ordinary product copy). source-0 (surrealdb.com/releases/4.0, marked Stable): 4.0.0 released Nov 3, 2026; 'the --postgres-bind listener now runs PostgreSQL SQL, and the new --mysql-bind listener runs MySQL'; 'In 3.3, a PostgreSQL client could connect to SurrealDB, but it still had to send SurrealQL' (so the headline's 'MySQL listener' is new in 4.0 and the PostgreSQL change is the dialect on the existing 3.3 wire listener); no beta/experimental label on either listener (only the in-place 3.x upgrade is called experimental); window-function entry lists row_number ... nth_value with PARTITION BY, ORDER BY, named WINDOWs and ROWS frames and says 'GROUPS frames and RANGE with a numeric offset are refused'; SurrealKV only engine, RocksDB/IndexedDB removed, SurrealML removed, Surrealism modules renamed extensions with SIGNER and CAPABILITIES; 4.0.1 released Nov 9, LICENSE names SurrealDB 4.0 as the Licensed Work under BSL 1.1, Change Date 2030-11-03, '4.0.0 shipped with the parameters for SurrealDB 3.0', approximate KNN with no vector index refused where 4.0.0 returned no rows. All confirmed. source-1 (launch blog): 'Window functions, recursive CTEs and FULL OUTER JOIN are refused with a named error (0A000)' in a paragraph that begins 'This is a defined subset of SQL'; 'SurrealDB 4 is recommended for new (greenfield) database deployments'; 'we recommend upgrading to SurrealDB 4.1 once it becomes available'; one-way upgrade; page structured data datePublished 2026-11-03T16:52:16.000Z, dateModified 2026-11-10T11:25:20.165Z, so the sentence survived a post-launch edit. Confirmed. source-5 (surrealdb.com/4): FAQ answer says 'recursive CTEs and window functions are refused'; 'Indexed queries are projected at 22x faster than in 3.x'; HNSW 1M x 768 built in 986 s instead of 7,290 s 'in parallel batches on a 64-core server'. Confirmed. source-2 (Postgres protocol docs): 'From 4.0: window functions (OVER (...))'; Window functions bullet lists the same functions with PARTITION BY, ORDER BY, WINDOW clause, ROWS frame and RANGE frame bounded by UNBOUNDED or CURRENT ROW; refused list (GROUPS, EXCLUDE other than NO OTHERS, RANGE with numeric offset, DISTINCT, etc., 0A000); recursive CTEs, FULL OUTER JOIN, INTERSECT ALL and EXCEPT ALL refused with 0A000; SurrealQL not available over the protocol from 4.0. Confirmed. The opposite statement is therefore really made on each side: blog and FAQ say window functions are refused, release notes and protocol docs say they run (with named forms refused), and none of the four pages explains the difference (grep of all nine snapshots for 'window' shows no reconciling text), so 'differ' is accurate and the article does not reconcile them. source-3 (3.x to 4.0 upgrade guide): 'On 3.3 a connection ran SurrealQL unless it selected GQL'; 'experimental in 4.0'; 'Once a 4.0 node has opened the datastore, a 3.x build refuses to start on it'. Confirmed. source-4 (benchmarks): 42% CRUD, 130% full-table scan, 2121% indexed (marked 'projected'); caveat 'SurrealDB's indexed query figures are projections: the measured throughput scaled by 1.63 (1.69 for the OR of two equalities)'; crud-bench; Threadripper 9970X, 'last run 3 November 2026'; vs PostgreSQL 18: 12% slower CRUD mean, 47% slower point reads by record id, 1.8x faster writes. Recomputed from the page's own rows: PostgreSQL 18 CRUD mean (82.8+663.9+79.8+83.2)/4 = 227.4k, SurrealDB 4.0 (143.1+348.8+130.5+173.7)/4 = 199.0k (-12.5%); point reads 348.8/663.9 = 0.525 (-47%); writes mean 149.1k vs 81.9k = 1.82x; 3.x 104 ops/s to 4.x 2k for indexed lookups consistent with 22x. The article labels all as the vendor's and names harness and machine. Confirmed. source-6 (Blocks & Files, Chris Mellor, 'thu 5 Nov 2026 // 15:59 UTC'): published two days after the 4.0.0 release (GitHub API published_at 2026-11-03T15:22:58Z, UTC; also read on the release page snapshot source-7); 'made no formal news announcement, relying instead on webpages, a blog post, and X social media posts'; '~22x faster' described as 'projected'; recommends waiting for v4.1; BSL 1.1 note. It repeats vendor figures and reports no measurement; the article says so. source-7/8 (GitHub releases v4.0.0 and v4.0.1): relative-time datetime 2026-11-03T15:22:58Z and 2026-11-09T16:56:21Z, matching gh api published_at. Confirmed. Quotes: all 14 quoted strings in the body were matched programmatically (whitespace and code formatting normalised) against the snapshot text and each appears verbatim. Absence and quantifier sentences ('none of the cited sources reports an independent test', 'None of the pages explains the difference', 'the cited sources do not say whether anyone outside the company has run it', 'not stated ... which patch builds') were each checked against all nine snapshots and hold. Derived numbers: the article states no Herald-derived counts; the 'roughly 22x' is the vendor's (2121%) figure and attributed. Independence: this is a News article, which needs at least 3 sources (policy); it cites 9, of which one is independent (Blocks & Files, which restates the vendor announcement and says so in the article); seven are SurrealDB's own pages and two are GitHub release pages for the vendor's releases. The sourcing bar for News is met, and the article states plainly that no independent test exists. Earlier coverage: the SurrealDB 3.3 Briefing (2026-10/01-...) has a corrections record (security advisory count; streaming over the Postgres listener). The new article does not repeat either statement; it says only that 3.3 added a Postgres wire-protocol listener, which the 4.0 upgrade guide and protocol docs confirm. Allowlist: surrealdb.com was not on the list; confirmed as the official site of the project (README of github.com/surrealdb/surrealdb links surrealdb.com for docs, blog and releases; repository homepage and organisation blog fields via the GitHub API are https://surrealdb.com) and added to config/source_allowlist.txt with a justification comment. blocksandfiles.com and github.com were already listed. Anthropic disclosure: not required - no Anthropic, Claude or Bun appears in the headline, summary, body or any of the nine snapshots (grep), so the contributor-model disclosure rule is not triggered.
Factual Accuracy: Headline: 'Adds a MySQL Listener' (new --mysql-bind in 4.0, stable release), 'a PostgreSQL SQL Dialect to Its Postgres Port' (dialect added to the 3.3 wire listener; 3.3 sent SurrealQL), 'Blog and Release Notes Differ on Window Functions' (blog and SurrealDB 4 FAQ: refused; release notes and protocol docs: run, with listed forms refused) all verified from raw snapshot text. Release date November 3 verified on a UTC basis (15:22:58Z) and Blocks & Files is dated two days later (5 Nov 15:59 UTC). Benchmark figures are the vendor's, the indexed-query gain is a projection (measured x 1.63) and the article says so; the 12% and 47% PostgreSQL 18 comparisons are from the same page and recompute. No wrong statement found in the headline, summary, lead or body.
Overall Assessment: Accurate, carefully labelled release coverage that spots a real inconsistency between the vendor's own pages; ready for publication without corrections. Featured candidacy: 1 - solid release coverage for database and backend developers, with a useful documentation discrepancy, but a narrow audience