Просмотр исходного кода

docs: record console verification state

Problem: the professional console needs durable operator guidance, completed follow-up evidence, and an explicit browser-QA blocker.\n\nRisk: Todo 53 remains open and must not be merged until desktop and narrow-screen visual checks pass.
zhenyu.hu 2 недель назад
Родитель
Сommit
a10beb4eb4
3 измененных файлов с 53 добавлено и 7 удалено
  1. 12 4
      README.md
  2. 37 0
      docs/plans/todo-53.6-browser-visual-qa.md
  3. 4 3
      docs/plans/todos.md

+ 12 - 4
README.md

@@ -95,10 +95,18 @@ Do not commit secrets. Start the app with:
 uv run uvicorn agent_lab.main:app --reload
 ```
 
-Open `http://127.0.0.1:8000`. The UI can select either invocation mode, enable
-tools/events, configure ChatAgent and applicable EventAgent settings, set event
-loop/concurrency/batch limits, create or restore sessions, replay messages and
-audit data, and inspect per-call, per-turn, and per-session usage.
+Open `http://127.0.0.1:8000`. The professional console keeps sessions and tools
+in the left control rail, gives the conversation the primary workspace, anchors
+round metrics and the composer at the bottom, and places Audit Replay plus usage
+in a collapsible right debug drawer. Control-section and drawer preferences are
+browser-only presentation state and are not included in requests or snapshots.
+
+In `dual_agent`, the read-only EventPrompt is generated from the selected tools
+and appears exactly once in the Chat Agent Prompt List. In `chat_agent_tools`,
+EventPrompt is hidden and excluded from `system_prompts`; switching modes or
+restoring a session/snapshot regenerates the correct state. EventAgent model
+settings are unavailable in direct mode, while shared loop, concurrency, and
+timeout controls remain active.
 
 ## Benchmark CLI
 

+ 37 - 0
docs/plans/todo-53.6-browser-visual-qa.md

@@ -0,0 +1,37 @@
+# Todo 53.6: Browser Visual QA
+
+## Blocker
+
+The local application starts and serves the new assets, but the current Codex browser runtime reports an empty browser list. Desktop and narrow-screen visual/interaction QA therefore cannot be performed in this session.
+
+## Verified Before Blocker
+
+- Full suite: `617 passed`, one existing Starlette/httpx deprecation warning.
+- `node --check src/agent_lab/presentation/static/app.js` passes.
+- `git diff --check` passes.
+- Application import prints `Agent Lab`.
+- HTTP smoke at `http://127.0.0.1:8010/` returns the new `console-layout`, `debug-drawer`, `20260714-professional-console` assets, and console interaction functions.
+
+## Required Browser Checks
+
+### Desktop
+
+- Session and Tools start expanded; Agent Config and Snapshot start collapsed and can be opened.
+- Drawer opens/closes, releases chat width, and persists after reload.
+- Tool selection, All/None, count, mode badge, and EventPrompt remain synchronized.
+- `dual_agent` shows exactly one selected-tool EventPrompt.
+- `chat_agent_tools` hides EventPrompt and disables only EventAgent model-specific settings.
+- Switching back restores exactly one EventPrompt at its prior position.
+- Session/snapshot restore cannot duplicate EventPrompt.
+- Chat send, streaming, audit dialog, and usage rendering remain usable.
+
+### Narrow screen (`<= 900px`)
+
+- Controls, workspace, and open drawer stack vertically.
+- No horizontal page scrollbar appears.
+- Messages, metrics, composer, tool selection, and modal controls remain usable.
+- Closing the drawer removes its stacked region.
+
+## Resume Rule
+
+When a browser backend is available, run the checks above. If a defect is found, add Todo `53.6.x` beneath this row. If all checks pass, mark 53.6 and 53 done, record browser evidence, update the Todo 53 plan checkboxes, run the final automated gate, and merge locally into `codex/agent-lab-mvp`.

+ 4 - 3
docs/plans/todos.md

@@ -117,6 +117,7 @@
 | 53 | in_progress | `docs/plans/todo-53-professional-debug-console-ui.md` | Redesign the static UI as a professional debug console and make EventPrompt visibility/content follow invocation mode and selected tools. | Written design is approved; implementation verification covers focused static/WebSocket regressions, JS syntax, full pytest, and desktop/narrow browser QA. |
 | 53.1 | done | `docs/plans/todo-53.1-event-prompt-order-preservation.md` | Preserve the user-selected EventPrompt position while mode/tool refreshes still deduplicate and regenerate its content. | RED: `3 failed, 5 passed`; GREEN: focused `8 passed`, full WebSocket file `84 passed`; Node syntax and diff checks pass; behavior tests cover refresh, mode round trip, restore position, and duplicate cleanup. |
 | 53.2 | done | `docs/plans/todo-53.2-console-interaction-state.md` | Make the new collapsible control sections and Audit/Usage drawer operable, persistent, and synchronized with session/mode status. | RED: `6 failed, 9 passed`; GREEN: focused `15 passed`, full WebSocket file `94 passed`; Node/diff checks and independent spec/code-quality reviews pass. |
-| 53.3 | in_progress | `docs/plans/todo-53.3-event-prompt-payload-singleton.md` | Enforce the EventPrompt singleton at the outbound payload boundary in both invocation modes, including stale or user-edited generated-signature custom prompts. | A failing behavior test proves `dual_agent` sends one managed EventPrompt and `chat_agent_tools` sends none; focused/full tests and review gates pass. |
-| 53.4 | in_progress | `docs/plans/todo-53.4-managed-event-prompt-test-identity.md` | Make the payload-singleton regression distinguish the managed EventPrompt from a generated-signature custom impostor. | The test uses different valid generated-signature contents and proves dual mode retains the managed value while direct mode retains neither. |
-| 53.5 | in_progress | `docs/plans/todo-53.5-event-prompt-order-independent-identity.md` | Prove EventPrompt payload selection depends on managed prompt identity rather than whether it appears before or after a generated-signature impostor. | The behavior test runs both managed-before-impostor and managed-after-impostor orderings in both invocation modes. |
+| 53.3 | done | `docs/plans/todo-53.3-event-prompt-payload-singleton.md` | Enforce the EventPrompt singleton at the outbound payload boundary in both invocation modes, including stale or user-edited generated-signature custom prompts. | RED: `1 failed, 4 passed`; GREEN: focused `5 passed`, full WebSocket file `94 passed`; collector includes managed EventPrompt only in dual mode. |
+| 53.4 | done | `docs/plans/todo-53.4-managed-event-prompt-test-identity.md` | Make the payload-singleton regression distinguish the managed EventPrompt from a generated-signature custom impostor. | Focused `1 passed`, full WebSocket file `94 passed`; mutation check proves the test fails if the impostor survives instead of the managed item. |
+| 53.5 | done | `docs/plans/todo-53.5-event-prompt-order-independent-identity.md` | Prove EventPrompt payload selection depends on managed prompt identity rather than whether it appears before or after a generated-signature impostor. | Focused `1 passed`, full WebSocket file `94 passed`; both item orderings pass and bounded code-quality review is approved. |
+| 53.6 | blocked | `docs/plans/todo-53.6-browser-visual-qa.md` | Complete desktop and narrow-screen visual/interaction QA before closing Todo 53 and merging locally. | Automated gate passes (`617 passed`, one existing warning) and HTTP assets are current; blocked because the current Codex session reports no available browser backend. |