feat: add URL-driven workspace state and streamed Codex research

This commit is contained in:
2026-09-28 20:08:28 +09:00
parent 85d23a328b
commit 8085ad2f90
207 changed files with 15287 additions and 16026 deletions
+16 -22
View File
@@ -1,39 +1,33 @@
import { expect, type Page } from '@playwright/test'
import { expect, type Page } from "@playwright/test";
export async function showDeckManagement(page: Page) {
await expect(
page.getByRole('button', { name: 'Rename', includeHidden: true }),
).toBeEnabled()
const navigation = page.getByRole('button', {
name: 'Deck manager',
await expect(page.getByRole("button", { name: "Rename", includeHidden: true })).toBeEnabled();
const navigation = page.getByRole("button", {
name: "Deck manager",
exact: true,
})
});
if (!(await navigation.isVisible())) {
await page.getByRole('button', { name: 'Toggle sidebar' }).click()
await page.getByRole("button", { name: "Toggle sidebar" }).click();
}
await navigation.click()
await navigation.click();
}
export async function showResearch(page: Page) {
await expect(
page.getByRole('button', { name: 'Rename', includeHidden: true }),
).toBeEnabled()
const navigation = page.getByRole('button', {
name: 'Research chat',
await expect(page.getByRole("button", { name: "Rename", includeHidden: true })).toBeEnabled();
const navigation = page.getByRole("button", {
name: "Research chat",
exact: true,
})
});
if (!(await navigation.isVisible())) {
await page.getByRole('button', { name: 'Toggle sidebar' }).click()
await page.getByRole("button", { name: "Toggle sidebar" }).click();
}
await navigation.click()
await navigation.click();
}
export async function closeMobileSidebar(page: Page) {
const sheet = page.locator('[data-mobile="true"][data-sidebar="sidebar"]')
const sheet = page.locator('[data-mobile="true"][data-sidebar="sidebar"]');
if (await sheet.isVisible()) {
await page
.getByRole('button', { name: 'Close sidebar', exact: true })
.click()
await expect(sheet).toBeHidden()
await page.getByRole("button", { name: "Close sidebar", exact: true }).click();
await expect(sheet).toBeHidden();
}
}