This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+14 more
Affected surfaces
Summary
AI summaryapprovalTimeoutMs introduces a fail‑closed approval gate timeout and enforcePromotionChain adds strict environment promotion checks.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Medium |
Fail‑Closed Approval Timeout (v5.5.8) added to SECURITY.md for security hardening. Fail‑Closed Approval Timeout (v5.5.8) added to SECURITY.md for security hardening. Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Security | Medium |
Strict Promotion Chain Enforcement (v5.5.8) added to SECURITY.md for security hardening. Strict Promotion Chain Enforcement (v5.5.8) added to SECURITY.md for security hardening. Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Feature | Medium |
PhasePipelineOptions accepts approvalTimeoutMs (default 300,000 ms) for fail‑closed approval gate timeout. PhasePipelineOptions accepts approvalTimeoutMs (default 300,000 ms) for fail‑closed approval gate timeout. Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Feature | Medium |
EnvironmentManager constructor accepts enforcePromotionChain: true for strict environment promotion enforcement. EnvironmentManager constructor accepts enforcePromotionChain: true for strict environment promotion enforcement. Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Feature | Medium |
CompactionOptions.onCompact receives archivedPhases array of compacted PhaseResult objects. CompactionOptions.onCompact receives archivedPhases array of compacted PhaseResult objects. Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Feature | Low |
CLI --json flag causes fatal errors to emit JSON-formatted error messages to stdout. CLI --json flag causes fatal errors to emit JSON-formatted error messages to stdout. Source: granite4.1:30b@2026-05-19-audit Confidence: low |
— |
| Refactor | Low |
discoverAgents() logs a console.warn for each adapter discovery failure instead of silent drop. discoverAgents() logs a console.warn for each adapter discovery failure instead of silent drop. Source: granite4.1:30b@2026-05-19-audit Confidence: low |
— |
| Refactor | Low |
FederatedBudget _persist errors now emit console.warn rather than being swallowed silently. FederatedBudget _persist errors now emit console.warn rather than being swallowed silently. Source: granite4.1:30b@2026-05-19-audit Confidence: low |
— |
Full changelog
Network-AI v5.5.8 — Operational Hardening
All 3,093 tests pass. Zero TypeScript errors.
Features
approvalTimeoutMs — fail-closed approval gate timeout (lib/phase-pipeline.ts)
PhasePipelineOptions now accepts approvalTimeoutMs (default 300,000 ms / 5 min). If the onApproval callback does not settle within the deadline, the gate automatically denies — { approved: false } — preventing indefinite hangs in automated pipelines.
enforcePromotionChain — strict environment promotion (lib/env-manager.ts)
EnvironmentManager constructor accepts enforcePromotionChain: true. When enabled, promote() checks for a .promotion-record.json in the source environment directory and throws if missing, preventing skipped-stage deployments (e.g., direct dev → prod bypassing sit/qa/preprod). A record is written after every successful promotion regardless of flag state, so existing deployments accumulate records incrementally.
onCompact — archived phase results (lib/phase-pipeline.ts)
CompactionOptions.onCompact now receives a third argument: archivedPhases: ReadonlyArray<PhaseResult> containing the phases that were compacted. Existing two-argument callbacks continue to work without changes.
Improvements
- CLI
--jsonerror output (bin/cli.ts) — Fatal errors now emit{"error":"..."}JSON to stdout when--jsonis present, enabling consistent machine-readable pipeline consumption. - Adapter discovery warning (
adapters/adapter-registry.ts) —discoverAgents()now logsconsole.warnfor each adapter that fails during discovery rather than silently dropping it. FederatedBudgetpersist failure warning (lib/federated-budget.ts) — Blackboard persistence errors in_persist()now emitconsole.warninstead of being silently swallowed.
Documentation
AuthGuardianadvisory token notice — Class-level JSDoc clarifies that grant tokens are advisory scoring outputs only;agentIdis not cryptographically verified; callers must add a separate identity-verification step before gating PAYMENTS, DATABASE, or FILE_EXPORT operations.FileAccessorerror contract — JSDoc documents thatread,write, andlistnever throw; all access-denied paths are caught at the method boundary and returned as{ success: false, error: <message> }.LockedBlackboardsemantics — Options JSDoc documents dirty-read window with recommended optimistic-retry pattern, equal-priority last-writer-wins tie-break, andenvvalue frozen at construction.SandboxPolicyConfig.envfreeze notice — JSDoc statesNETWORK_AI_ENVis captured at construction; runtime changes have no effect.StreamingBaseAdapterauth once-at-start —executeAgentStream()JSDoc documents that the permission check fires once at stream start, not per-chunk.- SECURITY.md — Added
Fail-Closed Approval Timeout (v5.5.8)andStrict Promotion Chain Enforcement (v5.5.8)entries to bothSECURITY.mdcopies. - README.md — Phase Pipeline row updated to reflect
approvalTimeoutMsfail-closed timeout.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Jovancoding/Network-AI
Multi-agent orchestration MCP server with race-condition-safe shared blackboard. 20+ MCP tools: blackboard read/write, agent spawn/stop, FSM transitions, budget tracking, token management, and audit log query. `npx network-ai-server --port 3001`.
Related context
Beta — feedback welcome: [email protected]