Feature request: allow Agent Window to be created already minimized (chrome.windows.create state)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 65/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- typescript
調査の方向性
Start by reading the window-creation helper in background.js and trace how session options reach it; the issue also identifies a tab-detach creation path with the same shape. Check the extension tests or existing coverage for window creation, then verify that a session configured to start minimized creates both windows minimized while page automation still works. The issue does not name a test file.
索引モデルが issue の本文から書いたものです。
説明
Summary
When a session is started with the default background mode (--no-focus), the Agent Window is still created as a normal, visible window. On a normal (non-fullscreen) desktop it paints its first frame — a white about:blank window — before any caller can react, so users see a brief white flash even when the automation immediately minimizes it.
Request: let the Agent Window be created in the minimized state, so it never exists as a visible normal window.
Environment
| OS | Windows 10 (18362) |
| Browser | Microsoft Edge |
| Extension | BrowserSkill 0.4.2 (Edge Add-ons build) |
| CLI | bsk session start (default --no-focus) |
Steps to reproduce
- Have a dark window in the foreground (e.g. a video player, windowed).
- Run
bsk session startwith the default background mode. - Watch the screen.
Expected: nothing appears; the Agent Window only exists in the taskbar.
Actual: a white window frame flashes for a moment before the caller minimizes it.
Root cause
chrome.windows.create is called without a state field, in the window-creation helper of background.js:
const win = await chrome.windows.create({
type: `normal`,
focused: t.focused ?? !1,
incognito: t.incognito ?? !1,
url: e,
...(t.size ? { width: t.size.width, height: t.size.height } : {})
});
The tab-detach path has the same shape:
const id = (await this.api.windows.create({
tabId: e, type: `normal`, focused: !1, ...(a.incognito ? { incognito: !0 } : {})
}))?.id;
focused: false only means "don't steal focus" — the window is still shown and composited. A caller can therefore only minimize it after windows.create resolves, and by then the first white frame may already have been presented. Measured latency from a polling caller is ~40 ms, which still lands on several vsync intervals and is clearly visible against dark content.
Proposed fix
chrome.windows.create already accepts state: "minimized":
const win = await chrome.windows.create({
type: `normal`,
focused: t.focused ?? !1,
state: t.minimized ? `minimized` : undefined, // <-- new
incognito: t.incognito ?? !1,
url: e,
...(t.size ? { width: t.size.width, height: t.size.height } : {})
});
Any of these interfaces would work:
- Extension setting — "Open Agent Window minimized" (best: users opt in once, no CLI change needed).
- CLI flag —
bsk session start --minimized, forwarded to the extension. - New default — when
--no-focusis used, create minimized unless--focusis explicitly requested.
Notes
- A minimized window keeps its renderer alive: navigating, DOM queries, screenshots and
syncall still work. Verified against 0.4.2 by minimizing an Agent Window externally and then driving the page normally. - The extension already performs the same transition elsewhere — the focus-restore helper after a task popup calls
windows.update(id, { state:minimized})— so the state change itself is known-good; only the create-time path is missing it. - If
stateat creation is not viable, awindows.update({state:'minimized'})issued immediately aftercreate(before returning) would also narrow the exposure window considerably, though create-timestateis the clean fix.
- 主要言語
- TypeScript
- スター
- 10.1k
- フォーク
- 732
- 平均マージ
- 1日 21時間
- マージ済み PR(30日)
- 97
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Tencent/BrowserSkill のほかの issue
-
Recording drops clicks on links, filters and checkboxes that share a form with a search field対応中かも @columbia11 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
Tencent/BrowserSkill#657 ·
メンテナーはふだん 1 日以内に返信
-
录制 contenteditable 多行内容时 fill 值丢失换行対応中かも @tlysanhuo が 3 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Tencent/BrowserSkill#594 ·
メンテナーはふだん 1 日以内に返信
-
录制遗漏 input[type=submit] 和 input[type=reset] 的真实点击対応中かも @tlysanhuo が 3 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Tencent/BrowserSkill#593 ·
メンテナーはふだん 1 日以内に返信
-
[Bug] dsh-plugin skill: the injection-warning sentence added for #286 is itself a prompt-injection match, so the skill body gets blocked再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
Tencent/BrowserSkill#390 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
调试网络录制将 application/soap+xml 响应正文误判为 non_text 丢弃対応中かも @kesmeey が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
Tencent/BrowserSkill#648 ·
メンテナーはふだん 1 日以内に返信
Tencent/BrowserSkill の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 65/100
メンテナーはふだん 2 日以内に返信
-
Choosing a folder while continuing an Antigravity session submits a history fork the runtime rejectsオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 87/100
-
ai-handle
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
nextlevelbuilder/dewee-web-v2#138 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
NEARBuilders/citynode.app#512 ·
メンテナーはふだん 1 日以内に返信
-
needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信