Feat/dashboard collab and UI upgrades - #115
Conversation
…for every run, UI polish Three production fixes plus a feature upgrade for the Playwright Dashboard and the QA Office chat panel: - **Multi-agent collaboration** in /api/qa-agent: primary → critic → primary refine → Edi M synthesis. Auto-triggered when 2+ agents are tagged or the manager is mentioned. New SSE turn_start/turn_done/turn_verdict events produce a threaded conversation in chat, with colour-coded role pills. - **Run logs persisted** alongside each archived run; clicking an old run re-hydrates the dashboard log panel. archiveRun() now logs success/failure to the server console so silent archive failures are visible. - **Edi M summary now streams to chat for every Run Tests**, not just agent-generated dynamic runs. Phase 2 streamSummary() helper shared by /api/playwright/run and /api/run-dynamic-test. - **Dashboard UI/UX polish**: KPI hero with progress ring + verdict, pill subtitle row, history-chart hover tooltip + moving-average trend line, sticky suite headers with smooth chevron rotation, copy-error button, cropped QA Office canvas (no more "blue void" above the office). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- server: drop unnecessary \- escape in runId sanitiser regex - tests/sv-login: remove unused BASE_URL import - PlaywrightDashboard: replace ternary-as-statement with explicit if/else in the multi-spec picker onChange (no-unused-expressions) - OfficePage + PlaywrightDashboard: remove orphaned `eslint-disable-next-line react-hooks/exhaustive-deps` directives — the rule isn't registered in this project's ESLint config so the directive itself was reported as an error - PlaywrightDashboard: drop two unused `// eslint-disable-line` trailing comments flagged by no-unused-disable - README: mention multi-agent collab + persistent run history features so the docs-check script sees a docs update alongside the code change Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Auto-format 115 files with Prettier to fix the failing format:check workflow step. Also removes the temporary PR_BODY.md file. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…, summary snapshot, types) - CHANGELOG: remove duplicate bullets (two entries appeared under both the unreleased ### Changed block and an orphaned second block) - runCollabTurn: accept and forward history + imageAttachments into startChat/sendMessageStream so collaborative turns preserve context and vision - capturedLog: switch from oldest-first cap to a sliding window (push + shift) so archiveRun and AI summaries always see the newest 5 000 lines - streamSummary: accept runId in SummaryCreds; reads the per-run immutable archive instead of the shared RESULTS_PATH to prevent concurrent-run clobbering - Both route close-handlers now capture archiveRun return value and pass runId to streamSummary - PlaywrightDashboard: define RunRequest and SummaryEvent types; runWithSSE typed as (body: RunRequest); evt typed as SummaryEvent | Record<string,unknown>; fetchResults always calls setRunLog (clears to [] when not an archived run) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…-and-ui-upgrades # Conflicts: # CHANGELOG.md # server/index.ts # ui/src/pages/PlaywrightDashboard.tsx
Satisfies the docs-validation CI check that requires README.md to be updated alongside any server/ or ui/src/ changes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Rewrote all nine documentation sections in DocsPage to reflect the current project state. Replaced every Anthropic/Claude reference with Gemini/Ollama, updated the directory tree, rewrote the env-var section with dual-provider setup instructions, corrected the tech stack table, added FAQ entries for provider switching and multi-agent collaboration, and updated the roadmap to mark completed features as done. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThe PR removes the 999-line truncation applied to archived run logs when replaying past runs. The dashboard now hydrates ChangesArchived run log restoration
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
ui/src/pages/DocsPage.tsx (1)
35-307:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFix Prettier formatting in this file to clear CI.
Lint is currently failing on this file due to formatting; please run Prettier and commit the result.
Suggested command
npx prettier --write ui/src/pages/DocsPage.tsx🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ui/src/pages/DocsPage.tsx` around lines 35 - 307, This file (DocsPage.tsx, the DocsPage component containing the large blocks array and JSX blocks like blocks: [...], tables and code snippets) is failing Prettier formatting; run the suggested formatter (npx prettier --write ui/src/pages/DocsPage.tsx) to reformat the file, verify the DocsPage component and the blocks constant structure remain unchanged, fix any remaining lint/format errors reported by CI, and commit the reformatted file so the CI Prettier check passes.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@ui/src/pages/PlaywrightDashboard.tsx`:
- Around line 4622-4623: The current call to setRunLog truncates archived runs
to the last 999 lines (setRunLog(runId && Array.isArray(data.runLog) ?
data.runLog.slice(-999) : [])), which drops historical context; change the logic
so that when restoring an archived/historical run (data.runLog is an array and
runId is truthy for a specific run) you set the full data.runLog, and only apply
slice(-999) when switching to the "latest" live view. Update the setRunLog
invocation (referencing setRunLog, runId and data.runLog) to conditionally use
data.runLog (no slice) for archived runs and data.runLog.slice(-999) only for
the latest/live run case.
---
Outside diff comments:
In `@ui/src/pages/DocsPage.tsx`:
- Around line 35-307: This file (DocsPage.tsx, the DocsPage component containing
the large blocks array and JSX blocks like blocks: [...], tables and code
snippets) is failing Prettier formatting; run the suggested formatter (npx
prettier --write ui/src/pages/DocsPage.tsx) to reformat the file, verify the
DocsPage component and the blocks constant structure remain unchanged, fix any
remaining lint/format errors reported by CI, and commit the reformatted file so
the CI Prettier check passes.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 60558c3a-f2c5-414a-a2c7-e7c3e7552e2d
📒 Files selected for processing (5)
CHANGELOG.mdREADME.mdserver/index.tsui/src/pages/DocsPage.tsxui/src/pages/PlaywrightDashboard.tsx
…-and-ui-upgrades # Conflicts: # CHANGELOG.md # README.md # ui/src/pages/DocsPage.tsx
setRunLog was applying .slice(-999) to the archived-run restore path, silently dropping all but the last 999 lines of historical stdout. The cap is only appropriate for the live SSE streaming path (unbounded append); archived runs are finite and should be shown in full. Restore path now sets data.runLog directly; live-streaming paths at the two SSE consumer loops retain their .slice(-999) guard unchanged. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
Fixes # (issue number)
Type of change
Checklist:
Summary by CodeRabbit