LearnNewsExamplesServices
Frontmatter
id12940
titleDocument the logDeltaUpdates delta-stream debug lever in whitebox-e2e
stateClosed
labels
documentationenhancementai
assigneesneo-opus-grace
createdAtJun 12, 2026, 3:34 AM
updatedAtJun 13, 2026, 4:28 PM
githubUrlhttps://github.com/neomjs/neo/issues/12940
authorneo-opus-grace
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJun 13, 2026, 4:28 PM

Document the logDeltaUpdates delta-stream debug lever in whitebox-e2e

Closed v13.1.0/archive-v13-1-0-chunk-1 documentationenhancementai
neo-opus-grace
neo-opus-grace commented on Jun 12, 2026, 3:34 AM

Context

Surfaced 2026-06-12 (operator-directed, night session). @tobiu's framing: "ask [a new agent] if they know you can log delta updates in Neo e2e tests to see exactly what's happening — the answer might be no." The capability has existed in the engine for years; the technique is in no agent-loaded skill, so agents debug VDOM/rendering divergences (incl. the v13 grid issues) blind to the single best lever.

The Problem

Neo's VDOM diff (vdom.Helper) emits an explicit, ordered, serializable delta array ({action, id, index, parentId, …}). Neo.config.logDeltaUpdates = true makes that stream observable: at src/main/DeltaUpdates.mjs:897-900, each applied update logs 'update ' + countUpdates, 'total deltas ', countDeltas, Neo.clone(data, true) — the full deep-cloned delta payload (a snapshot, so it reflects exactly what was applied), in order. In a Playwright whitebox e2e the page console carries that stream → read the exact delta sequence → a rendering divergence (a stray moveNode, a wrong index) is sitting in it.

The gap: grep -niE "delta|logDelta" .agents/skills/whitebox-e2e/references/whitebox-e2e-protocol.mdempty. The protocol teaches Neural-Link deep-state introspection but never the delta-stream lever. A new agent has no documented path from "the UI rendered wrong" to "read the deltas."

The Architectural Reality (verified surfaces — cite these, do not infer)

  • Neo.config.logDeltaUpdatessrc/DefaultConfig.mjs:138
  • Content-log — src/main/DeltaUpdates.mjs:897-900 (if (NeoConfig.logDeltaUpdates && len > 0) console.log(… Neo.clone(data, true)))
  • rAF frame-count — src/Main.mjs:419 (the JSDoc's "as well as the requestAnimation frames")
  • Replay — Neo.applyDeltas, src/worker/App.mjs:119
  • Sibling flag — Neo.config.logVdomUpdateCollisions (src/DefaultConfig.mjs), parent/child update collisions
  • Home: .agents/skills/whitebox-e2e/references/whitebox-e2e-protocol.md (conditional payload — loaded only when authoring/debugging E2E tests; NOT the always-loaded router)

The Fix

Add a concise "Debugging a rendering divergence via the delta stream" section to whitebox-e2e-protocol.md: set Neo.config.logDeltaUpdates = true, read the delta stream from the captured console (each entry = the in-order deep-cloned delta payload that points at the divergence); mention logVdomUpdateCollisions + Neo.applyDeltas (replay).

Decision Record impact

aligned-with ADR 0008 — skill payload addition; content lands in the conditional references/ payload (not the router); load-effect neutral.

Acceptance Criteria

  • whitebox-e2e-protocol.md has a delta-stream debugging section citing Neo.config.logDeltaUpdates + the exact console output shape (deep-cloned payload, in order).
  • Cited surfaces verified against DeltaUpdates.mjs:897-900 / Main.mjs:419 / App.mjs:119 (no inference).
  • Router unchanged; payload within budget; lint-skill-manifest OK; grep logDeltaUpdates whitebox-e2e-protocol.md non-empty.

Out of Scope

  • The locked-column grid fixture (#12936 — complementary).
  • Wiring delta-logging into an automated assertion / the broader overview (#12937) — this documents the manual debug lever.

Related

  • Sibling whitebox-e2e/grid: #12936 (fixture tests the grid; this sees its deltas).
  • Architecture: src/vdom/Helper.mjs — the delta emitter; the "vdom as an IPC protocol / json-first" framing (@tobiu, this session).

Release classification: boardless — substrate hygiene; recommended NOW (the debug lever for the class of bug blocking v13), not itself release-gating.

Origin Session ID: 0bc22bf2-9ded-4cdb-b351-182c3ab1d16f

Retrieval Hint: "logDeltaUpdates delta stream whitebox-e2e debug rendering divergence DeltaUpdates console clone"