Skip to content

chore: sync master into dev - #3573

Merged
samuelgja merged 70 commits into
clientIO:devfrom
samuelgja:chore/sync-master-to-dev
Oct 29, 2026
Merged

samuelgja merged 70 commits into
clientIO:devfrom
samuelgja:chore/sync-master-to-dev

Conversation

@samuelgja

Copy link
Copy Markdown
Contributor

Description

Merge current master into dev to bring in the released fixes, packages, regression tests, and dependency/build updates while preserving dev's unreleased features.

The merge retains the immutable Map-backed React store, subscriptions and staged commits, HMR support, reactive grid and focus events, geometry/CSP additions, and the router's synchronous APIs and custom worker support. Master's measurement controller is integrated with that store. A regression exposed by the combination is fixed: measurement notifications wait until an asynchronous transaction commits its snapshot, including nested transactions; ordinary batches remain live.

Master's bug-fix tests are retained. The former key-subscription hook tests are adapted to dev's useCellIds, with same-count ID replacement and reset coverage. Test assertions are aligned with the incoming lint rules without disabling checks. Existing release versions/changelogs are carried from master; unreleased dev changesets remain, except the measurement entry already released on master.

Motivation and Context

Synchronization direction is master into dev. The PR targets dev and preserves its newer architecture rather than replacing it with master's implementation.

Reviewed inputs: master 0ff666b5d7dab77ccf3cb599b455387f1fc894ea, dev cb77aa4a649d618a5b7d07bcb3c3aff6b0ca2ee9.

Validation

  • Immutable dependency installation and full workspace distribution build passed.
  • React package test passed: typecheck, knip, duplicate-code detection, React 19/compiler with coverage (1,170 tests), and React 18 (1,129 tests). Dev's stricter coverage floors are preserved.
  • Core: 359 geometry, 462 vectorizer, and 2,230 JointJS browser tests passed, together with server, bundle and TypeScript tests. On macOS, the default browser run hits an inherited classic-scrollbar assumption, also reproduced on untouched master. The complete passing run supplies classic-scrollbar browser flags in memory; source, assertions and repository configuration are unchanged.
  • Remaining package suites passed, including directed graph, ELK, MSAGL, router, sanitize and mock-SVG integration tests.
  • Workspace lint passed with two existing React story warnings. All 44 React benchmark cases passed.
  • The transaction regression was observed failing on the initial merge and passing on dev before the repair; four focused cases now pass on both React versions.
  • Independent contract, React, performance and security/safety reviews completed locally. Hosted CI remains authoritative for its Linux environment.

Geliogabalus and others added 30 commits July 24, 2026 12:42
…sign the forwarded ref during commit (useCombinedRef) (clientIO#3455)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
kumilingus and others added 16 commits October 21, 2026 22:58
* fix: harden core against untrusted graph JSON

- mvc.$.parseHTML() removes all <script> elements
- util.setByPath()/unsetByPath() ignore __proto__ as the last segment
- dia.Graph resolves cell and layer `type` only to dia.Cell/dia.GraphLayer
  constructors (new internal isMarkedConstructor(); GRAPH_LAYER_MARKER moved
  to the prototype like the other markers)
- dia.Paper.defineFilter() ignores names inherited from Object.prototype
- util.filter escapes the filter arguments
- util.sanitizeHTML() removes unsafe elements and srcdoc, and normalizes
  case, whitespace and control characters before checking URL schemes

* feat: add @joint/sanitize package

Sanitizers for untrusted graph JSON and HTML. Works with @joint/core 4.1
and later (peer dependency `>=4.1.0 <5`).

- sanitizeGraphJSON(), sanitizeCellJSON(), sanitizeCellAttributes() and
  the allowlist sanitizeHTML()
- uses only the public @joint/core API
- removes filters with arguments which could inject markup and cells whose
  `type` resolves to a function which is not a cell constructor, so the
  output is safe with unpatched @joint/core versions as well
- the UMD build extends `joint.util`

---------

Co-authored-by: Roman Bruckner <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Merge master into dev while preserving dev APIs and state management.
Include incoming regression tests and defer measurement notifications until transaction commits.
@samuelgja samuelgja self-assigned this Oct 28, 2026
@samuelgja
samuelgja requested review from kumilingus and zbynekstara and a balanced review from Copilot October 28, 2026 15:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

An abort during an export callback can leave an underlying promise rejection unhandled and potentially terminate a Node process, while span-based controls in three examples remain inaccessible to keyboard users.

4 open issues
What changed in this PR

Synchronizes released master changes into dev while preserving dev’s newer React store architecture and router APIs.

Changes:

  • Integrates React measurement handling, including deferred transaction notifications, and updates regression tests.
  • Incorporates core/router fixes, ELK layout support, sanitization, and runner-independent SVG mocking.
  • Refreshes dependencies and build/test tooling, modernizes examples, and removes obsolete infrastructure.

This pull request requires changes. The following issues remain unresolved:

  • Critical — packages/joint-layout-elk/src/abort.mts:22: Aborting from an export callback can leave the underlying layout promise without a rejection handler, potentially terminating a Node process. Attach handlers before checking signal.aborted.
  • Moderate — examples/layout-elk-containers-and-ports-ts/index.html:17: Click-only zoom spans are inaccessible to keyboard users. Replace them with native buttons.
  • Moderate — examples/layout-elk-defaults-ts/index.html:17 (3 votes): Zoom spans lack keyboard focus, activation, and button semantics. Replace them with native buttons.
  • Moderate — examples/layout-elk-rectpacking-ts/index.html:42: Shuffle, add-file, and zoom spans lack keyboard operation and button semantics. Use native buttons.
  • Moderate — examples/vue-js/src/components/TaskCard.vue:52 (1 vote): The status selector lacks an accessible name. Add an associated label or an aria-label that includes the task title.
File Description
SECURITY.md Documents sanitization of untrusted graph data.
packages/​joint-vitest-plugin-mock-svg/​vitest.workspace.ts Removes deprecated workspace configuration.
packages/​joint-vitest-plugin-mock-svg/​vitest.config.ts Configures Vitest projects.
packages/​joint-vitest-plugin-mock-svg/​tsconfig.json Updates declaration-build settings.
packages/​joint-vitest-plugin-mock-svg/​test/​vue/​tsconfig.node.json Removes obsolete Node configuration.
packages/​joint-vitest-plugin-mock-svg/​test/​vue/​tsconfig.json Updates Vue fixture type checking.
packages/​joint-vitest-plugin-mock-svg/​test/​react/​tsconfig.json Updates React fixture type checking.
packages/​joint-vitest-plugin-mock-svg/​src/​index.ts Exports mock types and explains dependency resolution.
packages/​joint-vitest-plugin-mock-svg/​mocks/​vite.config.ts Externalizes the shared mock package.
packages/​joint-vitest-plugin-mock-svg/​CHANGELOG.md Records released mock changes.
packages/​joint-vitest-plugin-mock-svg/​.gitignore Simplifies ignored artifacts.
packages/​joint-sanitize/​src/​index.mjs Exposes graph and HTML sanitizers.
packages/​joint-sanitize/​SECURITY.md Adds security reporting guidance.
packages/​joint-sanitize/​README.md Documents sanitizer usage and options.
packages/​joint-sanitize/​eslint.config.mjs Configures package linting.
packages/​joint-sanitize/​coverage.json Defines coverage thresholds.
packages/​joint-sanitize/​CHANGELOG.md Records the package release.
packages/​joint-sanitize/​.gitignore Ignores generated artifacts.
packages/​joint-router-avoid/​src/​RouterService.mts Cancels queued passes superseded by startup.
packages/​joint-router-avoid/​src/​providers/​MainThreadProvider.mts Aligns incremental completion events and batching.
packages/​joint-router-avoid/​package.json Updates release and tooling versions.
packages/​joint-router-avoid/​karma.conf.js Resolves Chrome asynchronously.
packages/​joint-router-avoid/​CHANGELOG.md Records routing fixes.
packages/​joint-react/​vite.config.ts Removes the Markdown plugin.
packages/​joint-react/​src/​utils/​scheduler.ts Adds deferred error propagation.
packages/​joint-react/​src/​utils/​__tests__/​scheduler.test.ts Makes the no-op assertion explicit.
packages/​joint-react/​src/​store/​paper-store.ts Connects measurement settling to render-pass events.
packages/​joint-react/​src/​store/​index.ts Removes the old observer export.
packages/​joint-react/​src/​store/​graph-projection.ts Separates projection from measurement callbacks.
packages/​joint-react/​src/​store/​__tests__/​state-container.test.ts Updates length assertions.
packages/​joint-react/​src/​store/​__tests__/​graph-store-features.test.ts Uses the measurement controller API.
packages/​joint-react/​src/​store/​__tests__/​graph-projection.test.ts Updates a snapshot-length assertion.
packages/​joint-react/​src/​state/​data-mapping/​__tests__/​link-mapper.test.ts Updates a floating-point assertion.
packages/​joint-react/​src/​state/​data-mapping/​__tests__/​convert-labels-reverse.test.ts Updates floating-point assertions.
packages/​joint-react/​src/​presets/​__tests__/​preset-coverage.test.ts Updates a collection-length assertion.
packages/​joint-react/​src/​presets/​__tests__/​link-markers.test.ts Updates marker-length assertions.
packages/​joint-react/​src/​mvc/​__tests__/​paper-view-hot-reload.test.ts Uses the instance matcher.
packages/​joint-react/​src/​internal.ts Relocates the auto-size constant export.
packages/​joint-react/​src/​index.ts Relocates public measurement type exports.
packages/​joint-react/​src/​hooks/​use-measure-element.tsx Uses measurement observation and invalidates committed views.
packages/​joint-react/​src/​hooks/​use-create-portal-paper.tsx Removes global measurement-readiness props.
packages/​joint-react/​src/​hooks/​use-are-elements-measured.ts Removes the obsolete readiness hook.
packages/​joint-react/​src/​hooks/​__tests__/​use-on-paper-events.test.tsx Strengthens mounting and subscription assertions.
packages/​joint-react/​src/​hooks/​__tests__/​use-on-graph-events.test.tsx Updates subscription-count assertions.
packages/​joint-react/​src/​hooks/​__tests__/​use-on-elements-measured.compiler.test.tsx Runs measurement specifications under React Compiler.
packages/​joint-react/​src/​hooks/​__tests__/​use-on-elements-measured-events.test.tsx Updates measurement imports and specification reference.
packages/​joint-react/​src/​hooks/​__tests__/​use-markup.test.tsx Makes cleanup behavior explicit.
packages/​joint-react/​src/​hooks/​__tests__/​use-graph-transaction.test.tsx Removes an obsolete lint suppression.
packages/​joint-react/​src/​hooks/​__tests__/​use-create-portal-paper.test.tsx Adds grid and transform assertions.
packages/​joint-react/​src/​hooks/​__tests__/​use-cells.type.test.ts Explains the compile-only assertion exemption.
packages/​joint-react/​src/​hooks/​__tests__/​use-cells.test.tsx Aligns assertions and lint handling.
packages/​joint-react/​src/​hooks/​__tests__/​use-cells-reactivity.test.tsx Aligns assertions and lint handling.
packages/​joint-react/​src/​hooks/​__tests__/​use-cell.type.test.ts Explains the compile-only assertion exemption.
packages/​joint-react/​src/​hooks/​__tests__/​use-cell.test.tsx Updates render-count assertions.
packages/​joint-react/​src/​hooks/​__tests__/​use-cell-setters.test.tsx Updates graph-size assertions.
packages/​joint-react/​src/​components/​svg-text/​__tests__/​svg-text.test.tsx Adds explicit rendering assertions.
packages/​joint-react/​src/​components/​paper/​render-element/​paper-element-item.tsx Settles rendered content through the measurement controller.
packages/​joint-react/​src/​components/​paper/​render-element/​__tests__/​paper-html-overlay.test.tsx Updates overlay-count assertions.
packages/​joint-react/​src/​components/​graph/​graph-provider.tsx Relocates the measurement type import.
packages/​joint-react/​src/​components/​graph/​__tests__/​graph-provider-mixed-mode.test.tsx Updates snapshot-length assertions.
packages/​joint-react/​src/​components/​graph/​__tests__/​graph-provider-controlled-reset.test.tsx Updates reset-count assertions.
packages/​joint-react/​src/​components/​graph/​__tests__/​external-graph-undo.test.tsx Updates the graph-size assertion.
packages/​joint-react/​bench/​save-baseline.ts Removes an obsolete lint suppression.
packages/​joint-react/​bench/​hooks-benchmark.test.ts Updates benchmark task-count assertions.
packages/​joint-react/​bench/​graph-projection-benchmark.test.ts Updates the task-count assertion.
packages/​joint-react/​bench/​graph-batch-update.bench.test.ts Checks benchmark task completion.
packages/​joint-react/​bench/​drag-frame.bench.test.ts Checks benchmark task completion.
packages/​joint-react/​bench/​controlled-mode.bench.test.ts Updates benchmark task-count assertions.
packages/​joint-react/​bench/​container-ops.bench.test.ts Checks benchmark task completion.
packages/​joint-mock-svg/​vite.config.ts Configures ESM and CommonJS bundles.
packages/​joint-mock-svg/​tsconfig.json Configures declaration generation.
packages/​joint-mock-svg/​test/​jest/​tsconfig.json Configures Jest fixture type checking.
packages/​joint-mock-svg/​test/​jest/​src/​setup.ts Installs SVG mocks for tests.
packages/​joint-mock-svg/​test/​jest/​jest.config.cjs Configures the JSDOM integration fixture.
packages/​joint-mock-svg/​test/​jest/​babel.config.cjs Transforms TypeScript test sources.
packages/​joint-mock-svg/​SECURITY.md Adds security reporting guidance.
packages/​joint-mock-svg/​README.md Documents setup and mock types.
packages/​joint-mock-svg/​LICENSE Adds the package license.
packages/​joint-mock-svg/​eslint.config.mjs Configures package linting.
packages/​joint-mock-svg/​CHANGELOG.md Records the initial release.
packages/​joint-mock-svg/​.gitignore Ignores generated artifacts.
packages/​joint-layout-msagl/​package.json Refreshes build and browser-test dependencies.
packages/​joint-layout-msagl/​karma.conf.js Resolves Chrome asynchronously.
packages/​joint-layout-elk/​tsconfig.json Defines package TypeScript settings.
packages/​joint-layout-elk/​tsconfig.esm.json Configures ESM output.
packages/​joint-layout-elk/​tsconfig.cjs.json Configures CommonJS build settings.
packages/​joint-layout-elk/​test/​types/​tsconfig.json Configures API type tests.
packages/​joint-layout-elk/​test/​types/​assert.mts Adds type-level assertion utilities.
packages/​joint-layout-elk/​test/​index.html Adds the browser test harness.
packages/​joint-layout-elk/​src/​types/​index.mts Exposes public ELK-facing types.
packages/​joint-layout-elk/​src/​mainThreadElk.mts Lazily loads main-thread ELK.
packages/​joint-layout-elk/​src/​index.mts Defines the public package exports.
packages/​joint-layout-elk/​src/​elk.worker.mts Adds the published worker entry point.
packages/​joint-layout-elk/​src/​defaultElk.mts Shares a lazily initialized ELK instance.
packages/​joint-layout-elk/​src/​cells.mts Partitions and deduplicates layout cells.
packages/​joint-layout-elk/​src/​abort.mts Adds cancellation helpers.
packages/​joint-layout-elk/​SECURITY.md Adds security reporting guidance.
packages/​joint-layout-elk/​eslint.config.mjs Configures package linting.
packages/​joint-layout-elk/​coverage.json Defines coverage thresholds.
packages/​joint-layout-elk/​CHANGELOG.md Records the initial release.
packages/​joint-layout-elk/​.gitignore Ignores generated artifacts.
packages/​joint-layout-directed-graph/​package.json Refreshes build and test dependencies.
packages/​joint-layout-directed-graph/​karma.conf.js Resolves Chrome asynchronously.
packages/​joint-eslint-config/​package.json Updates SonarJS lint rules.
packages/​joint-core/​types/​util.d.ts Allows undefined default sources.
packages/​joint-core/​types/​linkTools.d.ts Corrects tool options and handler declarations.
packages/​joint-core/​types/​joint.d.ts Declares the embedding configuration flag.
packages/​joint-core/​test/​vectorizer/​requirejs.html Loads QUnit globally for the bridge.
packages/​joint-core/​test/​vectorizer/​require.js Exposes global QUnit as an AMD module.
packages/​joint-core/​test/​ts/​vectorizer.test.ts Covers path conversion and rich-text types.
packages/​joint-core/​test/​ts/​toolsView.test.ts Covers corrected tool declarations.
packages/​joint-core/​test/​ts/​geometry.test.ts Adds geometry API type examples.
packages/​joint-core/​test/​jointjs/​webpack.js Removes the legacy bundle smoke test.
packages/​joint-core/​test/​jointjs/​webpack.html Removes the legacy Webpack harness.
packages/​joint-core/​test/​jointjs/​requirejs.html Loads QUnit globally for the bridge.
packages/​joint-core/​test/​jointjs/​require.js Exposes global QUnit as an AMD module.
packages/​joint-core/​test/​jointjs/​mvc.collection.js Covers ID/CID collisions and separate indexes.
packages/​joint-core/​test/​jointjs/​cell.js Covers property removal and option forwarding.
packages/​joint-core/​test/​jointjs/​browserify.js Removes the legacy bundle smoke test.
packages/​joint-core/​test/​jointjs/​browserify.html Removes the legacy Browserify harness.
packages/​joint-core/​test/​geometry/​requirejs.html Loads QUnit globally for the bridge.
packages/​joint-core/​test/​geometry/​require.js Exposes global QUnit as an AMD module.
packages/​joint-core/​test/​e2e/​devs.js Removes the legacy Selenium test.
packages/​joint-core/​test/​e2e/​chess.js Removes the legacy Selenium test.
packages/​joint-core/​src/​V/​index.mjs Removes legacy analysis annotations only.
packages/​joint-core/​src/​mvc/​Dom/​methods.mjs Recognizes window objects across realms.
packages/​joint-core/​src/​mvc/​Dom/​Dom.mjs Fixes script removal and window wrapping.
packages/​joint-core/​src/​mvc/​Collection.mjs Separates real-ID and CID indexes.
packages/​joint-core/​src/​linkTools/​RotateLabel.mjs Uses computed label defaults.
packages/​joint-core/​src/​dia/​ToolView.mjs Resets explicit visibility during configuration.
packages/​joint-core/​src/​dia/​ToolsView.mjs Removes deferred visibility resetting.
packages/​joint-core/​src/​dia/​symbols.mjs Adds marked-constructor validation.
packages/​joint-core/​src/​dia/​Paper.mjs Handles replacement layers and restricts filter lookup.
packages/​joint-core/​src/​dia/​GraphLayerCollection.mjs Validates layer and cell constructors.
packages/​joint-core/​src/​dia/​GraphLayer.mjs Places the layer marker on its prototype.
packages/​joint-core/​src/​dia/​Graph.mjs Preserves falsy port IDs in matching.
packages/​joint-core/​src/​dia/​ElementView.mjs Resolves typed port IDs for proxy nodes.
packages/​joint-core/​src/​dia/​Element.mjs Accepts falsy port IDs for link geometry.
packages/​joint-core/​src/​dia/​CellView.mjs Centralizes typed DOM port-ID lookup.
packages/​joint-core/​src/​dia/​Cell.mjs Fixes array-path removal and option forwarding.
packages/​joint-core/​src/​connectionPoints/​index.mjs Uses typed port IDs for connection geometry.
packages/​joint-core/​SECURITY.md Documents sanitization of untrusted data.
packages/​joint-core/​Gruntfile.js Replaces configuration loading and initializes Chrome asynchronously.
packages/​joint-core/​grunt/​tasks/​selenium.js Removes Selenium lifecycle tasks.
packages/​joint-core/​grunt/​resources/​e2eBrowsers.js Removes obsolete browser definitions.
packages/​joint-core/​grunt/​config/​webpack.js Removes legacy bundle configuration.
packages/​joint-core/​grunt/​config/​watch.js Removes legacy watch tasks.
packages/​joint-core/​grunt/​config/​ts.js Removes the old TypeScript task configuration.
packages/​joint-core/​grunt/​config/​shell.js Runs Mocha and TypeScript directly.
packages/​joint-core/​grunt/​config/​qunit.js Removes the Browserify harness reference.
packages/​joint-core/​grunt/​config/​mochaTest.js Removes obsolete Mocha task configuration.
packages/​joint-core/​grunt/​config/​karma.js Updates Chrome flags and exclusions.
packages/​joint-core/​grunt/​config/​env.js Removes Selenium environment configuration.
packages/​joint-core/​grunt/​config/​e2e.js Removes Selenium test aliases.
packages/​joint-core/​grunt/​config/​copy.js Removes obsolete bundle exclusions.
packages/​joint-core/​grunt/​config/​browserify.js Removes legacy bundle configuration.
packages/​joint-core/​grunt/​config/​aliases.js Updates test aliases and removes obsolete tasks.
packages/​joint-core/​demo/​vuejs/​README.md Removes legacy demo instructions.
packages/​joint-core/​demo/​vuejs/​package.json Removes the legacy Vue workspace.
packages/​joint-core/​demo/​vuejs/​index.html Removes the legacy Vue entry page.
packages/​joint-core/​demo/​vuejs/​.gitignore Removes legacy demo ignores.
packages/​joint-core/​demo/​ts-demo/​webpack.config.js Removes the legacy demo bundler.
packages/​joint-core/​demo/​ts-demo/​tsconfig.json Removes legacy compiler settings.
packages/​joint-core/​demo/​ts-demo/​shape.ts Removes the legacy shape example.
packages/​joint-core/​demo/​ts-demo/​README.md Removes legacy demo instructions.
packages/​joint-core/​demo/​ts-demo/​package.json Removes the legacy TypeScript workspace.
packages/​joint-core/​demo/​ts-demo/​index.html Removes the legacy entry page.
packages/​joint-core/​demo/​ts-demo/​custom.ts Removes the legacy namespace-extension example.
packages/​joint-core/​demo/​ts-demo/​.gitignore Removes legacy demo ignores.
packages/​joint-core/​demo/​rough/​yarn.lock Removes the legacy demo lockfile.
packages/​joint-core/​demo/​rough/​package.json Removes the legacy RoughJS workspace.
packages/​joint-core/​demo/​rough/​index.html Removes the legacy entry page.
packages/​joint-core/​demo/​rough/​css/​rough.css Removes legacy demo styles.
packages/​joint-core/​demo/​rough/​.gitignore Removes legacy demo ignores.
packages/​joint-core/​demo/​elk/​webpack.config.js Removes the legacy ELK bundler.
packages/​joint-core/​demo/​elk/​styles.scss Removes legacy demo styles.
packages/​joint-core/​demo/​elk/​src/​shapes.js Removes legacy ELK shapes.
packages/​joint-core/​demo/​elk/​README.md Removes legacy demo instructions.
packages/​joint-core/​demo/​elk/​package.json Removes the legacy ELK workspace.
packages/​joint-core/​demo/​elk/​index.js Removes the legacy application entry.
packages/​joint-core/​demo/​elk/​index.html Removes the legacy entry page.
packages/​joint-core/​demo/​elk/​.gitignore Removes legacy demo ignores.
packages/​joint-core/​demo/​custom-shapes/​webpack.config.js Removes the legacy demo bundler.
packages/​joint-core/​demo/​custom-shapes/​README.md Removes legacy demo instructions.
packages/​joint-core/​demo/​custom-shapes/​package.json Removes the legacy custom-shapes workspace.
packages/​joint-core/​demo/​custom-shapes/​index.html Removes the legacy entry page.
packages/​joint-core/​demo/​custom-shapes/​.gitignore Removes legacy demo ignores.
package.json Updates workspace commands, packaging, and dependency resolution.
examples/​vue-js/​vite.config.js Configures the Vue example bundler.
examples/​vue-js/​src/​main.js Mounts the Vue application.
examples/​vue-js/​src/​images/​icon-warning.svg Adds the at-risk status icon.
examples/​vue-js/​src/​images/​icon-pending.svg Adds the pending status icon.
examples/​vue-js/​src/​images/​icon-done.svg Adds the completed status icon.
examples/​vue-js/​src/​data.js Defines initial tasks and scale.
examples/​vue-js/​src/​components/​TaskCard.vue Positions editable HTML cards over diagram elements.
examples/​vue-js/​src/​components/​JointPaper.vue Manages paper lifecycle and position synchronization.
examples/​vue-js/​src/​components/​AppToolbar.vue Adds zoom and reset controls.
examples/​vue-js/​src/​App.vue Connects task state with the graph.
examples/​vue-js/​README.md Documents the modern Vue example.
examples/​vue-js/​package.json Defines the Vue/Vite workspace.
examples/​vue-js/​index.html Adds the application entry page.
examples/​vue-js/​.gitignore Ignores example artifacts.
examples/​tree-of-life/​package.json Updates Webpack tooling.
examples/​spreadsheet-shapes-with-handsontable-js/​src/​styles.scss Uses the read-only-cell theme variable.
examples/​spreadsheet-shapes-with-handsontable-js/​src/​main.js Adopts Handsontable theme imports and configuration.
examples/​spreadsheet-shapes-with-handsontable-js/​package.json Updates Handsontable.
examples/​shapes-general/​package.json Updates Webpack tooling.
examples/​offscreen-rendering/​package.json Updates loaders and Webpack tooling.
examples/​list/​package.json Updates loaders and Webpack tooling.
examples/​link-labels-ts/​package.json Updates loaders and Webpack tooling.
examples/​libavoid/​webpack.config.js Adopts the current copy-plugin API.
examples/​libavoid/​package.json Updates loaders and Webpack tooling.
examples/​layout-msagl/​package.json Updates Webpack tooling.
examples/​layout-elk-ts/​webpack.config.js Removes the old ELK example bundler.
examples/​layout-elk-ts/​tsconfig.json Removes old compiler settings.
examples/​layout-elk-ts/​README.md Removes old example instructions.
examples/​layout-elk-rectpacking-ts/​tsconfig.json Configures Vite-oriented type checking.
examples/​layout-elk-rectpacking-ts/​src/​shapes.ts Defines folder and file-tile shapes.
examples/​layout-elk-rectpacking-ts/​README.md Explains rectangle-packing behavior and controls.
examples/​layout-elk-rectpacking-ts/​package.json Defines the rectangle-packing workspace.
examples/​layout-elk-rectpacking-ts/​index.html Adds packing and zoom controls.
examples/​layout-elk-rectpacking-ts/​.gitignore Ignores example artifacts.
examples/​layout-elk-dependency-graph-ts/​tsconfig.json Configures Vite-oriented type checking.
examples/​layout-elk-dependency-graph-ts/​src/​styles.scss Adds canvas and toolbar styling.
examples/​layout-elk-dependency-graph-ts/​README.md Documents worker-based ELK usage.
examples/​layout-elk-dependency-graph-ts/​package.json Defines the dependency-graph workspace.
examples/​layout-elk-dependency-graph-ts/​index.html Uses a Vite module entry point.
examples/​layout-elk-dependency-graph-ts/​.gitignore Ignores example artifacts.
examples/​layout-elk-defaults-ts/​tsconfig.json Configures Vite-oriented type checking.
examples/​layout-elk-defaults-ts/​README.md Documents callback-free ELK usage.
examples/​layout-elk-defaults-ts/​package.json Defines the default-layout workspace.
examples/​layout-elk-defaults-ts/​index.html Adds the default-layout entry page and controls.
examples/​layout-elk-defaults-ts/​.gitignore Ignores example artifacts.
examples/​layout-elk-containers-and-ports-ts/​tsconfig.json Configures Vite-oriented type checking.
examples/​layout-elk-containers-and-ports-ts/​README.md Documents nested-container and port layout.
examples/​layout-elk-containers-and-ports-ts/​package.json Migrates the example to Vite and the ELK package.
examples/​layout-elk-containers-and-ports-ts/​index.html Adds the container-layout entry page and controls.
examples/​layout-elk-containers-and-ports-ts/​.gitignore Ignores example artifacts.
examples/​layout-directed-graph/​webpack.config.js Adopts the current copy-plugin API.
examples/​layout-directed-graph/​package.json Refreshes build dependencies.
examples/​isometric/​package.json Updates Webpack tooling.
examples/​genogram-ts/​TUTORIAL.md Corrects the layout-test filename.
examples/​genogram-ts/​scripts/​test-layout.mts Uses ESM-compatible directory resolution.
examples/​genogram-ts/​README.md Corrects the layout-test filename.
examples/​genogram-ts/​package.json Invokes the ESM layout-test script.
examples/​fta-js/​package.json Updates loaders and Webpack tooling.
examples/​dwdm/​package.json Updates loaders and Webpack tooling.
examples/​decorators/​package.json Updates Webpack tooling.
examples/​custom-shapes-js/​src/​main.js Uses package imports and an embedded image.
examples/​custom-shapes-js/​README.md Documents the modernized example.
examples/​custom-shapes-js/​package.json Defines the Vite example workspace.
examples/​custom-shapes-js/​index.html Adds the Vite entry page.
examples/​custom-shapes-js/​.gitignore Updates ignored build artifacts.
examples/​container/​package.json Updates Webpack tooling.
examples/​connection-points-ts/​package.json Updates loaders and Webpack tooling.
examples/​bezier-js/​package.json Updates loaders and Webpack tooling.
examples/​avoid-router-ts/​webpack.config.js Adopts the current copy-plugin API.
examples/​avoid-router-ts/​package.json Updates loaders and Webpack tooling.
examples/​angular-element-view-ts/​src/​main.ts Explicitly enables zone-based change detection.
examples/​angular-element-view-ts/​README.md Updates the Angular requirement.
examples/​angular-element-view-ts/​package.json Updates Angular and TypeScript dependencies.
examples/​angular-element-view-ts/​angular.json Adopts the current Angular builders.
examples/​anchors-ts/​package.json Updates loaders and Webpack tooling.
CONTRIBUTING.md Removes the obsolete E2E command.
CLAUDE.md Removes obsolete build and test references.
.changeset/​sanitize-build-tools.md Records a non-release tooling changeset.
.changeset/​react-measured-deferred-transactions.md Records deferred-transaction measurement behavior.
.changeset/​react-elements-measured-app-resize.md Removes the already-released measurement entry.
.changeset/​new-chrome-tests.md Records a non-release testing changeset.
.changeset/​fresh-locks-refresh.md Records a non-release dependency changeset.
.changeset/​config.json Updates release grouping and ignored configuration paths.

Review effort: Balanced

Comment thread packages/joint-layout-elk/src/abort.mts Resolved
@samuelgja

Copy link
Copy Markdown
Contributor Author

Verified Copilot's findings against the actual source and master. All are inherited from master and are tracked separately from this synchronization:

The four Copilot inline threads are resolved with follow-up issue links. Resolution means deferred to the linked issue, not fixed in this PR. No source changes or new commits were made; the PR remains at 358fa01f1160e120c358c66ca2bf90bff7c2a667.

@samuelgja
samuelgja removed the request for review from zbynekstara October 28, 2026 15:29
@samuelgja
samuelgja merged commit d2ac058 into clientIO:dev Oct 29, 2026
3 checks passed
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.

7 participants