Commit Graph

26 Commits

Author SHA1 Message Date
4c888b0500 Fix database insert - add user_ip column 2025-12-29 10:50:16 +11:00
64bdc868b2 chore: remove db credentials from tracking and add template file 2025-12-28 23:04:08 +11:00
1081d22228 Fix: Add missing DB insert query in runner.js 2025-12-28 22:07:55 +11:00
4208e79a58 Cleanup: Remove temporary operational files 2025-12-28 21:19:50 +11:00
1d14408830 Fix(runner): Restore missing DB insert query in rollback 2025-12-28 21:09:16 +11:00
04dd7de2f2 Implement high-res video capture with Puppeteer integration in test runner 2025-12-28 11:42:06 +11:00
9cd5cac287 Phase 3: Add filmstrip column to DB and update runner 2025-12-28 10:29:40 +11:00
d4ce23b19a Restore filmstrip feature, fix server crash, and rename Grade label 2025-12-28 09:42:24 +11:00
50dcf9b498 Feat: Add backend support for filmstrip capture 2025-12-28 05:08:12 +11:00
d345694b01 Fix: Add missing generateTestId function causing server crash 2025-12-28 04:50:41 +11:00
88358406f4 Phase C.1 - Multi-run backend implementation (database + execution logic) 2025-12-28 03:13:08 +11:00
9323293464 Critical fixes: Cache busting + Remove throttling + Ensure correct defaults
1. Browser Cache Fix:
   - Added ?v=4.0 to main.js to force browser reload
   - This ensures new comparison/waterfall UI loads

2. Remove ALL Throttling:
   - Disabled Lighthouse network throttling (rttMs=0, throughput=0)
   - Disabled CPU throttling (cpuSlowdownMultiplier=1)
   - Set throttlingMethod to 'provided' (no simulation)
   - Applies to both mobile and desktop tests

3. Backend Default Already Fixed:
   - isMobile defaults to false (desktop) matching frontend

This fixes all 3 reported issues
2025-12-28 02:01:45 +11:00
79439f7bfa Fix device selection default mismatch + Integrate Waterfall & Comparison
Bug Fix:
- Backend was defaulting to mobile (isMobile ?? true)
- Frontend was defaulting to desktop
- Changed runner.js default to false (desktop) to match frontend

Feature Integration:
- Added Waterfall button to each history item
- Added comparison checkboxes to history for easy test selection
- Auto-limit to 2 tests for comparison
- Comparison controls appear dynamically when tests selected
- Auto-load comparison when URL params present
2025-12-28 01:55:27 +11:00
fd67a8a4fa Add Export APIs & Optimization Checks (Phases 14-15)
Features Added:
- HAR file export endpoint (/api/export/:testId/har)
- CSV metrics export endpoint (/api/export/:testId/csv)
- Optimization checker analyzing 8 categories:
  * Image optimization
  * Text compression (gzip/brotli)
  * Cache policies
  * Render-blocking resources
  * Unused JavaScript
  * Unused CSS
  * HTTP/2 adoption
  * Code minification
- Frontend optimization checklist with color-coded warnings
- Export buttons integrated into results UI

Technical Implementation:
- Created lib/optimization-checker.js with Lighthouse audit analysis
- Added optimization score calculation (0-100%)
- Potential time savings displayed for each check
- Export buttons wired to download endpoints
- Optimization data saved alongside each test result
2025-12-28 01:41:33 +11:00
4aa890da6f Add Waterfall Chart & Request Inspector
Features Added:
- Interactive waterfall timeline visualization
- Color-coded timing bars (DNS, Connect, SSL, TTFB, Download)
- Request filtering by resource type (HTML, JS, CSS, Images, Fonts)
- Detailed request inspector dialog with timing breakdown
- HAR data extraction from Lighthouse results
- Size/compression metrics display
- Third-party resource identification
- Render-blocking resource detection

Technical Implementation:
- Created lib/har-parser.js for network data extraction
- Built waterfall.html with SVG-based timeline renderer
- Added waterfall.js with interactive controls
- Integrated HAR generation into test runner workflow
- Updated main UI with View Waterfall link
2025-12-28 01:32:27 +11:00
91dd847339 Fix: History query logic to prioritize UUID over IP 2025-12-28 00:52:53 +11:00
7206412704 Fix: Implement Test Queue and Unique Profiles for Concurrency 2025-12-28 00:41:38 +11:00
f757106f89 Fix: Force random port for Chrome to resolve concurrency issues 2025-12-28 00:35:19 +11:00
5ae3b0d036 Implement PostgreSQL history with user isolation 2025-12-28 00:13:43 +11:00
82c4e9f7c1 Fix Runner: Use correct import for chrome-launcher 2025-12-27 23:50:50 +11:00
89209b71e2 Fix Runner: Explicitly set chromium path on Linux 2025-12-27 23:45:17 +11:00
f7a1f1be42 Fix ERR_REQUIRE_ESM: Use dynamic import for uuid 2025-12-27 23:13:47 +11:00
782aaf63a6 Fix ERR_REQUIRE_ESM: Use dynamic import for Chrome Launcher 2025-12-27 23:10:02 +11:00
557cb3261f Fix ERR_REQUIRE_ESM: Use dynamic import for Lighthouse 2025-12-27 23:03:51 +11:00
f253b8678f Feature Complete: WebPageTest Clone
- Implemented Test Launcher UI (index.html)
- Added 'View Full Report' functionality using Lighthouse HTML reports
- Configured runner.js for robust Headless Chrome execution on Linux
- Updated styles for form and results dashboard
2025-12-27 22:21:17 +11:00
264325112e Implement Core Performance Testing Engine (Phase 1 & 2)
- Added Lighthouse and Chrome Launcher dependencies
- Created lib/runner.js test runner service
- Implemented filesystem storage for test results
- Added API endpoints: POST /api/run-test and GET /api/history
2025-12-27 22:18:41 +11:00