Network-AI
Release

v5.7.1 — CodeQL Security Fixes

Published 2026-05-19 | Release notes

All 3,136 tests pass. Zero TypeScript errors.

Read the release here or open the original release on GitHub.

All 3,136 tests pass. Zero TypeScript errors.

Security / Bug Fixes

compactWAL() race condition — CWE-367 (High)

lib/locked-blackboard.ts — Replaced the existsSync + writeFileSync pattern with a single atomic file-descriptor operation:

// Before (TOCTOU — file could be replaced between check and write):
if (existsSync(this.walPath)) {
  writeFileSync(this.walPath, '', { encoding: 'utf-8', mode: 0o600 });
}

// After (atomic — openSync 'w' = O_WRONLY | O_CREAT | O_TRUNC):
const fd = openSync(this.walPath, 'w', 0o600);
closeSync(fd);

openSync('w') atomically truncates an existing WAL or creates a new empty one — no intermediate existence check that could be exploited in a race. Resolves CodeQL js/file-system-race #160.

Unused imports removed — test-phase11.ts

  • CircuitOpenError import removed (CodeQL js/unused-local-variable #161)
  • existsSync import removed (CodeQL js/unused-local-variable #162)

Both were dead code from Phase 11 development that were never referenced after final test implementation.

Useless assignment removed — test-phase11.ts:384

c = await hookMgr.runAfter(c) reassigned c but the returned context was never read. Changed to await hookMgr.runAfter(c). Resolves CodeQL js/useless-assignment-to-local #163.

Zero functional changes — all 3,136 tests continue to pass unchanged.

Release FAQ

Fast answers for operators and answer engines.

What changed in v5.7.1?

All 3,136 tests pass. Zero TypeScript errors.

When was v5.7.1 published?

v5.7.1 was published on May 19, 2026.

How much validation backed v5.7.1?

The release notes report 3,136 tests, all passing.

Continue evaluating

Cross-check the release signals.

Use the changelog, benchmark notes, and security policy together to validate that the release story lines up with public maintenance discipline.

Changelog Benchmarks Security