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.
53 lines
1.5 KiB
JSON
53 lines
1.5 KiB
JSON
{
|
|
"name": "website",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"placeholders": "tsx scripts/generate-placeholders.ts",
|
|
"build": "tsx scripts/generate-placeholders.ts && react-router build",
|
|
"dev": "react-router dev --port 8044",
|
|
"typecheck": "react-router typegen && tsc"
|
|
},
|
|
"exports": {
|
|
"./*": "./*"
|
|
},
|
|
"dependencies": {
|
|
"@radix-ui/react-slot": "^1.2.4",
|
|
"@react-router/fs-routes": "^7.11.0",
|
|
"@react-router/node": "^7.11.0",
|
|
"@sentry/node": "^10.32.1",
|
|
"@tailwindcss/typography": "^0.5.19",
|
|
"@types/prismjs": "^1.26.6",
|
|
"@vercel/react-router": "^1.2.4",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"isbot": "^5.1.32",
|
|
"lucide-react": "^0.562.0",
|
|
"prismjs": "^1.30.0",
|
|
"react": "^19.2.3",
|
|
"react-dom": "^19.2.3",
|
|
"react-router": "^7.11.0",
|
|
"safe-mdx": "^1.3.9",
|
|
"sentries": "^0.2.2",
|
|
"string-dedent": "^3.0.2",
|
|
"tailwind-merge": "^3.4.0",
|
|
"tw-animate-css": "^1.4.0"
|
|
},
|
|
"devDependencies": {
|
|
"@react-router/dev": "^7.11.0",
|
|
"@tailwindcss/vite": "^4.2.0",
|
|
"@types/node": "^25.0.3",
|
|
"@types/react": "^19.2.7",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@vitejs/plugin-react": "^5.1.2",
|
|
"@xmorse/deployment-utils": "^0.7.2",
|
|
"sharp": "^0.34.5",
|
|
"tailwindcss": "^4.2.0",
|
|
"typescript": "^5.9.3",
|
|
"vite": "^7.3.0",
|
|
"vite-plugin-environment": "^1.1.3",
|
|
"vite-tsconfig-paths": "^6.0.3",
|
|
"vitest": "^4.0.16"
|
|
}
|
|
}
|