Skip to content

feat: isolate widget updates behind an opt-in setting - #333

Merged
daniil-filippov-dev merged 47 commits into
mainfrom
daniil-filippov-dev/UXRFC-664-widget-update-isolation
Nov 3, 2026
Merged

daniil-filippov-dev merged 47 commits into
mainfrom
daniil-filippov-dev/UXRFC-664-widget-update-isolation

Conversation

@daniil-filippov-dev

@daniil-filippov-dev daniil-filippov-dev commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

🤖 AI TLDR

Allow callers to isolate widget updates without changing the default full-layout update behavior.

🤖 AI-generated

Merge order: #328 → #331 → #333 → #334 → #335 → #329 → #337. Depends on #331; merge its dependency first.

Add opt-in isolateItemUpdates so changing one widget need not rerender unrelated widgets. The default still propagates the full layout, and the opted-in path keeps the widget’s own metadata, data, callbacks, context and registration updates live.

An opted-in plugin that reads sibling geometry from the full layout can observe stale sibling geometry; leave isolation disabled for that usage.

Validation at published head a05fedd54bd09fdf42da9e0dc726f02d0d689341 against base d8476acb67ff904c5869c103f6e2514cc280ed8c: the reviewed normal two-parent ancestry merge preserves the original PR333 tree 50e3a644de61c368e7e4b8f8bffff399cdf4b362. Maker verification on this exact tree with Node 22.22.0 passed 75 existing tests, source/browser types, and JS/style/format lint with 76 existing ESLint warnings. Fresh independent bounded AI review accepted the exact ancestry composition; no fresh whole-PR review or human approval is claimed. No additional local browser or build run was made for this ancestry-only merge.

Exact-head GitHub checks observed at 2026-10-30T15:47:46.957480+00:00 all completed successfully: Verify Files, Tests (React 19), validate-package, Browser Contracts, Build. React 18 was skipped by the existing release-only workflow guard and was not executed. All three workflow runs completed successfully on attempt 1; no CI retry was requested. GitHub reports no merge conflicts (MERGEABLE), with BLOCKED merge state and REVIEW_REQUIRED; repository review gates and dependency merge order remain required. No merge or release is claimed.

Historical validation at head 5029b5df44b6d0db01acb3a33521a38287046618 with Node 22.22.0: 5 relevant mounted Jest tests, 6 browser cases across Chromium, Firefox and WebKit, source/browser types, scoped ESLint/formatting and normal build passed. The settled drag helper now waits for exact final live geometry before release. Independent bounded AI review accepted the exact patches; no fresh whole-PR review or human approval is claimed. Existing exact saved-coordinate, immediate-release and outside-release assertions remain. Synthetic native-event probes establish a possible stale-state mechanism; they do not prove the old CI schedule or fix/exclude rapid-input product risk.

Historical base: 85e4c220d7495e5a0ef4f2a47654f533a46b9fe8. Exact-head GitHub checks observed at 2026-10-29T21:55:51.425303+00:00 all completed successfully: Build, validate-package, Tests (React 19), Verify Files, Browser Contracts. React 18 was skipped by the existing release-only workflow guard and was not executed. GitHub mergeability is blocked and review decision is REVIEW_REQUIRED at this snapshot. Repository review gates and dependency merge order remain required; no merge or release is claimed.

@gravity-ui-bot

Copy link
Copy Markdown
Contributor

Preview is ready.

React GridItem can read stale dragging state when WebKit delivers the next
delta before the previous position commits. Wait for the first visible 5px
move while retaining exact final geometry, saved layout and event assertions.

@korvin89 korvin89 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI generated

This review was done with AI assistance. I validated every comment myself, but the wording — including the points I found myself — was written by the AI.

Severity legend

  • 🔴 blocker — should be fixed before merge.
  • 🟠 should-fix — a real problem; worth fixing before or right after merge. If you can't get to it now, please open an issue and leave a comment linking it.
  • 🔵 nit — minor; author's discretion.
  • ❓ question — I need more context; not necessarily a defect.

Comment thread src/hocs/prepareItem.tsx Resolved
Comment thread src/hocs/prepareItem.tsx Resolved
Comment thread src/hocs/prepareItem.tsx Resolved
Comment thread README.md Resolved
korvin89
korvin89 previously approved these changes Oct 30, 2026
@daniil-filippov-dev
daniil-filippov-dev dismissed korvin89’s stale review October 30, 2026 15:35

The merge-base changed after approval.

@daniil-filippov-dev
daniil-filippov-dev enabled stacked auto-merge November 3, 2026 13:20
Base automatically changed from daniil-filippov-dev/UXRFC-664-common-contracts to main November 3, 2026 13:20
stacked auto-merge was automatically disabled November 3, 2026 13:20

Replaced by a newer auto-merge request

@daniil-filippov-dev
daniil-filippov-dev enabled stacked auto-merge November 3, 2026 13:20
stacked auto-merge was automatically disabled November 3, 2026 15:54

Auto-merge was disabled for another pull request in the stack

@daniil-filippov-dev
daniil-filippov-dev added this pull request to the merge queue Nov 3, 2026
Merged via the queue into main with commit d7da1c6 Nov 3, 2026
6 checks passed
@daniil-filippov-dev
daniil-filippov-dev deleted the daniil-filippov-dev/UXRFC-664-widget-update-isolation branch November 3, 2026 15:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants