github / github/app

Canvas unavailable after extensions_reload until second reload

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

描述

## Summary

After `extensions_reload`, a canvas extension can be listed as ready, but `open_canvas` fails with `CanvasRuntimeError: No canvas "inbox-zero" is registered`. Running `extensions_reload` a second time restores `open_canvas`.

## Repro steps

1. Start a canvas extension and open an instance, e.g. `inbox-zero-live`.
2. Run `extensions_reload`.
3. Confirm `extensions_manage({ operation: "list" })` shows the extension as ready.
4. Run `open_canvas({ canvasId: "inbox-zero", instanceId: "inbox-zero-live" })`.

## Observed

- `open_canvas` fails with `No canvas "inbox-zero" is registered`.
- `invoke_canvas_action(...)` fails with `Canvas instance "inbox-zero-live" is not open`.
- Running `extensions_reload` again makes `open_canvas` succeed.
- The previously open canvas can remain blank or stale until recovery.

## Expected

After one successful `extensions_reload`, ready canvas extensions should be immediately openable, and previously open canvas instances should recover without an additional reload.

## Environment

- Copilot CLI 1.0.63-0, Windows
- User-scope canvas extension: `~/.copilot/extensions/inbox-zero/`
- Canvas uses a loopback HTTP server

贡献指南

打开贡献指南

调研方向

首先,使用 inbox-zero 扩展通过 extensions_reload、extensions_manage、open_canvas 和 invoke_canvas_action 重现该序列。跟踪 reload 和 canvas 实例恢复的生命周期,然后验证一次 reload 就能让已就绪的扩展可打开,并在不进行第二次 reload 的情况下恢复之前已打开的实例。

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

评估

领域
cli, desktop
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
冷清
描述清晰度
基本清楚
新手友好度
52/100

把新 issue 发到你的邮箱

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