fix: expand workbench session rail in web probe
This commit is contained in:
@@ -777,9 +777,10 @@ async function ensureWorkbenchComposerReady(options = {}) {
|
||||
}
|
||||
|
||||
async function createProbeSessionFromUi(options = {}) {
|
||||
const railExpansion = await ensureSessionRailExpandedForProbe();
|
||||
const create = page.locator("#session-create").first();
|
||||
if (!(await create.isVisible({ timeout: Math.min(timeoutMs, 5000) }).catch(() => false))) {
|
||||
return { ok: false, method: "ui-click", reason: "session-create-not-visible" };
|
||||
return { ok: false, method: "ui-click", reason: "session-create-not-visible", railExpansion };
|
||||
}
|
||||
const before = await collectWorkbenchReadyState();
|
||||
await create.click();
|
||||
@@ -797,10 +798,36 @@ async function createProbeSessionFromUi(options = {}) {
|
||||
method: "ui-click",
|
||||
before: before.workspace,
|
||||
after: after.workspace,
|
||||
composer: after.composer
|
||||
composer: after.composer,
|
||||
railExpansion
|
||||
};
|
||||
}
|
||||
|
||||
async function ensureSessionRailExpandedForProbe() {
|
||||
const before = await collectWorkbenchReadyState();
|
||||
if (before?.workspace?.sessionCreateVisible === true) {
|
||||
return { ok: true, action: "already-visible", before: before.workspace, after: before.workspace, valuesRedacted: true };
|
||||
}
|
||||
const toggle = page.locator("#session-collapse-toggle").first();
|
||||
const toggleVisible = await toggle.isVisible({ timeout: Math.min(timeoutMs, 2000) }).catch(() => false);
|
||||
if (before?.workspace?.sessionRailCollapsed !== true || !toggleVisible) {
|
||||
return { ok: false, action: "not-expanded", reason: before?.workspace?.sessionRailCollapsed === true ? "collapse-toggle-not-visible" : "session-rail-not-collapsed", before: before.workspace, after: before.workspace, valuesRedacted: true };
|
||||
}
|
||||
await toggle.click();
|
||||
await page.waitForFunction(() => {
|
||||
const visible = (element) => {
|
||||
if (!element) return false;
|
||||
const rect = element.getBoundingClientRect();
|
||||
const style = window.getComputedStyle(element);
|
||||
return rect.width > 0 && rect.height > 0 && style.visibility !== "hidden" && style.display !== "none";
|
||||
};
|
||||
const rail = document.querySelector("#session-sidebar");
|
||||
return Boolean(visible(document.querySelector("#session-create")) || (rail && rail.getAttribute("data-collapsed") === "false"));
|
||||
}, null, { timeout: Math.min(timeoutMs, 5000) }).catch(() => null);
|
||||
const after = await collectWorkbenchReadyState();
|
||||
return { ok: after?.workspace?.sessionCreateVisible === true, action: "expanded-session-rail", before: before.workspace, after: after.workspace, valuesRedacted: true };
|
||||
}
|
||||
|
||||
async function collectWorkbenchReadyState() {
|
||||
return page.evaluate(() => {
|
||||
const activeTab = document.querySelector(".session-tab[data-active='true'], .session-tab[aria-selected='true']");
|
||||
@@ -808,6 +835,15 @@ async function collectWorkbenchReadyState() {
|
||||
const input = document.querySelector("#command-input");
|
||||
const send = document.querySelector("#command-send");
|
||||
const form = document.querySelector("#command-form");
|
||||
const visible = (element) => {
|
||||
if (!element) return false;
|
||||
const rect = element.getBoundingClientRect();
|
||||
const style = window.getComputedStyle(element);
|
||||
return rect.width > 0 && rect.height > 0 && style.visibility !== "hidden" && style.display !== "none";
|
||||
};
|
||||
const sessionCreate = document.querySelector("#session-create");
|
||||
const sessionRail = document.querySelector("#session-sidebar");
|
||||
const sessionCollapseToggle = document.querySelector("#session-collapse-toggle");
|
||||
const warning = document.querySelector(".composer-warning")?.textContent?.trim() || null;
|
||||
const mode = document.querySelector(".composer-mode")?.textContent?.trim() || null;
|
||||
const draft = input && typeof input.value === "string" ? input.value : "";
|
||||
@@ -831,7 +867,14 @@ async function collectWorkbenchReadyState() {
|
||||
activeSessionId: sessionId,
|
||||
activeConversationId: conversationId,
|
||||
activeStatus: activeTab?.getAttribute("data-status") || null,
|
||||
tabCount: document.querySelectorAll(".session-tab").length
|
||||
tabCount: document.querySelectorAll(".session-tab").length,
|
||||
sessionCreatePresent: Boolean(sessionCreate),
|
||||
sessionCreateVisible: visible(sessionCreate),
|
||||
sessionRailPresent: Boolean(sessionRail),
|
||||
sessionRailCollapsed: sessionRail ? sessionRail.getAttribute("data-collapsed") === "true" || sessionRail.classList.contains("is-collapsed") : null,
|
||||
sessionCollapseTogglePresent: Boolean(sessionCollapseToggle),
|
||||
sessionCollapseToggleVisible: visible(sessionCollapseToggle),
|
||||
sessionCollapseToggleExpanded: sessionCollapseToggle ? sessionCollapseToggle.getAttribute("aria-expanded") : null
|
||||
},
|
||||
composer: {
|
||||
ready: composerReady,
|
||||
|
||||
Reference in New Issue
Block a user