agentscope-ai / agentscope-ai/QwenPaw

[Bug]: Browser SDK spawns a new tab-group for every present()/open() call — pages can't share one group

Aperta
#7,397 2 commenti 0 reazioni 1 assegnatario Rivendicata da @x1n95c Vedi su GitHub
bug
Lingua principale
TypeScript
Stelle
35k
Fork
3.1k
Merge medio
1g 13h
PR unite (30g)
228

Descrizione

## QwenPaw Version

2.2.0b3

## Description

**Bug: Browser SDK spawns a new QwenPaw tab-group for every `present()` / `open()` call. Multiple pages cannot be kept in the same group.**

**What happened:**
When using the Browser SDK, each call to `browser.open(url)` or `browser.present(url)` creates a **brand-new, independent QwenPaw tab-group**, and each group contains exactly **one** tab. Even when all pages are opened within the **same `Browser.connect()` session**, the browser UI still shows a **separate group per URL**. For example:
- `present("https://www.bing.com/")` → group "bing.com" (1 tab)
- `present("https://www.baidu.com/")` → group "baidu.com" (1 tab)

Even though both were opened sequentially inside a single `Browser.connect()` session, the browser UI shows **two separate QwenPaw groups** (plus leftover empty tabs from prior attempts), not one group with two tabs.

**What I expected:**
All pages I open via the Browser SDK should live in **the same QwenPaw tab-group** (e.g. a single group named e.g. "baidu, bing"). This matches normal browser behavior where opening new tabs adds them to the current window, rather than spawning a new window/group each time. The user wants a single group with multiple tabs, but the SDK forces one group per page.

**Impact:**
Repeated operations (e.g. opening a page, checking it, retrying) accumulate a large number of "QwenPaw / single-tab" groups, which is very disruptive to the user (one sign-in retry spawned 20+ groups). There is no SDK method to add a second tab into an existing group, so the only workaround is to manually merge tabs in the browser UI, which is unacceptable for an agent workflow.

**Related PR(s):** #(optional)

**Security considerations:** None. This is a pure UI/session-isolation behavior issue; no auth/env/config exposure.

## Component(s) Affected

- [x] Core / Backend (app, agents, config, providers, utils, local_models) <- Browser SDK session/tab-group handling
- [ ] Console (frontend web UI)
- [ ] Channels (DingTalk, Feishu, QQ, Discord, iMessage, etc.)
- [ ] Skills
- [ ] CLI
- [ ] Documentation (website)
- [ ] Tests
- [ ] CI/CD
- [ ] Scripts / Deploy

## Environment

- **QwenPaw version:** 2.2.0b3
- **OS:** Windows 10 (AMD64)
- **Install method:** QwenPaw Desktop (Tauri) — installed at `C:\Users\Qing\AppData\Local\Programs\QwenPaw Desktop`
- **Browser backend:** Chrome variant (`variant=chrome`, `context=profile`, `identity=user`), actual browser = Quark (夸克) via the Chrome Browser SDK
- **Python version (if applicable):** Browser SDK (async Python)

## Steps to Reproduce

1. From a single agent session, connect the browser SDK: `browser = await Browser.connect()`.
2. Open the first URL: `page = await browser.present("https://www.bing.com/")`.
3. Without disconnecting / without a new session, open a second URL: `page2 = await browser.present("https://www.baidu.com/")`.
4. Inspect the real browser window (or `await browser.pages()`).

## Actual vs Expected

- **Actual:** The browser UI shows **two separate QwenPaw tab-groups** ("bing.com" and "baidu.com"), each containing exactly one tab. `pages()` returns 2 page refs, but they belong to different groups. Repeated calls accumulate many groups. There is no way to add a tab to an existing group via the SDK.
- **Expected:** All pages opened within the same `Browser.connect()` session should belong to **one single QwenPaw tab-group** (one group, multiple tabs), so an agent can operate on several pages without creating a new group/window each time. It should behave like `browser.new_tab()` in the same window, not `browser.new_window()`.

## Logs / Screenshots

Observed `session_status` (same session_id = `9e883225`), yet browser UI shows two groups:

```
session: SessionStatus(owner=...session_id='9e883225', variant=, context=, identity='user', connected=True)
pages(): 2
0 | https://www.bing.com/
1 | https://www.baidu.com/
```

User's direct observation in the real browser: "还是两个群组" (still two groups) — two separate QwenPaw groups, one tab each.

## Additional Notes

- This is the root cause of repeated "spawn too many groups" complaints during agent tasks (e.g. a sign-in retry loop creating 20+ empty/one-tab groups).
- Workaround today: none available at SDK level; the only fix is manually dragging tabs into one group in the browser UI, which is not viable for an autonomous agent.
- Suggested fix direction: either (a) make `present()`/`open()` in the same session reuse the existing group by adding a tab, or (b) expose a `new_tab()` / `add_tab_to_group()` method that opens a page inside the current group instead of always creating a new group.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Start by tracing the Browser SDK entry points named in the report: Browser.connect(), present(), open(), pages(), and the session/tab-group handling they invoke. Reproduce the two-URL flow in one connection and verify that completion means both pages belong to one group without creating additional groups; the issue does not name specific files or tests.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
api, backend
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.