Context
During the #14911 investigation, a discriminator probe read a component's vnode through the Neural Link property path (get_instance_properties / the playwright fixture's getComponent(id, ['vnode'])) to check whether a subtree id was present in the worker-side tree. The serialized payload came back as 334 bytes — a stub, not a tree — making "id absent from vnode" look like evidence when it was serialization truncation. The probe had to be flagged INCONCLUSIVE after the fact (#14911 investigation log 2); leaning on it would have steered the root-cause hunt wrong.
The Problem
The property serializer's depth/size capping is (correctly) protective — but it is silent. A consumer cannot distinguish "the property is genuinely this small" from "the serializer truncated it." For whitebox debugging (the Neural Link's core purpose), a silently-truncated tree read is worse than an error: it produces confident false negatives in exactly the situations where agents probe deep structures (vnode/vdom trees, large stores, nested state).
The Fix (prescription for the NL owner to refine)
- Truncation must be visible: when the serializer caps depth/size, mark the payload (e.g.
__truncated: true + __serializedBytes/__fullDepth hints, or a per-property truncated sidecar in the response envelope).
- Document the right tool for trees:
query_vdom / inspect_component_render_tree / get_component_tree are the tree-shaped read paths; the property path's JSDoc + MCP tool description should say plainly that deep objects arrive capped and point at the tree tools.
- Optional: an explicit
depth opt-in on property reads for bounded deep reads.
Acceptance Criteria
Related
Empirical anchor: #14911 investigation log 2 (the 334-byte vnode stub, flagged inconclusive). Filed unassigned for the Neural Link owner's disposition.
Live latest-open sweep: checked latest 20 open issues + recent A2A at 2026-07-10T03:59Z; no equivalent found.
Process note: filed during the operator-granted temporary Fable 5 window (final entries) — closing out the session's friction→gold ledger.
Origin Session ID: ef6b9a4a-54ec-4afb-8438-f89a3ee46ad2
Retrieval Hint: "neural link property serializer truncation stub vnode deep object silent"
Context
During the #14911 investigation, a discriminator probe read a component's
vnodethrough the Neural Link property path (get_instance_properties/ the playwright fixture'sgetComponent(id, ['vnode'])) to check whether a subtree id was present in the worker-side tree. The serialized payload came back as 334 bytes — a stub, not a tree — making "id absent from vnode" look like evidence when it was serialization truncation. The probe had to be flagged INCONCLUSIVE after the fact (#14911 investigation log 2); leaning on it would have steered the root-cause hunt wrong.The Problem
The property serializer's depth/size capping is (correctly) protective — but it is silent. A consumer cannot distinguish "the property is genuinely this small" from "the serializer truncated it." For whitebox debugging (the Neural Link's core purpose), a silently-truncated tree read is worse than an error: it produces confident false negatives in exactly the situations where agents probe deep structures (vnode/vdom trees, large stores, nested state).
The Fix (prescription for the NL owner to refine)
__truncated: true+__serializedBytes/__fullDepthhints, or a per-propertytruncatedsidecar in the response envelope).query_vdom/inspect_component_render_tree/get_component_treeare the tree-shaped read paths; the property path's JSDoc + MCP tool description should say plainly that deep objects arrive capped and point at the tree tools.depthopt-in on property reads for bounded deep reads.Acceptance Criteria
Related
Empirical anchor: #14911 investigation log 2 (the 334-byte
vnodestub, flagged inconclusive). Filed unassigned for the Neural Link owner's disposition.Live latest-open sweep: checked latest 20 open issues + recent A2A at 2026-07-10T03:59Z; no equivalent found. Process note: filed during the operator-granted temporary Fable 5 window (final entries) — closing out the session's friction→gold ledger. Origin Session ID: ef6b9a4a-54ec-4afb-8438-f89a3ee46ad2 Retrieval Hint: "neural link property serializer truncation stub vnode deep object silent"