diff --git a/.github/workflows/rocjitsu-benchmarks.yml b/.github/workflows/rocjitsu-benchmarks.yml index d0ededc4b510..c3ecbf0e3619 100644 --- a/.github/workflows/rocjitsu-benchmarks.yml +++ b/.github/workflows/rocjitsu-benchmarks.yml @@ -170,7 +170,7 @@ jobs: repository: ROCm/rocm-systems path: dashboard persist-credentials: false - sparse-checkout: emulation/rocjitsu/website + sparse-checkout: emulation/rocjitsu/website/dashboard - name: Set up publisher Python uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -233,7 +233,7 @@ jobs: --is-beta ) - node "${GITHUB_WORKSPACE}/dashboard/emulation/rocjitsu/website/scripts/validate-dashboard-data.mjs" \ + node "${GITHUB_WORKSPACE}/dashboard/emulation/rocjitsu/website/dashboard/scripts/validate-dashboard-data.mjs" \ "${GITHUB_WORKSPACE}/publication/rocjitsu-dashboard/data" git add rocjitsu-dashboard/data diff --git a/.github/workflows/rocjitsu-publish-website.yml b/.github/workflows/rocjitsu-publish-website.yml new file mode 100644 index 000000000000..a2c426881a6d --- /dev/null +++ b/.github/workflows/rocjitsu-publish-website.yml @@ -0,0 +1,66 @@ +# Publish the Rocjitsu dashboard from develop. +# A change under emulation/rocjitsu/website/dashboard/ replaces gh-pages/rocjitsu-dashboard/. + +name: "rocjitsu-publish-website" + +on: + push: + branches: + - develop + paths: + - "emulation/rocjitsu/website/dashboard/**" + - ".github/workflows/rocjitsu-publish-website.yml" + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: rocjitsu-publish-website + cancel-in-progress: false + +jobs: + publish: + name: Publish rocjitsu dashboard + if: github.ref == 'refs/heads/develop' + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - name: Check out repository + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "22.13.0" + cache: npm + cache-dependency-path: emulation/rocjitsu/website/dashboard/package-lock.json + + - name: Verify and build rocjitsu dashboard + working-directory: emulation/rocjitsu/website/dashboard + run: | + npm ci + npm run test:e2e:install + npm run verify + + - name: Generate publishing token + id: app-token + uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 + with: + app-id: ${{ secrets.APP_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + permission-contents: write + + - name: Publish rocjitsu dashboard + uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4.1.0 + with: + # GITHUB_TOKEN pushes do not trigger branch-based Pages builds. + github_token: ${{ steps.app-token.outputs.token }} + publish_branch: gh-pages + publish_dir: ./emulation/rocjitsu/website/dashboard/dist + destination_dir: rocjitsu-dashboard + commit_message: "Publish rocjitsu dashboard" + # Skip the default root .nojekyll file so only rocjitsu-dashboard changes. + enable_jekyll: true diff --git a/.github/workflows/rocjitsu-website-test.yml b/.github/workflows/rocjitsu-website-test.yml index caf6838f871d..e7316ec8a9af 100644 --- a/.github/workflows/rocjitsu-website-test.yml +++ b/.github/workflows/rocjitsu-website-test.yml @@ -3,14 +3,16 @@ name: "rocjitsu-website" on: pull_request: paths: - - "emulation/rocjitsu/website/**" + - "emulation/rocjitsu/website/dashboard/**" - ".github/workflows/rocjitsu-website-test.yml" + - ".github/workflows/rocjitsu-publish-website.yml" push: branches: - develop paths: - - "emulation/rocjitsu/website/**" + - "emulation/rocjitsu/website/dashboard/**" - ".github/workflows/rocjitsu-website-test.yml" + - ".github/workflows/rocjitsu-publish-website.yml" workflow_dispatch: permissions: @@ -27,7 +29,7 @@ jobs: timeout-minutes: 10 defaults: run: - working-directory: emulation/rocjitsu/website + working-directory: emulation/rocjitsu/website/dashboard steps: - name: Check out repository uses: actions/checkout@v4 @@ -37,7 +39,7 @@ jobs: with: node-version: "22.13.0" cache: npm - cache-dependency-path: emulation/rocjitsu/website/package-lock.json + cache-dependency-path: emulation/rocjitsu/website/dashboard/package-lock.json - name: Install dependencies run: npm ci @@ -45,23 +47,8 @@ jobs: - name: Install Playwright browser run: npm run test:e2e:install - - name: Lint - run: npm run lint - - - name: Build - run: npm run build - - - name: Run unit tests - run: npm run test:unit - - - name: Run e2e tests - run: npm run test:e2e - - - name: Smoke test production hosting and caching - run: npm run test:e2e:production - - - name: Run chart race tests - run: npm run test:e2e:chart-race + - name: Verify website + run: npm run verify - name: Upload Playwright diagnostics if: ${{ !cancelled() && failure() }} @@ -69,7 +56,7 @@ jobs: with: name: rocjitsu-website-playwright-results path: | - emulation/rocjitsu/website/test-results - emulation/rocjitsu/website/playwright-report + emulation/rocjitsu/website/dashboard/test-results + emulation/rocjitsu/website/dashboard/playwright-report if-no-files-found: ignore retention-days: 7 diff --git a/emulation/rocjitsu/.gitignore b/emulation/rocjitsu/.gitignore index ed819b205104..186f7b9edbbc 100644 --- a/emulation/rocjitsu/.gitignore +++ b/emulation/rocjitsu/.gitignore @@ -43,14 +43,6 @@ __pycache__ .codex .agents -# Website dependencies and generated artifacts -/website/node_modules/ -/website/dist/ -/website/.test-dist/ -/website/.test-data/ -/website/.vite/ -/website/coverage/ -/website/playwright-report/ -/website/test-results/ +# Local website settings /website/**/*.local /website/**/.DS_Store diff --git a/emulation/rocjitsu/README.md b/emulation/rocjitsu/README.md index b07b6d89e769..4eb779e11f5d 100644 --- a/emulation/rocjitsu/README.md +++ b/emulation/rocjitsu/README.md @@ -55,7 +55,8 @@ configs/ GPU topology JSON files schemas/ FlatBuffers schemas tests/ Test suite docs/ Design documents and guides -website/ React dashboard source and web tests +website/ Public web applications + dashboard/ React dashboard source and web tests ``` ## Building diff --git a/emulation/rocjitsu/website/README.md b/emulation/rocjitsu/website/README.md index 9527f82f0770..229ec9977826 100644 --- a/emulation/rocjitsu/website/README.md +++ b/emulation/rocjitsu/website/README.md @@ -1,60 +1,16 @@ -# Rocjitsu Simulation Performance Dashboard +# Rocjitsu web applications -React + Vite source for the Rocjitsu simulation-performance dashboard, with MUI components and -ECharts visualizations. This directory contains application source, build configuration, -and tests. Production builds fetch benchmark JSON from `rocjitsu-dashboard/data/` on -the `gh-pages-rocjitsu branch` in the `ROCm/rocm-systems` repository. +This directory contains the public web applications for Rocjitsu. -**Live website:** [RocJitsu Performance Dashboard](https://rocm.github.io/rocm-systems/rocjitsu-dashboard/) +| Directory | Purpose | Published path | +| --- | --- | --- | +| [dashboard/](dashboard/README.md) | Simulation-performance dashboard (React + Vite) | `/rocjitsu-dashboard/` | -## Quick start: preview with dummy data +Each application owns its dependencies, build configuration, and tests. See its +README for local development instructions. Canonical technical documentation +lives in [../docs/](../docs/). -Use npm and a Node.js version matching the `engines` field in [package.json](package.json). -From the `rocm-systems` repository root: - -```bash -cd emulation/rocjitsu/website -npm ci -npm run build -- --mode fixtures -npm run preview -- --mode fixtures -``` - -Open http://localhost:4174 to visualize the website with dummy benchmark data. -Press **Ctrl+C** to stop the preview. The fixture build uses `.test-dist/` and the -fixture preview always uses port 4174; the production preview uses port 4173. - -The production build writes application files to `dist/` without dummy data and loads -JSON from the [`gh-pages-rocjitsu` branch](https://raw.githubusercontent.com/ROCm/rocm-systems/refs/heads/gh-pages-rocjitsu/rocjitsu-dashboard/data/). -The data directory must contain `metadata.json`, `index.json`, `test-catalogs/`, and `runs/`. -Before every data publication, validate the complete staged data directory: - -```bash -npm run validate:data -- /absolute/path/to/staged/data -``` - -Do not publish when this command fails. The browser assumes published input is valid -and fails closed instead of displaying partial history when invalid data bypasses the -publication gate. - -See the [build and test guide](docs/build-and-test.md) for local development with -dummy data or a local data directory (`npm run dev:data -- `), -browser setup, verification commands, and the production build. - -## Source layout - -| Path | Purpose | -| --- | --- | -| `index.html`, `src/main.jsx` | Browser entry points | -| `src/components/`, `src/hooks/` | Views, shared components, interaction state | -| `src/data/` | Data loading, validation, selectors, comparison logic | -| `src/theme/`, `src/utils/`, `src/index.css` | Theme, chart/display helpers, styles | -| `package.json`, `package-lock.json` | Commands and reproducible dependency installation | -| `*.config.js` | Vite, ESLint, Vitest, and Playwright configuration | -| `tests/unit/`, `tests/e2e/`, `tests/fixtures/` | Tests, helpers, and dummy fixtures | -| `docs/` | Build, testing, hosting, and data-contract documentation | - -## Further documentation - -- [Website data contract](docs/website-data-contract.md): JSON schema, comparison - rules, and data publication requirements. -- [Test fixtures](tests/fixtures/README.md): focused test cases and generated history. +The [publishing workflow](../../../.github/workflows/rocjitsu-publish-website.yml) +publishes the dashboard from `develop` to `gh-pages/rocjitsu-dashboard/`. Moving +the source directory does not change that public URL or the benchmark-data +location on `gh-pages-rocjitsu`. diff --git a/emulation/rocjitsu/website/dashboard/.gitignore b/emulation/rocjitsu/website/dashboard/.gitignore new file mode 100644 index 000000000000..1761bc08632f --- /dev/null +++ b/emulation/rocjitsu/website/dashboard/.gitignore @@ -0,0 +1,8 @@ +/node_modules/ +/dist/ +/.test-dist/ +/.test-data/ +/.vite/ +/coverage/ +/test-results/ +/playwright-report/ diff --git a/emulation/rocjitsu/website/dashboard/README.md b/emulation/rocjitsu/website/dashboard/README.md new file mode 100644 index 000000000000..5d4607d8b93f --- /dev/null +++ b/emulation/rocjitsu/website/dashboard/README.md @@ -0,0 +1,60 @@ +# Rocjitsu Simulation Performance Dashboard + +React + Vite source for the Rocjitsu simulation-performance dashboard, with MUI components and +ECharts visualizations. This directory contains application source, build configuration, +and tests. Production builds fetch benchmark JSON from `rocjitsu-dashboard/data/` on +the `gh-pages-rocjitsu branch` in the `ROCm/rocm-systems` repository. + +**Live website:** [RocJitsu Performance Dashboard](https://rocm.github.io/rocm-systems/rocjitsu-dashboard/) + +## Quick start: preview with dummy data + +Use npm and a Node.js version matching the `engines` field in [package.json](package.json). +From the `rocm-systems` repository root: + +```bash +cd emulation/rocjitsu/website/dashboard +npm ci +npm run build -- --mode fixtures +npm run preview -- --mode fixtures +``` + +Open http://localhost:4174 to visualize the website with dummy benchmark data. +Press **Ctrl+C** to stop the preview. The fixture build uses `.test-dist/` and the +fixture preview always uses port 4174; the production preview uses port 4173. + +The production build writes application files to `dist/` without dummy data and loads +JSON from the [`gh-pages-rocjitsu` branch](https://raw.githubusercontent.com/ROCm/rocm-systems/refs/heads/gh-pages-rocjitsu/rocjitsu-dashboard/data/). +The data directory must contain `metadata.json`, `index.json`, `test-catalogs/`, and `runs/`. +Before every data publication, validate the complete staged data directory: + +```bash +npm run validate:data -- /absolute/path/to/staged/data +``` + +Do not publish when this command fails. The browser assumes published input is valid +and fails closed instead of displaying partial history when invalid data bypasses the +publication gate. + +See the [build and test guide](docs/build-and-test.md) for local development with +dummy data or a local data directory (`npm run dev:data -- `), +browser setup, verification commands, and the production build. + +## Source layout + +| Path | Purpose | +| --- | --- | +| `index.html`, `src/main.jsx` | Browser entry points | +| `src/components/`, `src/hooks/` | Views, shared components, interaction state | +| `src/data/` | Data loading, validation, selectors, comparison logic | +| `src/theme/`, `src/utils/`, `src/index.css` | Theme, chart/display helpers, styles | +| `package.json`, `package-lock.json` | Commands and reproducible dependency installation | +| `*.config.js` | Vite, ESLint, Vitest, and Playwright configuration | +| `tests/unit/`, `tests/e2e/`, `tests/fixtures/` | Tests, helpers, and dummy fixtures | +| `docs/` | Build, testing, hosting, and data-contract documentation | + +## Further documentation + +- [Website data contract](docs/website-data-contract.md): JSON schema, comparison + rules, and data publication requirements. +- [Test fixtures](tests/fixtures/README.md): focused test cases and generated history. diff --git a/emulation/rocjitsu/website/docs/build-and-test.md b/emulation/rocjitsu/website/dashboard/docs/build-and-test.md similarity index 84% rename from emulation/rocjitsu/website/docs/build-and-test.md rename to emulation/rocjitsu/website/dashboard/docs/build-and-test.md index 14263c0011dd..29e0f0a117a0 100644 --- a/emulation/rocjitsu/website/docs/build-and-test.md +++ b/emulation/rocjitsu/website/dashboard/docs/build-and-test.md @@ -1,6 +1,6 @@ # Website build and test -The Rocjitsu simulation-performance dashboard lives in `emulation/rocjitsu/website`. It is a standalone +The Rocjitsu simulation-performance dashboard lives in `emulation/rocjitsu/website/dashboard`. It is a standalone React + Vite source package. Real benchmark data belongs on the `gh-pages-rocjitsu` branch under `rocjitsu-dashboard/data/`; dummy data is retained only as test fixtures. @@ -9,7 +9,7 @@ installation, GPU, or benchmark service. ## Prerequisites -- Node.js matching `website/package.json`: `^20.19.0 || ^22.13.0 || >=24.0.0`. +- Node.js matching `website/dashboard/package.json`: `^20.19.0 || ^22.13.0 || >=24.0.0`. - npm and network access to install the locked dependencies. - Chromium and its system libraries for Playwright browser tests. The install command below downloads Chromium and may need administrator privileges to @@ -20,7 +20,7 @@ installation, GPU, or benchmark service. Run from the `rocm-systems` repository root: ```bash -cd emulation/rocjitsu/website +cd emulation/rocjitsu/website/dashboard node --version npm --version npm ci @@ -29,13 +29,14 @@ npm run verify ``` `npm run verify` runs ESLint, a production build, Vitest unit tests, Playwright -desktop and mobile browser tests, and the chart interaction race test ten times -sequentially. A successful run exits with status 0. Playwright builds the current +desktop and mobile browser tests, the chart interaction race test ten times +sequentially, and the production-hosting smoke test. A successful run exits with +status 0. Playwright builds the current source with dummy fixtures into `.test-dist/`, starts its own preview server at `http://127.0.0.1:4174`, and stops it when done. Keep port 4174 free. Browser tests leave the data-free production build in `dist/` untouched. -`npm run test:e2e:production` separately rebuilds and previews the production +`npm run test:e2e:production` (also included in `verify`) rebuilds and previews the production artifact on port 4175, loads the published GitHub Raw dataset, and verifies real browser-cache reuse without request interception. CI runs this live production smoke test after the fixture suite; it requires network access and valid @@ -44,7 +45,7 @@ published data. If port 4174 is occupied, select a free port without stopping other servers: `PLAYWRIGHT_PORT=4176 npm run verify` (or use the same variable with `npm run test:e2e`). -Individual commands, all run from `website/`: +Individual commands, all run from `website/dashboard/`: | Command | Purpose | | --- | --- | @@ -58,7 +59,7 @@ Individual commands, all run from `website/`: | `npm run test:e2e:production` | Smoke test the production build, GitHub Raw hosting, and browser caching | | `npm run test:e2e:chart-race` | Run the chart interaction race test ten times sequentially | | `npm test` | Run the unit tests, the browser suites, and the ten-repeat chart race test | -| `npm run verify` | Run lint, build, and everything in `npm test` | +| `npm run verify` | Run lint, build, everything in `npm test`, and the production-hosting smoke test | Run the two browser commands one at a time. Both rebuild the shared `.test-dist/` fixture output before starting their server, so a concurrent run deletes files the other @@ -73,7 +74,7 @@ after updating Playwright if its required browser version changes. ## Run locally ```bash -# From emulation/rocjitsu/website: +# From emulation/rocjitsu/website/dashboard: npm run dev:fixtures -- --host 127.0.0.1 npm run dev:data -- /absolute/path/to/staged/data --host 127.0.0.1 ``` @@ -121,9 +122,12 @@ validated JSON independently under that directory. It contains `metadata.json`, `index.json`, `test-catalogs/`, and `runs/`; a data-only update does not require rebuilding the application. -This source package does not provide a deployment workflow. The hosting owner -chooses how to publish the contents of `dist/` through its existing release -process. +The [rocjitsu-publish-website workflow](../../../../../.github/workflows/rocjitsu-publish-website.yml) +verifies the dashboard and publishes `dist/` from `develop` to +`gh-pages/rocjitsu-dashboard/`. It runs the same `npm run verify` suite as website +CI (lint, build, unit, browser, chart-race, and production-hosting tests) before +creating a publishing token. Benchmark data remains independently published on +`gh-pages-rocjitsu`. ```bash npm run validate:data -- /absolute/path/to/staged/data @@ -144,5 +148,5 @@ npm run preview -- --host 127.0.0.1 Dependencies, generated fixture data, production/test build output, coverage, and Playwright reports/results are ignored by Git. Keep the source, lockfile, tests, and test fixtures under version -control. Parent-repository automation should use `emulation/rocjitsu/website` as its +control. Parent-repository automation should use `emulation/rocjitsu/website/dashboard` as its working directory and its `package-lock.json` as the npm cache key. diff --git a/emulation/rocjitsu/website/docs/website-data-contract.md b/emulation/rocjitsu/website/dashboard/docs/website-data-contract.md similarity index 100% rename from emulation/rocjitsu/website/docs/website-data-contract.md rename to emulation/rocjitsu/website/dashboard/docs/website-data-contract.md diff --git a/emulation/rocjitsu/website/eslint.config.js b/emulation/rocjitsu/website/dashboard/eslint.config.js similarity index 100% rename from emulation/rocjitsu/website/eslint.config.js rename to emulation/rocjitsu/website/dashboard/eslint.config.js diff --git a/emulation/rocjitsu/website/index.html b/emulation/rocjitsu/website/dashboard/index.html similarity index 100% rename from emulation/rocjitsu/website/index.html rename to emulation/rocjitsu/website/dashboard/index.html diff --git a/emulation/rocjitsu/website/package-lock.json b/emulation/rocjitsu/website/dashboard/package-lock.json similarity index 100% rename from emulation/rocjitsu/website/package-lock.json rename to emulation/rocjitsu/website/dashboard/package-lock.json diff --git a/emulation/rocjitsu/website/package.json b/emulation/rocjitsu/website/dashboard/package.json similarity index 94% rename from emulation/rocjitsu/website/package.json rename to emulation/rocjitsu/website/dashboard/package.json index 877b01b5c41f..3a88927144bd 100644 --- a/emulation/rocjitsu/website/package.json +++ b/emulation/rocjitsu/website/dashboard/package.json @@ -21,7 +21,7 @@ "test:e2e:production": "playwright test --config=playwright.production.config.js", "test:e2e:chart-race": "playwright test --project=desktop tests/e2e/benchmarks.e2e.js --grep \"benchmark explorer switches among single, grid, and aggregate modes\" --repeat-each=10 --workers=1", "test": "npm run test:unit && npm run test:e2e && npm run test:e2e:chart-race", - "verify": "npm run lint && npm run build && npm test" + "verify": "npm run lint && npm run build && npm test && npm run test:e2e:production" }, "dependencies": { "@emotion/react": "^11.14.0", diff --git a/emulation/rocjitsu/website/playwright.config.js b/emulation/rocjitsu/website/dashboard/playwright.config.js similarity index 100% rename from emulation/rocjitsu/website/playwright.config.js rename to emulation/rocjitsu/website/dashboard/playwright.config.js diff --git a/emulation/rocjitsu/website/playwright.production.config.js b/emulation/rocjitsu/website/dashboard/playwright.production.config.js similarity index 100% rename from emulation/rocjitsu/website/playwright.production.config.js rename to emulation/rocjitsu/website/dashboard/playwright.production.config.js diff --git a/emulation/rocjitsu/website/scripts/dashboard-data-dir.mjs b/emulation/rocjitsu/website/dashboard/scripts/dashboard-data-dir.mjs similarity index 100% rename from emulation/rocjitsu/website/scripts/dashboard-data-dir.mjs rename to emulation/rocjitsu/website/dashboard/scripts/dashboard-data-dir.mjs diff --git a/emulation/rocjitsu/website/scripts/dashboard-data-source.mjs b/emulation/rocjitsu/website/dashboard/scripts/dashboard-data-source.mjs similarity index 100% rename from emulation/rocjitsu/website/scripts/dashboard-data-source.mjs rename to emulation/rocjitsu/website/dashboard/scripts/dashboard-data-source.mjs diff --git a/emulation/rocjitsu/website/scripts/dev-with-data.mjs b/emulation/rocjitsu/website/dashboard/scripts/dev-with-data.mjs similarity index 100% rename from emulation/rocjitsu/website/scripts/dev-with-data.mjs rename to emulation/rocjitsu/website/dashboard/scripts/dev-with-data.mjs diff --git a/emulation/rocjitsu/website/scripts/validate-dashboard-data.mjs b/emulation/rocjitsu/website/dashboard/scripts/validate-dashboard-data.mjs similarity index 100% rename from emulation/rocjitsu/website/scripts/validate-dashboard-data.mjs rename to emulation/rocjitsu/website/dashboard/scripts/validate-dashboard-data.mjs diff --git a/emulation/rocjitsu/website/src/App.jsx b/emulation/rocjitsu/website/dashboard/src/App.jsx similarity index 100% rename from emulation/rocjitsu/website/src/App.jsx rename to emulation/rocjitsu/website/dashboard/src/App.jsx diff --git a/emulation/rocjitsu/website/src/components/benchmarks/AggregatePerformanceChart.jsx b/emulation/rocjitsu/website/dashboard/src/components/benchmarks/AggregatePerformanceChart.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/benchmarks/AggregatePerformanceChart.jsx rename to emulation/rocjitsu/website/dashboard/src/components/benchmarks/AggregatePerformanceChart.jsx diff --git a/emulation/rocjitsu/website/src/components/benchmarks/BenchmarkHistoryChart.jsx b/emulation/rocjitsu/website/dashboard/src/components/benchmarks/BenchmarkHistoryChart.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/benchmarks/BenchmarkHistoryChart.jsx rename to emulation/rocjitsu/website/dashboard/src/components/benchmarks/BenchmarkHistoryChart.jsx diff --git a/emulation/rocjitsu/website/src/components/benchmarks/BenchmarkPicker.jsx b/emulation/rocjitsu/website/dashboard/src/components/benchmarks/BenchmarkPicker.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/benchmarks/BenchmarkPicker.jsx rename to emulation/rocjitsu/website/dashboard/src/components/benchmarks/BenchmarkPicker.jsx diff --git a/emulation/rocjitsu/website/src/components/benchmarks/BenchmarkResultDialog.jsx b/emulation/rocjitsu/website/dashboard/src/components/benchmarks/BenchmarkResultDialog.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/benchmarks/BenchmarkResultDialog.jsx rename to emulation/rocjitsu/website/dashboard/src/components/benchmarks/BenchmarkResultDialog.jsx diff --git a/emulation/rocjitsu/website/src/components/benchmarks/ChartPointSelector.jsx b/emulation/rocjitsu/website/dashboard/src/components/benchmarks/ChartPointSelector.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/benchmarks/ChartPointSelector.jsx rename to emulation/rocjitsu/website/dashboard/src/components/benchmarks/ChartPointSelector.jsx diff --git a/emulation/rocjitsu/website/src/components/benchmarks/HistoricalRecords.jsx b/emulation/rocjitsu/website/dashboard/src/components/benchmarks/HistoricalRecords.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/benchmarks/HistoricalRecords.jsx rename to emulation/rocjitsu/website/dashboard/src/components/benchmarks/HistoricalRecords.jsx diff --git a/emulation/rocjitsu/website/src/components/benchmarks/RunDetailsDialog.jsx b/emulation/rocjitsu/website/dashboard/src/components/benchmarks/RunDetailsDialog.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/benchmarks/RunDetailsDialog.jsx rename to emulation/rocjitsu/website/dashboard/src/components/benchmarks/RunDetailsDialog.jsx diff --git a/emulation/rocjitsu/website/src/components/compare/RunSelector.jsx b/emulation/rocjitsu/website/dashboard/src/components/compare/RunSelector.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/compare/RunSelector.jsx rename to emulation/rocjitsu/website/dashboard/src/components/compare/RunSelector.jsx diff --git a/emulation/rocjitsu/website/src/components/failures/RunReliability.jsx b/emulation/rocjitsu/website/dashboard/src/components/failures/RunReliability.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/failures/RunReliability.jsx rename to emulation/rocjitsu/website/dashboard/src/components/failures/RunReliability.jsx diff --git a/emulation/rocjitsu/website/src/components/layout/DashboardHeader.jsx b/emulation/rocjitsu/website/dashboard/src/components/layout/DashboardHeader.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/layout/DashboardHeader.jsx rename to emulation/rocjitsu/website/dashboard/src/components/layout/DashboardHeader.jsx diff --git a/emulation/rocjitsu/website/src/components/layout/FiltersBar.jsx b/emulation/rocjitsu/website/dashboard/src/components/layout/FiltersBar.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/layout/FiltersBar.jsx rename to emulation/rocjitsu/website/dashboard/src/components/layout/FiltersBar.jsx diff --git a/emulation/rocjitsu/website/src/components/overview/DurationHistory.jsx b/emulation/rocjitsu/website/dashboard/src/components/overview/DurationHistory.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/overview/DurationHistory.jsx rename to emulation/rocjitsu/website/dashboard/src/components/overview/DurationHistory.jsx diff --git a/emulation/rocjitsu/website/src/components/overview/LargestChanges.jsx b/emulation/rocjitsu/website/dashboard/src/components/overview/LargestChanges.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/overview/LargestChanges.jsx rename to emulation/rocjitsu/website/dashboard/src/components/overview/LargestChanges.jsx diff --git a/emulation/rocjitsu/website/src/components/overview/MetricsGrid.jsx b/emulation/rocjitsu/website/dashboard/src/components/overview/MetricsGrid.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/overview/MetricsGrid.jsx rename to emulation/rocjitsu/website/dashboard/src/components/overview/MetricsGrid.jsx diff --git a/emulation/rocjitsu/website/src/components/overview/OverviewView.jsx b/emulation/rocjitsu/website/dashboard/src/components/overview/OverviewView.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/overview/OverviewView.jsx rename to emulation/rocjitsu/website/dashboard/src/components/overview/OverviewView.jsx diff --git a/emulation/rocjitsu/website/src/components/overview/RecentRuns.jsx b/emulation/rocjitsu/website/dashboard/src/components/overview/RecentRuns.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/overview/RecentRuns.jsx rename to emulation/rocjitsu/website/dashboard/src/components/overview/RecentRuns.jsx diff --git a/emulation/rocjitsu/website/src/components/overview/ResultsTable.jsx b/emulation/rocjitsu/website/dashboard/src/components/overview/ResultsTable.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/overview/ResultsTable.jsx rename to emulation/rocjitsu/website/dashboard/src/components/overview/ResultsTable.jsx diff --git a/emulation/rocjitsu/website/src/components/shared/Chart.jsx b/emulation/rocjitsu/website/dashboard/src/components/shared/Chart.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/shared/Chart.jsx rename to emulation/rocjitsu/website/dashboard/src/components/shared/Chart.jsx diff --git a/emulation/rocjitsu/website/src/components/shared/CommitComparison.jsx b/emulation/rocjitsu/website/dashboard/src/components/shared/CommitComparison.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/shared/CommitComparison.jsx rename to emulation/rocjitsu/website/dashboard/src/components/shared/CommitComparison.jsx diff --git a/emulation/rocjitsu/website/src/components/shared/DetailItem.jsx b/emulation/rocjitsu/website/dashboard/src/components/shared/DetailItem.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/shared/DetailItem.jsx rename to emulation/rocjitsu/website/dashboard/src/components/shared/DetailItem.jsx diff --git a/emulation/rocjitsu/website/src/components/shared/DetailLayout.jsx b/emulation/rocjitsu/website/dashboard/src/components/shared/DetailLayout.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/shared/DetailLayout.jsx rename to emulation/rocjitsu/website/dashboard/src/components/shared/DetailLayout.jsx diff --git a/emulation/rocjitsu/website/src/components/shared/SectionCard.jsx b/emulation/rocjitsu/website/dashboard/src/components/shared/SectionCard.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/shared/SectionCard.jsx rename to emulation/rocjitsu/website/dashboard/src/components/shared/SectionCard.jsx diff --git a/emulation/rocjitsu/website/src/components/shared/StatusChip.jsx b/emulation/rocjitsu/website/dashboard/src/components/shared/StatusChip.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/shared/StatusChip.jsx rename to emulation/rocjitsu/website/dashboard/src/components/shared/StatusChip.jsx diff --git a/emulation/rocjitsu/website/src/components/views/BenchmarksView.jsx b/emulation/rocjitsu/website/dashboard/src/components/views/BenchmarksView.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/views/BenchmarksView.jsx rename to emulation/rocjitsu/website/dashboard/src/components/views/BenchmarksView.jsx diff --git a/emulation/rocjitsu/website/src/components/views/CompareRunsView.jsx b/emulation/rocjitsu/website/dashboard/src/components/views/CompareRunsView.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/views/CompareRunsView.jsx rename to emulation/rocjitsu/website/dashboard/src/components/views/CompareRunsView.jsx diff --git a/emulation/rocjitsu/website/src/components/views/FailuresView.jsx b/emulation/rocjitsu/website/dashboard/src/components/views/FailuresView.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/views/FailuresView.jsx rename to emulation/rocjitsu/website/dashboard/src/components/views/FailuresView.jsx diff --git a/emulation/rocjitsu/website/src/components/views/PluginComparisonView.jsx b/emulation/rocjitsu/website/dashboard/src/components/views/PluginComparisonView.jsx similarity index 100% rename from emulation/rocjitsu/website/src/components/views/PluginComparisonView.jsx rename to emulation/rocjitsu/website/dashboard/src/components/views/PluginComparisonView.jsx diff --git a/emulation/rocjitsu/website/src/data/dashboardData.js b/emulation/rocjitsu/website/dashboard/src/data/dashboardData.js similarity index 100% rename from emulation/rocjitsu/website/src/data/dashboardData.js rename to emulation/rocjitsu/website/dashboard/src/data/dashboardData.js diff --git a/emulation/rocjitsu/website/src/data/dashboardDataError.js b/emulation/rocjitsu/website/dashboard/src/data/dashboardDataError.js similarity index 100% rename from emulation/rocjitsu/website/src/data/dashboardDataError.js rename to emulation/rocjitsu/website/dashboard/src/data/dashboardDataError.js diff --git a/emulation/rocjitsu/website/src/data/dashboardValidation.js b/emulation/rocjitsu/website/dashboard/src/data/dashboardValidation.js similarity index 100% rename from emulation/rocjitsu/website/src/data/dashboardValidation.js rename to emulation/rocjitsu/website/dashboard/src/data/dashboardValidation.js diff --git a/emulation/rocjitsu/website/src/data/pluginComparison.js b/emulation/rocjitsu/website/dashboard/src/data/pluginComparison.js similarity index 100% rename from emulation/rocjitsu/website/src/data/pluginComparison.js rename to emulation/rocjitsu/website/dashboard/src/data/pluginComparison.js diff --git a/emulation/rocjitsu/website/src/data/problemDetails.js b/emulation/rocjitsu/website/dashboard/src/data/problemDetails.js similarity index 100% rename from emulation/rocjitsu/website/src/data/problemDetails.js rename to emulation/rocjitsu/website/dashboard/src/data/problemDetails.js diff --git a/emulation/rocjitsu/website/src/data/provenance.js b/emulation/rocjitsu/website/dashboard/src/data/provenance.js similarity index 100% rename from emulation/rocjitsu/website/src/data/provenance.js rename to emulation/rocjitsu/website/dashboard/src/data/provenance.js diff --git a/emulation/rocjitsu/website/src/data/publishedDataUrls.js b/emulation/rocjitsu/website/dashboard/src/data/publishedDataUrls.js similarity index 100% rename from emulation/rocjitsu/website/src/data/publishedDataUrls.js rename to emulation/rocjitsu/website/dashboard/src/data/publishedDataUrls.js diff --git a/emulation/rocjitsu/website/src/data/runOrdering.js b/emulation/rocjitsu/website/dashboard/src/data/runOrdering.js similarity index 100% rename from emulation/rocjitsu/website/src/data/runOrdering.js rename to emulation/rocjitsu/website/dashboard/src/data/runOrdering.js diff --git a/emulation/rocjitsu/website/src/data/selectors.js b/emulation/rocjitsu/website/dashboard/src/data/selectors.js similarity index 100% rename from emulation/rocjitsu/website/src/data/selectors.js rename to emulation/rocjitsu/website/dashboard/src/data/selectors.js diff --git a/emulation/rocjitsu/website/src/hooks/useDashboardState.js b/emulation/rocjitsu/website/dashboard/src/hooks/useDashboardState.js similarity index 100% rename from emulation/rocjitsu/website/src/hooks/useDashboardState.js rename to emulation/rocjitsu/website/dashboard/src/hooks/useDashboardState.js diff --git a/emulation/rocjitsu/website/src/index.css b/emulation/rocjitsu/website/dashboard/src/index.css similarity index 100% rename from emulation/rocjitsu/website/src/index.css rename to emulation/rocjitsu/website/dashboard/src/index.css diff --git a/emulation/rocjitsu/website/src/main.jsx b/emulation/rocjitsu/website/dashboard/src/main.jsx similarity index 100% rename from emulation/rocjitsu/website/src/main.jsx rename to emulation/rocjitsu/website/dashboard/src/main.jsx diff --git a/emulation/rocjitsu/website/src/theme/styles.js b/emulation/rocjitsu/website/dashboard/src/theme/styles.js similarity index 100% rename from emulation/rocjitsu/website/src/theme/styles.js rename to emulation/rocjitsu/website/dashboard/src/theme/styles.js diff --git a/emulation/rocjitsu/website/src/theme/theme.js b/emulation/rocjitsu/website/dashboard/src/theme/theme.js similarity index 100% rename from emulation/rocjitsu/website/src/theme/theme.js rename to emulation/rocjitsu/website/dashboard/src/theme/theme.js diff --git a/emulation/rocjitsu/website/src/utils/chartColors.js b/emulation/rocjitsu/website/dashboard/src/utils/chartColors.js similarity index 100% rename from emulation/rocjitsu/website/src/utils/chartColors.js rename to emulation/rocjitsu/website/dashboard/src/utils/chartColors.js diff --git a/emulation/rocjitsu/website/src/utils/chartGaps.js b/emulation/rocjitsu/website/dashboard/src/utils/chartGaps.js similarity index 100% rename from emulation/rocjitsu/website/src/utils/chartGaps.js rename to emulation/rocjitsu/website/dashboard/src/utils/chartGaps.js diff --git a/emulation/rocjitsu/website/src/utils/chartStyles.js b/emulation/rocjitsu/website/dashboard/src/utils/chartStyles.js similarity index 100% rename from emulation/rocjitsu/website/src/utils/chartStyles.js rename to emulation/rocjitsu/website/dashboard/src/utils/chartStyles.js diff --git a/emulation/rocjitsu/website/src/utils/chartZoom.js b/emulation/rocjitsu/website/dashboard/src/utils/chartZoom.js similarity index 100% rename from emulation/rocjitsu/website/src/utils/chartZoom.js rename to emulation/rocjitsu/website/dashboard/src/utils/chartZoom.js diff --git a/emulation/rocjitsu/website/src/utils/durationAxis.js b/emulation/rocjitsu/website/dashboard/src/utils/durationAxis.js similarity index 100% rename from emulation/rocjitsu/website/src/utils/durationAxis.js rename to emulation/rocjitsu/website/dashboard/src/utils/durationAxis.js diff --git a/emulation/rocjitsu/website/src/utils/formatters.js b/emulation/rocjitsu/website/dashboard/src/utils/formatters.js similarity index 100% rename from emulation/rocjitsu/website/src/utils/formatters.js rename to emulation/rocjitsu/website/dashboard/src/utils/formatters.js diff --git a/emulation/rocjitsu/website/src/utils/performance.js b/emulation/rocjitsu/website/dashboard/src/utils/performance.js similarity index 100% rename from emulation/rocjitsu/website/src/utils/performance.js rename to emulation/rocjitsu/website/dashboard/src/utils/performance.js diff --git a/emulation/rocjitsu/website/src/utils/values.js b/emulation/rocjitsu/website/dashboard/src/utils/values.js similarity index 100% rename from emulation/rocjitsu/website/src/utils/values.js rename to emulation/rocjitsu/website/dashboard/src/utils/values.js diff --git a/emulation/rocjitsu/website/tests/e2e/benchmarks.e2e.js b/emulation/rocjitsu/website/dashboard/tests/e2e/benchmarks.e2e.js similarity index 100% rename from emulation/rocjitsu/website/tests/e2e/benchmarks.e2e.js rename to emulation/rocjitsu/website/dashboard/tests/e2e/benchmarks.e2e.js diff --git a/emulation/rocjitsu/website/tests/e2e/comparisons.e2e.js b/emulation/rocjitsu/website/dashboard/tests/e2e/comparisons.e2e.js similarity index 100% rename from emulation/rocjitsu/website/tests/e2e/comparisons.e2e.js rename to emulation/rocjitsu/website/dashboard/tests/e2e/comparisons.e2e.js diff --git a/emulation/rocjitsu/website/tests/e2e/failures.e2e.js b/emulation/rocjitsu/website/dashboard/tests/e2e/failures.e2e.js similarity index 100% rename from emulation/rocjitsu/website/tests/e2e/failures.e2e.js rename to emulation/rocjitsu/website/dashboard/tests/e2e/failures.e2e.js diff --git a/emulation/rocjitsu/website/tests/e2e/helpers/chart.js b/emulation/rocjitsu/website/dashboard/tests/e2e/helpers/chart.js similarity index 100% rename from emulation/rocjitsu/website/tests/e2e/helpers/chart.js rename to emulation/rocjitsu/website/dashboard/tests/e2e/helpers/chart.js diff --git a/emulation/rocjitsu/website/tests/e2e/helpers/dialog.js b/emulation/rocjitsu/website/dashboard/tests/e2e/helpers/dialog.js similarity index 100% rename from emulation/rocjitsu/website/tests/e2e/helpers/dialog.js rename to emulation/rocjitsu/website/dashboard/tests/e2e/helpers/dialog.js diff --git a/emulation/rocjitsu/website/tests/e2e/loading.e2e.js b/emulation/rocjitsu/website/dashboard/tests/e2e/loading.e2e.js similarity index 100% rename from emulation/rocjitsu/website/tests/e2e/loading.e2e.js rename to emulation/rocjitsu/website/dashboard/tests/e2e/loading.e2e.js diff --git a/emulation/rocjitsu/website/tests/e2e/mobile.e2e.js b/emulation/rocjitsu/website/dashboard/tests/e2e/mobile.e2e.js similarity index 100% rename from emulation/rocjitsu/website/tests/e2e/mobile.e2e.js rename to emulation/rocjitsu/website/dashboard/tests/e2e/mobile.e2e.js diff --git a/emulation/rocjitsu/website/tests/e2e/overview.e2e.js b/emulation/rocjitsu/website/dashboard/tests/e2e/overview.e2e.js similarity index 100% rename from emulation/rocjitsu/website/tests/e2e/overview.e2e.js rename to emulation/rocjitsu/website/dashboard/tests/e2e/overview.e2e.js diff --git a/emulation/rocjitsu/website/tests/fixtures/README.md b/emulation/rocjitsu/website/dashboard/tests/fixtures/README.md similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/README.md rename to emulation/rocjitsu/website/dashboard/tests/fixtures/README.md diff --git a/emulation/rocjitsu/website/tests/fixtures/data/index.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/index.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/index.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/index.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/metadata.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/metadata.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/metadata.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/metadata.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606010530-86b362ea.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606010530-86b362ea.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606010530-86b362ea.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606010530-86b362ea.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606020530-187a7544.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606020530-187a7544.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606020530-187a7544.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606020530-187a7544.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606140530-6fb48d1c.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606140530-6fb48d1c.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606140530-6fb48d1c.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606140530-6fb48d1c.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606150530-43f35f88.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606150530-43f35f88.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606150530-43f35f88.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606150530-43f35f88.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606160530-dac48bd5.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606160530-dac48bd5.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606160530-dac48bd5.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606160530-dac48bd5.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606170530-968f242c.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606170530-968f242c.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606170530-968f242c.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606170530-968f242c.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606180530-ff16d949.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606180530-ff16d949.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606180530-ff16d949.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606180530-ff16d949.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606190530-66b63aa1.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606190530-66b63aa1.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606190530-66b63aa1.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606190530-66b63aa1.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606200530-bf5a4b49.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606200530-bf5a4b49.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606200530-bf5a4b49.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606200530-bf5a4b49.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606210530-ad8f25c6.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606210530-ad8f25c6.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606210530-ad8f25c6.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606210530-ad8f25c6.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606220530-4be8e6da.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606220530-4be8e6da.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606220530-4be8e6da.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606220530-4be8e6da.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606230530-163b6c23.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606230530-163b6c23.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606230530-163b6c23.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606230530-163b6c23.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606240530-851ac25e.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606240530-851ac25e.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606240530-851ac25e.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606240530-851ac25e.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606250530-8c54b2c0.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606250530-8c54b2c0.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606250530-8c54b2c0.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606250530-8c54b2c0.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606260530-5ddf25ed.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606260530-5ddf25ed.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606260530-5ddf25ed.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606260530-5ddf25ed.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606270530-46c26daf.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606270530-46c26daf.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606270530-46c26daf.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606270530-46c26daf.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606280530-aef13790.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606280530-aef13790.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606280530-aef13790.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606280530-aef13790.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606290530-de3d5289.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606290530-de3d5289.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606290530-de3d5289.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606290530-de3d5289.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606300530-fb70f1ea.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606300530-fb70f1ea.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202606300530-fb70f1ea.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202606300530-fb70f1ea.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607010530-a841295b.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607010530-a841295b.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607010530-a841295b.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607010530-a841295b.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607020530-598cf7d9.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607020530-598cf7d9.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607020530-598cf7d9.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607020530-598cf7d9.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607030530-bd535aa7.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607030530-bd535aa7.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607030530-bd535aa7.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607030530-bd535aa7.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607040530-350aca20.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607040530-350aca20.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607040530-350aca20.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607040530-350aca20.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607050530-162d2d6e.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607050530-162d2d6e.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607050530-162d2d6e.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607050530-162d2d6e.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607060530-ea8723a9.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607060530-ea8723a9.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607060530-ea8723a9.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607060530-ea8723a9.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607070530-2e24042a.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607070530-2e24042a.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607070530-2e24042a.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607070530-2e24042a.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607080530-1b0e137f.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607080530-1b0e137f.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607080530-1b0e137f.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607080530-1b0e137f.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607250530-8e0c5183-asan.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607250530-8e0c5183-asan.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607250530-8e0c5183-asan.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607250530-8e0c5183-asan.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607250530-8e0c5183.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607250530-8e0c5183.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202607250530-8e0c5183.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202607250530-8e0c5183.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608020530-68c7dece.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608020530-68c7dece.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608020530-68c7dece.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608020530-68c7dece.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608130530-784750dd.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608130530-784750dd.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608130530-784750dd.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608130530-784750dd.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608140530-f25f5a48.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608140530-f25f5a48.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608140530-f25f5a48.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608140530-f25f5a48.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608150530-8418072e.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608150530-8418072e.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608150530-8418072e.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608150530-8418072e.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608260530-daaf4bae.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608260530-daaf4bae.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608260530-daaf4bae.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608260530-daaf4bae.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608270530-0db03af1.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608270530-0db03af1.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608270530-0db03af1.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608270530-0db03af1.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608280530-87c0b32c.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608280530-87c0b32c.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608280530-87c0b32c.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608280530-87c0b32c.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608290530-19872076.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608290530-19872076.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608290530-19872076.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608290530-19872076.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608300530-9398bd3f.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608300530-9398bd3f.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608300530-9398bd3f.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608300530-9398bd3f.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608310530-255eabe3.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608310530-255eabe3.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608310530-255eabe3.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608310530-255eabe3.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608311310-9f774d29.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608311310-9f774d29.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608311310-9f774d29.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608311310-9f774d29.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608311945-31369c4d-asan.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608311945-31369c4d-asan.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608311945-31369c4d-asan.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608311945-31369c4d-asan.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608311945-31369c4d-tsan.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608311945-31369c4d-tsan.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608311945-31369c4d-tsan.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608311945-31369c4d-tsan.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608311945-31369c4d-ubsan.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608311945-31369c4d-ubsan.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608311945-31369c4d-ubsan.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608311945-31369c4d-ubsan.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608311945-31369c4d.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608311945-31369c4d.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202608311945-31369c4d.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202608311945-31369c4d.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202609010115-8418072e-manual.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202609010115-8418072e-manual.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/benchmark-202609010115-8418072e-manual.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/benchmark-202609010115-8418072e-manual.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-commit-20260826T103000000Z.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-commit-20260826T103000000Z.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-commit-20260826T103000000Z.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-commit-20260826T103000000Z.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-commit-20260826T153000000Z.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-commit-20260826T153000000Z.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-commit-20260826T153000000Z.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-commit-20260826T153000000Z.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-commit-20260830T153000000Z.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-commit-20260830T153000000Z.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-commit-20260830T153000000Z.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-commit-20260830T153000000Z.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-17.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-17.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-17.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-17.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-18.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-18.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-18.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-18.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-19.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-19.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-19.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-19.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-20.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-20.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-20.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-20.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-21.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-21.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-21.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-21.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-22.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-22.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-22.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-22.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-23.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-23.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-23.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-23.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-24.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-24.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-24.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-24.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-26.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-26.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-26.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-26.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-27.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-27.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-27.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-27.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-28.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-28.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-28.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-28.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-29.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-29.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-29.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-29.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-30.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-30.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-30.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-30.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-31.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-31.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-07-31.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-07-31.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-01.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-01.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-01.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-01.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-03.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-03.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-03.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-03.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-04.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-04.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-04.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-04.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-05.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-05.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-05.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-05.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-06.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-06.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-06.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-06.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-07.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-07.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-07.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-07.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-08.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-08.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-08.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-08.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-09.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-09.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-09.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-09.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-10.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-10.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-10.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-10.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-11.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-11.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-11.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-11.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-12.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-12.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-12.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-12.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-16.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-16.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-16.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-16.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-17.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-17.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-17.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-17.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-18.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-18.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-18.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-18.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-19.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-19.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-19.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-19.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-20.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-20.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-20.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-20.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-21.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-21.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-21.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-21.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-22.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-22.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-22.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-22.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-23.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-23.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-23.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-23.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-24.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-24.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-24.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-24.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-25.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-25.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/runs/generated-history-2026-08-25.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/runs/generated-history-2026-08-25.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/test-catalogs/rocjitsu-core-v1.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/test-catalogs/rocjitsu-core-v1.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/test-catalogs/rocjitsu-core-v1.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/test-catalogs/rocjitsu-core-v1.json diff --git a/emulation/rocjitsu/website/tests/fixtures/data/test-catalogs/rocjitsu-core-v2.json b/emulation/rocjitsu/website/dashboard/tests/fixtures/data/test-catalogs/rocjitsu-core-v2.json similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/data/test-catalogs/rocjitsu-core-v2.json rename to emulation/rocjitsu/website/dashboard/tests/fixtures/data/test-catalogs/rocjitsu-core-v2.json diff --git a/emulation/rocjitsu/website/tests/fixtures/publishedData.js b/emulation/rocjitsu/website/dashboard/tests/fixtures/publishedData.js similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/publishedData.js rename to emulation/rocjitsu/website/dashboard/tests/fixtures/publishedData.js diff --git a/emulation/rocjitsu/website/tests/fixtures/syntheticDataset.js b/emulation/rocjitsu/website/dashboard/tests/fixtures/syntheticDataset.js similarity index 100% rename from emulation/rocjitsu/website/tests/fixtures/syntheticDataset.js rename to emulation/rocjitsu/website/dashboard/tests/fixtures/syntheticDataset.js diff --git a/emulation/rocjitsu/website/tests/production/production.e2e.js b/emulation/rocjitsu/website/dashboard/tests/production/production.e2e.js similarity index 100% rename from emulation/rocjitsu/website/tests/production/production.e2e.js rename to emulation/rocjitsu/website/dashboard/tests/production/production.e2e.js diff --git a/emulation/rocjitsu/website/tests/unit/compareRuns.test.js b/emulation/rocjitsu/website/dashboard/tests/unit/compareRuns.test.js similarity index 100% rename from emulation/rocjitsu/website/tests/unit/compareRuns.test.js rename to emulation/rocjitsu/website/dashboard/tests/unit/compareRuns.test.js diff --git a/emulation/rocjitsu/website/tests/unit/dashboardDataDir.test.js b/emulation/rocjitsu/website/dashboard/tests/unit/dashboardDataDir.test.js similarity index 100% rename from emulation/rocjitsu/website/tests/unit/dashboardDataDir.test.js rename to emulation/rocjitsu/website/dashboard/tests/unit/dashboardDataDir.test.js diff --git a/emulation/rocjitsu/website/tests/unit/dashboardDataError.test.js b/emulation/rocjitsu/website/dashboard/tests/unit/dashboardDataError.test.js similarity index 100% rename from emulation/rocjitsu/website/tests/unit/dashboardDataError.test.js rename to emulation/rocjitsu/website/dashboard/tests/unit/dashboardDataError.test.js diff --git a/emulation/rocjitsu/website/tests/unit/dashboardDataSource.test.js b/emulation/rocjitsu/website/dashboard/tests/unit/dashboardDataSource.test.js similarity index 100% rename from emulation/rocjitsu/website/tests/unit/dashboardDataSource.test.js rename to emulation/rocjitsu/website/dashboard/tests/unit/dashboardDataSource.test.js diff --git a/emulation/rocjitsu/website/tests/unit/loader.test.js b/emulation/rocjitsu/website/dashboard/tests/unit/loader.test.js similarity index 100% rename from emulation/rocjitsu/website/tests/unit/loader.test.js rename to emulation/rocjitsu/website/dashboard/tests/unit/loader.test.js diff --git a/emulation/rocjitsu/website/tests/unit/publishedData.test.js b/emulation/rocjitsu/website/dashboard/tests/unit/publishedData.test.js similarity index 100% rename from emulation/rocjitsu/website/tests/unit/publishedData.test.js rename to emulation/rocjitsu/website/dashboard/tests/unit/publishedData.test.js diff --git a/emulation/rocjitsu/website/tests/unit/publishedDataUrls.test.js b/emulation/rocjitsu/website/dashboard/tests/unit/publishedDataUrls.test.js similarity index 100% rename from emulation/rocjitsu/website/tests/unit/publishedDataUrls.test.js rename to emulation/rocjitsu/website/dashboard/tests/unit/publishedDataUrls.test.js diff --git a/emulation/rocjitsu/website/tests/unit/selectors.test.js b/emulation/rocjitsu/website/dashboard/tests/unit/selectors.test.js similarity index 100% rename from emulation/rocjitsu/website/tests/unit/selectors.test.js rename to emulation/rocjitsu/website/dashboard/tests/unit/selectors.test.js diff --git a/emulation/rocjitsu/website/tests/unit/utils.test.js b/emulation/rocjitsu/website/dashboard/tests/unit/utils.test.js similarity index 100% rename from emulation/rocjitsu/website/tests/unit/utils.test.js rename to emulation/rocjitsu/website/dashboard/tests/unit/utils.test.js diff --git a/emulation/rocjitsu/website/tests/unit/validationCli.test.js b/emulation/rocjitsu/website/dashboard/tests/unit/validationCli.test.js similarity index 100% rename from emulation/rocjitsu/website/tests/unit/validationCli.test.js rename to emulation/rocjitsu/website/dashboard/tests/unit/validationCli.test.js diff --git a/emulation/rocjitsu/website/vite.config.js b/emulation/rocjitsu/website/dashboard/vite.config.js similarity index 100% rename from emulation/rocjitsu/website/vite.config.js rename to emulation/rocjitsu/website/dashboard/vite.config.js diff --git a/emulation/rocjitsu/website/vitest.config.js b/emulation/rocjitsu/website/dashboard/vitest.config.js similarity index 100% rename from emulation/rocjitsu/website/vitest.config.js rename to emulation/rocjitsu/website/dashboard/vitest.config.js