mirror of
https://github.com/remorses/playwriter.git
synced 2026-09-14 16:37:40 +08:00
96575c1b69
Sessions can now specify a custom Chrome tab group name and color via `playwriter session new --name myproject --color red`. Different sessions with different names get separate Chrome tab groups. The metadata flows through: CLI options → relay HTTP → CDP URL query params → relay state (PlaywrightClient) → forwardCDPCommand params → extension TabInfo → chrome.tabGroups API. Key changes: **Extension (0.0.74 → 0.0.77)** - Add groupName/groupColor fields to TabInfo - Rewrite syncTabGroup to manage multiple named groups independently - Add updateTabGroupWithRetry to handle Chrome's race condition where tabGroups.update() silently fails right after tabs.group() - Fix tab group flapping bug: only apply group metadata on Target.createTarget, not on every CDP command. Broadcast commands like Target.setAutoAttach were overwriting unrelated tabs' group metadata - Add tabsBeingMoved guard set so programmatic ungroup/regroup during syncTabGroup doesn't trigger disconnect via onUpdated handler - Narrow store subscriber to only trigger syncTabGroup on group-relevant field changes (state, groupName, groupColor) **Playwriter MCP/CLI (0.0.85 → 0.0.87)** - Add --name and --color options to `session new` CLI command - Forward groupName/groupColor through getCdpUrl query params - Store group metadata on PlaywrightClient in relay state - Only inject group fields into forwardCDPCommand on Target.createTarget to prevent the flapping bug - Pass clientId through handleCDPCommand so relay can look up group metadata **Website** - Add markdown.tsx route using safe-mdx for markdown-driven editorial pages Backward compatible: older extensions ignore the new fields, omitting options preserves the default 'playwriter' green group.