Skip to content

Evaluate Live node-filter readiness guard (upstream 2103) #220

Description

@dborup

Deferred evaluation

Consider the small readiness fix from upstream PR 2103, merged on 2026-10-03. This issue records the candidate and its validation plan; it does not schedule implementation.

Snapshot checked 2026-10-04: our master 8bafcdf2a6bb0014127bce4822c8ad0399bd2f12, upstream master 9e49db9725d6346959c41ec23c66d96b7e43cc4c.

What it does / potential benefit

The Live node-filter input initially has the native disabled attribute. It is enabled only after its input, keyboard and blur handlers have been attached. This prevents users typing into a control which looks ready but cannot yet respond while initial data is loading.

The expected benefit is a small, visible reliability improvement on slow or failed initial requests. It does not speed up loading or change node-filter matching.

Do we have something similar?

Yes: merged #88 and #135 moved persisted Live view-toggle setup before asynchronous initialization. Those fixes address related startup timing, but not this node-search readiness guard.

In our checked live.js, liveNodeFilterInput is rendered without disabled (line 1289), await loadNodes() occurs at line 1678, and its input listener is attached at line 1845. The same source-level timing gap therefore remains. This assessment did not reproduce it in a browser or measure its production frequency.

Risks / decisions

  • Keep saved filters and URL precedence unchanged; do not delay the already-fixed view toggles.
  • Initial request failure must still reach handler setup and enable the control; it must not remain disabled forever after a handled error.
  • Re-entry/navigation must not let an old initialization enable or mutate a new page's control.
  • Use native disabled behavior and appropriate loading feedback rather than a cosmetic disabled style alone.

Evaluation checklist

  • Reproduce with a delayed initial nodes request on current master.
  • Compare a minimal readiness guard with attaching safe handlers earlier; select the smaller reliable change.
  • Test delayed success, failed/aborted loading, saved filter, URL override and page navigation.
  • Browser-check typing, suggestions, Enter, arrows, Escape and blur after readiness, including a narrow viewport.
  • Confirm no extra network requests or polling are introduced.
  • Record adopt/adapt/no-change decision before implementation.

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions