Repository navigation
Conversation
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Inspection callbacks could lose their source context during nested updates, hidden hierarchy focus could resolve against an obsolete scene, and nested viewport broadcasts could recurse or reach listeners in different orders.
Define the compatibility contract around three separate values: accepted logical state, the completed frame, and a notification's captured source snapshot. Nested synchronous commands update getters immediately; the current callback or DOM broadcast finishes with its captured payload before later reports run. Pending inspect/select values coalesce independently, preserving each entry's existing notification policy without promising an atomic pair across nested commands.
Use one interaction owner per chart for synchronous state changes, validated presentation effects and channel reports. Channels bind their compatibility order at creation. Both runtimes share keyboard reading transitions while retaining their own range input and Escape boundaries. Hierarchy commands resolve against the compiled tree and retain a complete positioning intent across zero-sized measurements; direct private fields replace redundant state-copy reducers. Metric rendering, reading and dismissal share one captured presentation path, with validation after renderer and popover hooks. Ready requires a completed frame from the current source, including when data is replaced in a hidden container.
Scene ownership, runtime lifetime separation and model-version checks reject stale layouts and failures. Document cleanup observes committed data, Canvas Escape has one owner, same-value acknowledgements quiesce, and changing-value feedback yields to the browser. Observer failures preserve other valid queued work. These policies and their regression map are documented in
docs/headless.mdanddevelopment/interaction-transactions.md.Public factory signatures, session/runtime methods, event payloads, context types, pin behavior and entry-specific notification policies remain unchanged. Fixed metric entries omit aggregate switching; all existing bundle limits remain unchanged.
Validation:
pnpm verify: 364 unit tests, 130 Node tests, 16 bundle checks, 451 Chromium tests, and installed-package acceptance passed.pnpm docs:buildandgit diff --checkpassed.