Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.

## [Unreleased]

### Fixed

- **Archived run log restored in full** — `setRunLog` no longer truncates
historical run logs to the last 999 lines when restoring an archived run.
The `.slice(-999)` cap is now applied only to the live-streaming path,
where it is needed to bound unbounded SSE output; the archived-run restore
path sets `data.runLog` directly so all historical context is visible
(`ui/src/pages/PlaywrightDashboard.tsx`).

### Changed

- **Design system compliance pass on PlaywrightDashboard** — aligns
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Type a request in the chat. **Edi M**, the Team Manager, analyses your intent an
| ✨🦙 | **Gemini + Ollama** | Switch between cloud Gemini and fully-local Ollama models with a single click — no restart required |
| 🎭 | **Playwright Dashboard** | Run your test suite, stream live terminal output, and view pass/fail telemetry in real time. Every run also lands an Edi M post-mortem in chat. UI follows the `DESIGN.md` token system — brand `#1a3a8f`, semantic success/warning/error colours, no uppercase chips |
| 🧠 | **Post-Run AI Summaries** | After a test run Edi M reads the JSON results, classifies each failure (Timeout / Assertion / Locator / Network), and streams a structured executive summary with TypeScript fix snippets |
| 📜 | **Persistent Run History + Logs** | Each run is archived under `test-results/runs/` with its full stdout — click any past run in the history table to replay results AND the original log lines |
| 📜 | **Persistent Run History + Logs** | Each run is archived under `test-results/runs/` with its full stdout — click any past run in the history table to replay results AND the full original log (no line-count truncation) |
| 🔧 | **Self-Healing Locators** | Broken selectors are ranked by resilience: `getByTestId` → `getByRole` → `getByLabel` → CSS/XPath with confidence scores and caveats |
| 🔬 | **6 CLI Agents** | Standalone Node.js agents: Self-Healing, Auto-POM, Bug Triage, Visual Regression, A11y Scanner, Data Generator |
| 📚 | **Built-in QA Course** | 12-chapter automation curriculum with animated, interactive lessons built directly into the UI |
Expand Down
3 changes: 2 additions & 1 deletion ui/src/pages/PlaywrightDashboard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4929,7 +4929,8 @@ export default function PlaywrightDashboard() {
setSelectedRunId(runId ?? null);
setExpandedSuites(Object.fromEntries(data.suites.map((s) => [s.id, true])));
// Restore the archived stdout when viewing an old run; clear when switching to latest.
setRunLog(runId && Array.isArray(data.runLog) ? data.runLog.slice(-999) : []);
// For archived runs restore the full log; only cap the live view to avoid unbounded state.
setRunLog(runId && Array.isArray(data.runLog) ? data.runLog : []);
} catch {
setServerOnline(false);
setDemoMode(true);
Expand Down
Loading