Observe a Global Without Calling Its Getter
Why runtime evidence collection must not change the application just to learn about it.
Scope: Engineering or methodology note based on a September 17, 2026 snapshot. Source-level behavior is not a public availability or universal compatibility claim. Any scenarios are illustrative, not customer outcomes.
A property can look like ordinary data and execute code when read. That makes runtime-global collection more delicate than walking an object and reading every value.
Kalu’s runtime observation work uses own-data descriptors and explicit omission reasons. Accessors are not invoked merely to make the inventory more complete. The collector needs to record what it can observe without turning observation into an undeclared application action.
A curious observer can become a participant
Imagine a synthetic global object with a version getter that increments state or throws. Reading it through an ordinary property access could alter the application or interrupt collection. The resulting inventory would reflect behavior the observer itself caused.
The descriptor-oriented approach distinguishes stored data from executable access. An accessor can remain visible as an uninvoked boundary rather than being treated as a missing value or silently evaluated.
Account for the unexplored frontier
Runtime object graphs can contain cycles, aliases, large subtrees, and descriptor failures. A bounded collector needs identities, budgets, and an explicit unread frontier. Reaching a limit should not imply that everything outside the visited portion was absent.
The current work also preserves failures beside healthy siblings. One problematic descriptor should not necessarily erase all other observations, but a required incomplete scan cannot support a complete claim.
Keep observation and interpretation separate
The capture-time inventory records admitted facts. A later dependency projection can interpret those facts without re-running arbitrary application accessors or changing the capture identity.
This is a source-level observation capability, not a promise that every runtime object or browser context is fully inventoried. Worker coverage and other execution surfaces remain separate product questions.
For recovery, the value is subtle but important. A library clue is stronger when the act of collecting it did not secretly execute application code. The observer should leave a visible boundary where knowledge ends rather than cross that boundary and pretend nothing happened.