Skip to content

fix(ecs): close stale crop sessions and restore cancelled hover - #389

Merged
xiaoiver merged 1 commit into
masterfrom
codex/ecs-vector-crop-coverage
Oct 9, 2026
Merged

xiaoiver merged 1 commit into
masterfrom
codex/ecs-vector-crop-coverage

Conversation

@xiaoiver

@xiaoiver xiaoiver commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Switching tools during crop left the mask in temporary soft-clipping/locked state. Empty or deleted crop targets could also throw or leave the canvas stuck in crop mode. Crop now finishes on tool changes and safely clears invalid targets. Mouse/pen hover also recovers after pointer cancellation while stale drag events remain ignored.

Add 57 real ECS event regressions for vector editing, crop sessions and nested selection. These cover reversible vertex/curve/handle/midpoint edits, interruption and external document updates, handle coupling, topology edits, nested transforms and canvas isolation. The shared event driver gains a deterministic double-click helper.

Add independent coverage gates for Select and RenderTransformer. All ECS source files remain included, and existing thresholds remain unchanged. Document the batch results and next priorities in docs/ecs-test-coverage.md. Include an ECS patch changeset; package publication is deferred.

Validation:

  • Full native ECS suite: 205 suites / 1,381 tests passed in 619.745 seconds, including all coverage gates.
  • Full ECS coverage: lines 66.88% → 69.07%, branches 54.18% → 56.76%, functions 68.20% → 69.68%. Covered lines increased by 629 and covered branches by 360; coverage scope is unchanged.
  • Select line coverage: 45.87% → 74.15%; RenderTransformer: 50.50% → 76.70%.
  • 91 focused ECS interaction tests passed.
  • 10 existing Chromium handle/interruption regressions passed; no browser tests added.
  • Repository lint, focused TypeScript checks and changed-file formatting checks passed.

@xiaoiver
xiaoiver merged commit 154db72 into master Oct 9, 2026
10 of 15 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.

1 participant