github / github/app

Custom canvas performance degrades with complex infinite-canvas applications

Open
#2,189 0 comments 0 reactions 0 assignees View on GitHub
Bugs
Dominant language
No language data
Stars
2.1k
Forks
153
PR merge metrics
No merged PRs in 30d

Description

### Affected version or release

Latest update available as of July 21, 2026 (exact version not shown)

### Installation context

GitHub Copilot app on macOS, using a custom canvas that renders an HTML/React application

### What happened?

A custom canvas containing an infinite pan-and-zoom interface becomes jittery and noticeably slower as more items are added. The interface is similar to React Flow and supports panning, zooming, and scrolling across an infinite workspace.

When the same HTML application is opened directly in a browser, it remains smooth and responsive with the same content. Inside the GitHub Copilot custom canvas, however, interaction drops to a low frame rate and panning becomes increasingly laggy.

One visible symptom is cursor flickering while panning. The cursor repeatedly switches between the hand cursor and the pointer, even though the application explicitly keeps the hand cursor active throughout that interaction. This may indicate that the custom canvas is triggering unexpected rendering, hit-testing, or pointer-event behavior.

Although an infinite-canvas application makes the problem easy to reproduce, the underlying performance issue may affect other complex or highly interactive custom canvases as well.

### Steps to reproduce

1. Create a custom canvas that renders an HTML/React infinite canvas with pan and zoom behavior.
2. Add enough nodes or items to make the workspace moderately complex.
3. Open the application directly in a browser and pan or zoom around the workspace.
4. Observe that interaction remains smooth.
5. Open the same application inside a GitHub Copilot custom canvas.
6. Pan around the workspace and observe low FPS, jitter, and cursor flickering between the hand and pointer cursors.
7. Add more items and observe that performance degrades further.

### Expected behavior

Interactive HTML applications should perform comparably inside a custom canvas and a regular browser. Panning and zooming should remain smooth as content grows, and the canvas should respect the cursor state set by the application without flickering.

### Additional context

The performance difference is specific to the custom-canvas host; the same application and content work smoothly when opened directly in a browser.

Contributor guide

Open the contributing guide

Research direction

Reproduce the issue with an HTML/React infinite canvas inside the GitHub Copilot custom canvas, then compare panning, zooming, frame rate, and cursor behavior with the same application in a browser. Done means identifying the host-specific cause and restoring smooth interaction as items increase without cursor flickering.

Written by the indexing model from the issue text.

Assessment

Tech stack
html, react
Domain
desktop-dev, frontend, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.