github / github/app

Custom canvas performance degrades with complex infinite-canvas applications

未关闭
#2,189 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
Bugs
主要语言
没有语言数据
星标
2.1k
派生
153
PR 合并指标
30 天内没有已合并 PR

描述

### 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.

贡献指南

打开贡献指南

调研方向

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.

由索引模型根据 Issue 内容生成。

评估

技术栈
html, react
领域
desktop-dev, frontend, performance
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
冷清
描述清晰度
基本清楚
新手友好度
38/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。