177 lines
6.3 KiB
JSON
177 lines
6.3 KiB
JSON
{
|
|||
|
|
"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": "<fake fixture credential>"
|
||
|
|
},
|
||
|
|
"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
|
||
|
|
}
|
||
|
|
}
|