diff --git a/.gitignore b/.gitignore
index dc7e2fd2..05fa31b2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -65,6 +65,11 @@ coverage/
*.lcov
playwright-report/
blob-report/
+test/**/test-project-[0-9]*/
+test/opus-thinking-*/
+test/agent-session-test-*/
+test/feature-backlog-test-*/
+test/running-task-display-test-*/
# Environment files (keep .example)
.env
diff --git a/apps/ui/playwright.config.ts b/apps/ui/playwright.config.ts
index 5a56289f..f530a93f 100644
--- a/apps/ui/playwright.config.ts
+++ b/apps/ui/playwright.config.ts
@@ -59,6 +59,10 @@ export default defineConfig({
ALLOWED_ROOT_DIRECTORY: '',
// Simulate containerized environment to skip sandbox confirmation dialogs
IS_CONTAINERIZED: 'true',
+ // Increase Node.js memory limit to prevent OOM during tests
+ NODE_OPTIONS: [process.env.NODE_OPTIONS, '--max-old-space-size=4096']
+ .filter(Boolean)
+ .join(' '),
},
},
]),
diff --git a/apps/ui/src/components/ui/header-actions-panel.tsx b/apps/ui/src/components/ui/header-actions-panel.tsx
index 708652b6..1795dcb5 100644
--- a/apps/ui/src/components/ui/header-actions-panel.tsx
+++ b/apps/ui/src/components/ui/header-actions-panel.tsx
@@ -98,6 +98,7 @@ export function HeaderActionsPanelTrigger({
onClick={onToggle}
className={cn('h-8 w-8 p-0 text-muted-foreground hover:text-foreground lg:hidden', className)}
aria-label={isOpen ? 'Close actions menu' : 'Open actions menu'}
+ data-testid="header-actions-panel-trigger"
>
{isOpen ?