From 41e48b4381646dc4f4c45b928a5c84f8b267f571 Mon Sep 17 00:00:00 2001 From: abose Date: Fri, 23 Oct 2026 11:22:02 +0530 Subject: [PATCH 1/5] fix(ai): ship direct CLI draft transfer with matching Pro pin Update the unavailable-session message to ask for a running CLI instead of claiming that the user must finish a question or approval. Ask AI now pastes directly into the selected connected terminal without relying on its screen layout, placeholder text, or echoed output. Pin Phoenix Pro to 22122a7f72892dce39515ece8b17ac125d2d1263, which removes the fragile prompt checks while retaining session validation, bracketed paste without Enter, attachment snapshots, and failed-transfer recovery. The Pro commit is rebased onto the updated local main branch. Validation: 49 CLI integration specs and 13 Live Preview Send specs passed in Linux Electron through the connected Jasmine runner. Targeted ESLint and whitespace checks passed. A Windows release build and native platform verification remain outstanding. --- src/nls/root/strings.js | 2 +- tracking-repos.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nls/root/strings.js b/src/nls/root/strings.js index 4187531cf8..fe21d48be0 100644 --- a/src/nls/root/strings.js +++ b/src/nls/root/strings.js @@ -3178,7 +3178,7 @@ define({ "LIVE_DEV_AI_CHAT_SENT": "Sent to Visual AI", "LIVE_DEV_AI_CHAT_TRANSFER": "Transfer to {0}", "LIVE_DEV_AI_CHAT_TRANSFER_KEYS": "Transfer the draft, then submit in the CLI", - "LIVE_DEV_AI_CHAT_CLI_NOT_READY": "Open the CLI prompt and finish any question or approval, then try again. Your draft is kept here.", + "LIVE_DEV_AI_CHAT_CLI_NOT_READY": "Open a running CLI session, then try again. Your draft is kept here.", "LIVE_DEV_AI_CHAT_CLI_TRANSFERRED": "Draft added. Review and press Enter to send.", "LIVE_DEV_AI_CHAT_CLI_CONNECTION_REQUIRED": "Connect Phoenix using the connection button in the CLI header, then try again. If this session started without a connection, start a connected session. Your draft is kept here.", "LIVE_DEV_AI_CHAT_CLI_CONTEXT_SUMMARY": "Attached from Phoenix: {0}.", diff --git a/tracking-repos.json b/tracking-repos.json index 3f14e26565..4b2079fc49 100644 --- a/tracking-repos.json +++ b/tracking-repos.json @@ -1,5 +1,5 @@ { "phoenixPro": { - "commitID": "1ff11cca5ba60131a2a18654c28c72cd5e3168a9" + "commitID": "22122a7f72892dce39515ece8b17ac125d2d1263" } } From 575a4c41f43d3d5b417a2fa81c6fc64f279e5379 Mon Sep 17 00:00:00 2001 From: abose Date: Fri, 23 Oct 2026 11:53:00 +0530 Subject: [PATCH 2/5] fix(ai): reword expired Claude login prompt for browser sign-in The expired-login button now opens the Claude sign-in page in the browser instead of a terminal where the user had to type /login. Update its label and hint to match. Pin Phoenix Pro to 124c4b699b6f78d5bd5692e43482f29ca7853be0, which reuses the first-use `claude auth login` flow for the expired-login button. Validation: integration:AI Chat CLI 43/43 in Linux Electron. --- src/nls/root/strings.js | 4 ++-- tracking-repos.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/nls/root/strings.js b/src/nls/root/strings.js index fe21d48be0..246f6cbb32 100644 --- a/src/nls/root/strings.js +++ b/src/nls/root/strings.js @@ -3039,8 +3039,8 @@ define({ "AI_CHAT_MODE_INFO_FULL_AUTO": "AI can edit files and run commands without approval", "AI_CHAT_PERMISSION_SELECT_TITLE": "Choose how much the AI can do without approval [or Shift+Tab]", "AI_CHAT_AUTH_ERROR_NOTICE": "Claude Code is signed out or your login has expired.", - "AI_CHAT_AUTH_ERROR_BTN": "Log in to Claude in Terminal", - "AI_CHAT_AUTH_ERROR_HINT": "Type /login in the terminal that opens, then send your message again.", + "AI_CHAT_AUTH_ERROR_BTN": "Sign in to Claude", + "AI_CHAT_AUTH_ERROR_HINT": "Finish signing in on the page that opens in your browser, then send your message again.", "AI_CHAT_MODEL_DEFAULT": "Default", "AI_CHAT_MODEL_DEFAULT_DESC_CURRENT": "Currently {0}", "AI_CHAT_MODEL_DEFAULT_DESC": "Recommended — uses your Claude Code model setting", diff --git a/tracking-repos.json b/tracking-repos.json index 4b2079fc49..4f408034a2 100644 --- a/tracking-repos.json +++ b/tracking-repos.json @@ -1,5 +1,5 @@ { "phoenixPro": { - "commitID": "22122a7f72892dce39515ece8b17ac125d2d1263" + "commitID": "124c4b699b6f78d5bd5692e43482f29ca7853be0" } } From 531ab115a14f50770f31e82080cadb477c5c9d32 Mon Sep 17 00:00:00 2001 From: abose Date: Fri, 23 Oct 2026 12:24:10 +0530 Subject: [PATCH 3/5] fix(ci): update Playwright for Windows Firefox runs Replace Playwright 1.38.1 and Firefox 117 with pinned Playwright 1.64.1 and Firefox 157 after hosted Windows runners began closing pages before Phoenix loaded. Include browser process diagnostics in the Windows workflow for any remaining hosted-image failures. Pin Pro to the completed CLI and browser verification records. Keep the macOS Firefox workflow and shared test ports unchanged, as requested. Validation: 2,891 Jasmine unit specs passed in each of Windows Firefox, Linux Firefox and Linux Chromium. Active Firefox workflow syntax and whitespace checks pass. Hosted Windows CI confirmation remains pending push. --- .../workflows/playwright-firefox-windows.yml | 3 + package-lock.json | 82 +++++++------------ package.json | 2 +- tracking-repos.json | 2 +- 4 files changed, 34 insertions(+), 55 deletions(-) diff --git a/.github/workflows/playwright-firefox-windows.yml b/.github/workflows/playwright-firefox-windows.yml index 1d8d38920f..677941a2ff 100644 --- a/.github/workflows/playwright-firefox-windows.yml +++ b/.github/workflows/playwright-firefox-windows.yml @@ -11,6 +11,9 @@ jobs: playwright-firefox-windows: timeout-minutes: 90 runs-on: windows-latest + env: + # Include browser process errors when Firefox exits before the test page opens. + DEBUG: pw:browser steps: - uses: actions/checkout@v3 - name: setup node diff --git a/package-lock.json b/package-lock.json index b785839fa6..5b452aaf6e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,7 +48,7 @@ "devDependencies": { "@commitlint/cli": "^16.0.2", "@commitlint/config-conventional": "^16.0.0", - "@playwright/test": "^1.38.1", + "@playwright/test": "1.64.1", "del": "^6.0.0", "eslint": "^8.18.0", "glob": "^8.1.0", @@ -1207,18 +1207,19 @@ "integrity": "sha512-Dal+yZ5FpZN8yq6XfZNWFl0gNi4AM5c4cEIGc0yKQYQAbCY0+erwQjAVQUuzkD4kRsrJK+hwF+Mf58/pXV421w==" }, "node_modules/@playwright/test": { - "version": "1.38.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.38.1.tgz", - "integrity": "sha512-NqRp8XMwj3AK+zKLbZShl0r/9wKgzqI/527bkptKXomtuo+dOjU9NdMASQ8DNC9z9zLOMbG53T4eihYr3XR+BQ==", + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.64.1.tgz", + "integrity": "sha512-IaYGml/nSOiZWROfPtuIL7neuu9qDOZ3TNvNljUIrhDMxiGTgPjzj/g9p9RxpS2tSepPDRY+UwAaEeiKtUvIAg==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "playwright": "1.38.1" + "playwright": "1.64.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=16" + "node": ">=20" } }, "node_modules/@popperjs/core": { @@ -9906,47 +9907,32 @@ } }, "node_modules/playwright": { - "version": "1.38.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.38.1.tgz", - "integrity": "sha512-oRMSJmZrOu1FP5iu3UrCx8JEFRIMxLDM0c/3o4bpzU5Tz97BypefWf7TuTNPWeCe279TPal5RtPPZ+9lW/Qkow==", + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.64.1.tgz", + "integrity": "sha512-HCrVhHr5QQuwYoswEUGTb7gGp522yflbv/ST8nF4sFWGuLjQCt17Q/EubpGGSNKYn1tsTCPZxqHhHCfVURu7UA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.38.1" + "playwright-core": "1.64.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=16" - }, - "optionalDependencies": { - "fsevents": "2.3.2" + "node": ">=20" } }, "node_modules/playwright-core": { - "version": "1.38.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.38.1.tgz", - "integrity": "sha512-tQqNFUKa3OfMf4b2jQ7aGLB8o9bS3bOY0yMEtldtC2+spf8QXG9zvXLTXUeRsoNuxEYMgLYR+NXfAa1rjKRcrg==", + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.64.1.tgz", + "integrity": "sha512-BC4s8y6SEVA6Q1rSxZTto8hI1KUI3xXlHGZgvGqP4IqPdI/a6FX9H29IDNz7vKo9l21b6LfYosScPL6M3xxyDQ==", "dev": true, + "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, "engines": { - "node": ">=16" - } - }, - "node_modules/playwright/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=20" } }, "node_modules/plugin-error": { @@ -14142,12 +14128,12 @@ "integrity": "sha512-Dal+yZ5FpZN8yq6XfZNWFl0gNi4AM5c4cEIGc0yKQYQAbCY0+erwQjAVQUuzkD4kRsrJK+hwF+Mf58/pXV421w==" }, "@playwright/test": { - "version": "1.38.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.38.1.tgz", - "integrity": "sha512-NqRp8XMwj3AK+zKLbZShl0r/9wKgzqI/527bkptKXomtuo+dOjU9NdMASQ8DNC9z9zLOMbG53T4eihYr3XR+BQ==", + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.64.1.tgz", + "integrity": "sha512-IaYGml/nSOiZWROfPtuIL7neuu9qDOZ3TNvNljUIrhDMxiGTgPjzj/g9p9RxpS2tSepPDRY+UwAaEeiKtUvIAg==", "dev": true, "requires": { - "playwright": "1.38.1" + "playwright": "1.64.1" } }, "@popperjs/core": { @@ -21106,28 +21092,18 @@ } }, "playwright": { - "version": "1.38.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.38.1.tgz", - "integrity": "sha512-oRMSJmZrOu1FP5iu3UrCx8JEFRIMxLDM0c/3o4bpzU5Tz97BypefWf7TuTNPWeCe279TPal5RtPPZ+9lW/Qkow==", + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.64.1.tgz", + "integrity": "sha512-HCrVhHr5QQuwYoswEUGTb7gGp522yflbv/ST8nF4sFWGuLjQCt17Q/EubpGGSNKYn1tsTCPZxqHhHCfVURu7UA==", "dev": true, "requires": { - "fsevents": "2.3.2", - "playwright-core": "1.38.1" - }, - "dependencies": { - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - } + "playwright-core": "1.64.1" } }, "playwright-core": { - "version": "1.38.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.38.1.tgz", - "integrity": "sha512-tQqNFUKa3OfMf4b2jQ7aGLB8o9bS3bOY0yMEtldtC2+spf8QXG9zvXLTXUeRsoNuxEYMgLYR+NXfAa1rjKRcrg==", + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.64.1.tgz", + "integrity": "sha512-BC4s8y6SEVA6Q1rSxZTto8hI1KUI3xXlHGZgvGqP4IqPdI/a6FX9H29IDNz7vKo9l21b6LfYosScPL6M3xxyDQ==", "dev": true }, "plugin-error": { diff --git a/package.json b/package.json index 9822e75b51..4e7958f69e 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "devDependencies": { "@commitlint/cli": "^16.0.2", "@commitlint/config-conventional": "^16.0.0", - "@playwright/test": "^1.38.1", + "@playwright/test": "1.64.1", "del": "^6.0.0", "eslint": "^8.18.0", "glob": "^8.1.0", diff --git a/tracking-repos.json b/tracking-repos.json index 4f408034a2..4c35b4c214 100644 --- a/tracking-repos.json +++ b/tracking-repos.json @@ -1,5 +1,5 @@ { "phoenixPro": { - "commitID": "124c4b699b6f78d5bd5692e43482f29ca7853be0" + "commitID": "ef2cfe8ac783da8115d8f102984c9e3759e87776" } } From 208decb93e3a692923a2aa31faa1af2131344782 Mon Sep 17 00:00:00 2001 From: abose Date: Fri, 23 Oct 2026 13:04:47 +0530 Subject: [PATCH 4/5] chore: update Pro pin after rebasing onto main Pin Phoenix Pro to its final local ai commit after rebasing both repositories onto the latest origin/main. This includes the merged layers-panel cleanup alongside the existing CLI paste and expired-login fixes. Record the Pro tracking update for the completed rebases and cancellation of the 14 obsolete workflow runs for merged core PR #3286. --- tracking-repos.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tracking-repos.json b/tracking-repos.json index 4c35b4c214..d0d98b7a8d 100644 --- a/tracking-repos.json +++ b/tracking-repos.json @@ -1,5 +1,5 @@ { "phoenixPro": { - "commitID": "ef2cfe8ac783da8115d8f102984c9e3759e87776" + "commitID": "d339871b86368b743624211d7d829edd91fd337f" } } From 37c21ede85ab481fafc06277d34ebe5540bbbb37 Mon Sep 17 00:00:00 2001 From: abose Date: Fri, 23 Oct 2026 13:48:42 +0530 Subject: [PATCH 5/5] build: update pro deps --- tracking-repos.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tracking-repos.json b/tracking-repos.json index d0d98b7a8d..6e3878ec2a 100644 --- a/tracking-repos.json +++ b/tracking-repos.json @@ -1,5 +1,5 @@ { "phoenixPro": { - "commitID": "d339871b86368b743624211d7d829edd91fd337f" + "commitID": "7490a7fe9ec83db4dd13069d6bec64cb8866562c" } }