diff --git a/CHANGELOG.md b/CHANGELOG.md index a982ca21..e6ba3b93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/README.md b/README.md index f705f5ba..51f07ca9 100644 --- a/README.md +++ b/README.md @@ -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 | diff --git a/ui/src/pages/PlaywrightDashboard.tsx b/ui/src/pages/PlaywrightDashboard.tsx index 5f4f3208..2526cfa5 100644 --- a/ui/src/pages/PlaywrightDashboard.tsx +++ b/ui/src/pages/PlaywrightDashboard.tsx @@ -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);