{ "status": "passed_with_limitations", "method": "Headless Google Chrome via temporary Playwright Core; built Next frontend at localhost:3217", "mock_boundary": "Every /api request intercepted with explicit in-memory fixtures; non-local requests aborted. No backend, real model, OpenCode, database or real credentials contacted.", "prior_attempts": [ { "outcome": "Reasoner and OpenCode saves passed; narrow resource row edit was obstructed with existing expanded sidebar at390px. Repeated using existing sidebar collapse control; no application code changed." } ], "fixtures": { "models": [ "UI Strong Model: supportsReasoningEffort=true", "UI Basic Model: supportsReasoningEffort=false" ], "tools": [ "UI HTTP Tool", "UI Client Tool (must be excluded from Reasoner picker)" ] }, "steps": [ { "name": "Render dedicated resources page and open Reasoner form", "status": "passed", "details": { "desktop_layout": { "viewport": 1440, "width": 751.712158203125, "left": 344.1438903808594, "right": 1095.8560485839844, "scrollWidth": 768, "clientWidth": 768, "horizontalOverflow": false, "outsideViewport": false } } }, { "name": "Configure Reasoner model, high effort, inline skill and server-only tool", "status": "passed", "details": { "captured_payload": { "name": "UI Reasoner Smoke", "description": "", "enabled": true, "type": "reasoner", "secrets": {}, "config": { "instructions": "", "timeoutSeconds": 600, "maxConcurrency": 1, "modelResourceId": "ui_model_strong", "reasoningEffort": "high", "toolBindings": [ { "toolId": "ui_http", "argumentBindings": { "query": { "source": "model" } }, "templateBindings": {}, "resultAssignments": {} } ], "skills": [ { "name": "UI Analysis", "content": "Analyze constraints before proposing a result." } ] } } } }, { "name": "Edit preserves Reasoner values; unsupported model disables nondefault effort", "status": "passed" }, { "name": "Configure OpenCode connection, agent, paired model and remote skill note", "status": "passed", "details": { "captured_payload": { "name": "UI OpenCode Smoke", "description": "", "enabled": true, "type": "opencode", "secrets": { "password": "" }, "config": { "instructions": "", "timeoutSeconds": 600, "maxConcurrency": 1, "url": "http://127.0.0.1:9", "directory": "/test-fixture/repo", "username": "opencode", "agent": "build", "modelProviderId": "ui-provider", "modelId": "ui-model", "skillsNote": "Installed remotely; fixture note only." } } } }, { "name": "Responsive resource page and OpenCode modal fit a 390px viewport", "status": "passed", "details": { "page_layout": { "viewport": 390, "width": 390, "left": 0, "right": 390, "scrollWidth": 390, "clientWidth": 390, "horizontalOverflow": false, "outsideViewport": false }, "dialog_layout": { "viewport": 390, "width": 340.0999755859375, "left": 24.950002670288086, "right": 365.0499782562256, "scrollWidth": 358, "clientWidth": 358, "horizontalOverflow": false, "outsideViewport": false } } }, { "name": "Prompt binds backend independently and sends taskBackend without ToolBinding", "status": "passed", "details": { "captured_task_backend": { "backendId": "ui_backend_1", "instructions": "Return clear evidence and limitations.", "instructionSource": { "source": "model" } }, "ordinary_tool_bindings": [] } }, { "name": "Migrated variable instruction source survives fetch/edit/save unchanged", "status": "incomplete", "error": "Optional legacy-variable fetch/edit/save follow-up timed out waiting for the task-instruction editor after page reload. Not diagnosed; this browser run does not claim to verify that scenario." } ], "console_errors": [], "page_errors": [], "unexpected_requests": [], "captures": [ "/private/tmp/ai-video-browser-smoke/reasoner-desktop.png", "/private/tmp/ai-video-browser-smoke/opencode-desktop.png", "/private/tmp/ai-video-browser-smoke/expanded-sidebar-mobile-limitation.png", "/private/tmp/ai-video-browser-smoke/opencode-mobile.png", "/private/tmp/ai-video-browser-smoke/prompt-binding-desktop.png" ], "limitations": [ "Browser smoke verifies rendered client behavior and request payloads against mocked APIs, not backend validation or genuine model/coding execution.", "No microphone/WebRTC connection was started.", "Responsive checks cover new resource page/dialog with the existing sidebar manually collapsed. Existing AppShell does not auto-collapse its252px sidebar on resize; the expanded sidebar obstructed row edit at390px.", "Optional migrated variable instructionSource reload was not verified in this browser run; no backend or migration behavior is inferred from it.", "Screenshots are diagnostic captures; mobile capture occurred during modal transition. Geometry checks, not pixel comparison, established the responsive result." ], "completed_at": "2026-10-24T01:25:20.247Z", "acceptance": "Core frontend browser smoke passed against explicitly mocked APIs; optional legacy variable reload remains unverified.", "cleanup": { "temporary_browser_closed": true, "local_next_server_stopped": true, "project_dependencies_changed": false } }