chore(deps): update dependency mermaid to v11.15.0 [security] #126
validate.yml
on: pull_request
Detect Changes
5s
Matrix: docker-smoke
Automation and Compose Policy
0s
Backend
0s
Frontend Web
0s
Frontend Web E2E
0s
Frontend App
0s
Docs
1m 47s
Frontend App Full-Stack E2E
0s
Annotations
7 errors, 1 warning, and 1 notice
|
Docs
Process completed with exit code 1.
|
|
[chromium] › e2e/structure.spec.ts:15:3 › Structure regression › architecture system-design landmarks:
docs/e2e/structure.spec.ts#L17
2) [chromium] › e2e/structure.spec.ts:15:3 › Structure regression › architecture system-design landmarks
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toMatchAriaSnapshot(expected) failed
Locator: locator('main')
Timeout: 5000ms
- Expected - 2
+ Received + 2
@@ -92,11 +92,11 @@
- heading "Backend Domain Structure" [level=2]
- link "Section titled “Backend Domain Structure”":
- /url: "#backend-domain-structure"
- paragraph: "The backend is organised mainly by domain rather than by HTTP verb alone:"
- figure "Terminal window":
- - text: ""
+ - text: Terminal window
- region:
- code: "app/ ├── api/ │ ├── auth/ # Login, registration, OAuth, users, organizations │ ├── background_data/ # Taxonomies, categories, materials, product types, units │ ├── data_collection/ # Products, components, search, related properties │ ├── file_storage/ # Uploaded files, images, linked media records │ ├── newsletter/ # Newsletter subscription flows │ ├── plugins/ # Optional integrations such as rpi_cam │ └── common/ # Shared routers, helpers, exceptions ├── core/ # Runtime configuration, DB, cache, logging, HTTP clients ├── static/ # Static assets served by the backend └── templates/ # Email and HTML templates"
- button "Copy to clipboard"
- heading "Runtime Behavior" [level=2]
- link "Section titled “Runtime Behavior”":
@@ -122,10 +122,10 @@
- listitem: avoid unnecessary infrastructure complexity for a PhD-scale project
- link "Edit page":
- /url: https://github.com/CMLPlatform/relab/edit/main/docs/src/content/docs/architecture/system-design.mdx
- paragraph:
- text: "Last updated:"
- - time: /Apr \d+, \d+/
+ - time: May 11, 2026
- link "Previous API":
- /url: /user-guides/api/
- link "Next Data Model":
- /url: /architecture/datamodel/
Call log:
- Expect "toMatchAriaSnapshot" with timeout 5000ms
- waiting for locator('main')
- locator resolved to <main lang="en" dir="ltr" data-pagefind-body="" class="astro-noiisutw">…</main>
- unexpected value "- main:
- heading "System Design" [level=1]
- paragraph: RELab is split into a research app, a public website, and backend services so each part can evolve without forcing every workflow into one interface.
- heading "High-Level Architecture" [level=2]
- link "Section titled “High-Level Architecture”":
- /url: "#high-level-architecture"
- img
- group: Styled architecture overview (ELK layout)
- paragraph:
- text: For formal C4 architecture views (Context, Container, Component), see
- link "C4 Architecture Diagrams":
- /url: ../c4-diagrams/
- text: .
- heading "Monorepo Structure" [level=2]
- link "Section titled “Monorepo Structure”":
- /url: "#monorepo-structure"
- list:
- listitem:
- code: backend/
- text: ": main API, persistence, auth, file handling, and plugin integration"
- listitem:
- code: frontend-app/
- text: ": authenticated mobile-first data collection client built with Expo Router"
- listitem:
- code: frontend-web/
- text: ": landing page built with Astro"
- listitem:
- code: docs/
- text: ": documentation site"
- listitem: Compose files at the repository root coordinate local and deployed multi-service setups
- heading "Technology Choices" [level=2]
- link "Section titled “Technology Choices”":
- /url: "#technology-choices"
|
|
[chromium] › e2e/structure.spec.ts:15:3 › Structure regression › architecture system-design landmarks:
docs/e2e/structure.spec.ts#L17
2) [chromium] › e2e/structure.spec.ts:15:3 › Structure regression › architecture system-design landmarks
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toMatchAriaSnapshot(expected) failed
Locator: locator('main')
Timeout: 5000ms
- Expected - 2
+ Received + 2
@@ -92,11 +92,11 @@
- heading "Backend Domain Structure" [level=2]
- link "Section titled “Backend Domain Structure”":
- /url: "#backend-domain-structure"
- paragraph: "The backend is organised mainly by domain rather than by HTTP verb alone:"
- figure "Terminal window":
- - text: ""
+ - text: Terminal window
- region:
- code: "app/ ├── api/ │ ├── auth/ # Login, registration, OAuth, users, organizations │ ├── background_data/ # Taxonomies, categories, materials, product types, units │ ├── data_collection/ # Products, components, search, related properties │ ├── file_storage/ # Uploaded files, images, linked media records │ ├── newsletter/ # Newsletter subscription flows │ ├── plugins/ # Optional integrations such as rpi_cam │ └── common/ # Shared routers, helpers, exceptions ├── core/ # Runtime configuration, DB, cache, logging, HTTP clients ├── static/ # Static assets served by the backend └── templates/ # Email and HTML templates"
- button "Copy to clipboard"
- heading "Runtime Behavior" [level=2]
- link "Section titled “Runtime Behavior”":
@@ -122,10 +122,10 @@
- listitem: avoid unnecessary infrastructure complexity for a PhD-scale project
- link "Edit page":
- /url: https://github.com/CMLPlatform/relab/edit/main/docs/src/content/docs/architecture/system-design.mdx
- paragraph:
- text: "Last updated:"
- - time: /Apr \d+, \d+/
+ - time: May 11, 2026
- link "Previous API":
- /url: /user-guides/api/
- link "Next Data Model":
- /url: /architecture/datamodel/
Call log:
- Expect "toMatchAriaSnapshot" with timeout 5000ms
- waiting for locator('main')
- locator resolved to <main lang="en" dir="ltr" data-pagefind-body="" class="astro-noiisutw">…</main>
- unexpected value "- main:
- heading "System Design" [level=1]
- paragraph: RELab is split into a research app, a public website, and backend services so each part can evolve without forcing every workflow into one interface.
- heading "High-Level Architecture" [level=2]
- link "Section titled “High-Level Architecture”":
- /url: "#high-level-architecture"
- img
- group: Styled architecture overview (ELK layout)
- paragraph:
- text: For formal C4 architecture views (Context, Container, Component), see
- link "C4 Architecture Diagrams":
- /url: ../c4-diagrams/
- text: .
- heading "Monorepo Structure" [level=2]
- link "Section titled “Monorepo Structure”":
- /url: "#monorepo-structure"
- list:
- listitem:
- code: backend/
- text: ": main API, persistence, auth, file handling, and plugin integration"
- listitem:
- code: frontend-app/
- text: ": authenticated mobile-first data collection client built with Expo Router"
- listitem:
- code: frontend-web/
- text: ": landing page built with Astro"
- listitem:
- code: docs/
- text: ": documentation site"
- listitem: Compose files at the repository root coordinate local and deployed multi-service setups
- heading "Technology Choices" [level=2]
- link "Section titled “Technology Choices”":
- /url: "#technology-choices"
|
|
[chromium] › e2e/structure.spec.ts:15:3 › Structure regression › architecture system-design landmarks:
docs/e2e/structure.spec.ts#L17
2) [chromium] › e2e/structure.spec.ts:15:3 › Structure regression › architecture system-design landmarks
Error: expect(locator).toMatchAriaSnapshot(expected) failed
Locator: locator('main')
Timeout: 5000ms
- Expected - 2
+ Received + 2
@@ -92,11 +92,11 @@
- heading "Backend Domain Structure" [level=2]
- link "Section titled “Backend Domain Structure”":
- /url: "#backend-domain-structure"
- paragraph: "The backend is organised mainly by domain rather than by HTTP verb alone:"
- figure "Terminal window":
- - text: ""
+ - text: Terminal window
- region:
- code: "app/ ├── api/ │ ├── auth/ # Login, registration, OAuth, users, organizations │ ├── background_data/ # Taxonomies, categories, materials, product types, units │ ├── data_collection/ # Products, components, search, related properties │ ├── file_storage/ # Uploaded files, images, linked media records │ ├── newsletter/ # Newsletter subscription flows │ ├── plugins/ # Optional integrations such as rpi_cam │ └── common/ # Shared routers, helpers, exceptions ├── core/ # Runtime configuration, DB, cache, logging, HTTP clients ├── static/ # Static assets served by the backend └── templates/ # Email and HTML templates"
- button "Copy to clipboard"
- heading "Runtime Behavior" [level=2]
- link "Section titled “Runtime Behavior”":
@@ -122,10 +122,10 @@
- listitem: avoid unnecessary infrastructure complexity for a PhD-scale project
- link "Edit page":
- /url: https://github.com/CMLPlatform/relab/edit/main/docs/src/content/docs/architecture/system-design.mdx
- paragraph:
- text: "Last updated:"
- - time: /Apr \d+, \d+/
+ - time: May 11, 2026
- link "Previous API":
- /url: /user-guides/api/
- link "Next Data Model":
- /url: /architecture/datamodel/
Call log:
- Expect "toMatchAriaSnapshot" with timeout 5000ms
- waiting for locator('main')
- locator resolved to <main lang="en" dir="ltr" data-pagefind-body="" class="astro-noiisutw">…</main>
- unexpected value "- main:
- heading "System Design" [level=1]
- paragraph: RELab is split into a research app, a public website, and backend services so each part can evolve without forcing every workflow into one interface.
- heading "High-Level Architecture" [level=2]
- link "Section titled “High-Level Architecture”":
- /url: "#high-level-architecture"
- img
- group: Styled architecture overview (ELK layout)
- paragraph:
- text: For formal C4 architecture views (Context, Container, Component), see
- link "C4 Architecture Diagrams":
- /url: ../c4-diagrams/
- text: .
- heading "Monorepo Structure" [level=2]
- link "Section titled “Monorepo Structure”":
- /url: "#monorepo-structure"
- list:
- listitem:
- code: backend/
- text: ": main API, persistence, auth, file handling, and plugin integration"
- listitem:
- code: frontend-app/
- text: ": authenticated mobile-first data collection client built with Expo Router"
- listitem:
- code: frontend-web/
- text: ": landing page built with Astro"
- listitem:
- code: docs/
- text: ": documentation site"
- listitem: Compose files at the repository root coordinate local and deployed multi-service setups
- heading "Technology Choices" [level=2]
- link "Section titled “Technology Choices”":
- /url: "#technology-choices"
- list:
- listitem:
- strong: Backend API
- text: ": FastAPI"
- listitem:
- strong: Persistence layer
- text: ": SQLAlchemy 2.0 + Pydantic"
- listitem:
- strong: Database
- text: ": Postg
|
|
[chromium] › e2e/structure.spec.ts:8:3 › Structure regression › homepage landmarks:
docs/e2e/structure.spec.ts#L10
1) [chromium] › e2e/structure.spec.ts:8:3 › Structure regression › homepage landmarks ────────────
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toMatchAriaSnapshot(expected) failed
Locator: locator('body')
Timeout: 5000ms
- Expected - 3
+ Received + 3
@@ -2,11 +2,11 @@
- /url: "#_top"
- banner:
- link "Reverse Engineering Lab logo Reverse Engineering Lab":
- /url: /
- img "Reverse Engineering Lab logo"
- - text: ""
+ - text: Reverse Engineering Lab
- button "Search": Ctrl K
- link "GitHub":
- /url: https://github.com/CMLPlatform/relab
- text: Select theme
- combobox "Select theme":
@@ -83,11 +83,11 @@
- /url: /project/roadmap/
- listitem:
- link "Dataset":
- /url: /project/dataset/
- complementary:
- - button "Hide table of contents" [expanded]
+ - button "Hide table of contents" [expanded]: On this page
- navigation "On this page":
- list:
- listitem:
- link "Overview":
- /url: "#_top"
@@ -185,8 +185,8 @@
- text: .
- link "Edit page":
- /url: https://github.com/CMLPlatform/relab/edit/main/docs/src/content/docs/index.md
- paragraph:
- text: "Last updated:"
- - time: /Apr \d+, \d+/
+ - time: May 11, 2026
- link "Next Getting Started":
- /url: /user-guides/getting-started/
Call log:
- Expect "toMatchAriaSnapshot" with timeout 5000ms
- waiting for locator('body')
8 × locator resolved to <body class="astro-noiisutw">…</body>
- unexpected value "- link "Skip to content":
- /url: "#_top"
- banner:
- link "Reverse Engineering Lab logo Reverse Engineering Lab":
- /url: /
- img "Reverse Engineering Lab logo"
- text: Reverse Engineering Lab
- button "Search": Ctrl K
- link "GitHub":
- /url: https://github.com/CMLPlatform/relab
- text: Select theme
- combobox "Select theme":
- option "Dark"
- option "Light"
- option "Auto" [selected]
- navigation "Main":
- list:
- listitem:
- link "Overview":
- /url: /
- listitem:
- group:
- text: Guides
- list:
- listitem:
- link "Getting Started":
- /url: /user-guides/getting-started/
- listitem:
- link "Data Collection":
- /url: /user-guides/data-collection/
- listitem:
- link "Hardware":
- /url: /user-guides/hardware/
- listitem:
- link "RPI Camera":
- /url: /user-guides/rpi-cam/
- listitem:
- link "API":
- /url: /user-guides/api/
- listitem:
- group:
- text: Architecture
- list:
- listitem:
- link "System Design":
- /url: /architecture/system-design/
- listitem:
- link "Data Model":
- /url: /architecture/datamodel/
- listitem:
- link "API Structure":
- /url: /architecture/api/
- listitem:
- link "Authentication":
- /url: /architecture/auth/
- listitem:
- link "RPI Camera Plugin":
- /url: /architecture/rpi-cam/
- listitem:
- link "Deployment":
- /url: /architecture/deployment/
|
|
[chromium] › e2e/structure.spec.ts:8:3 › Structure regression › homepage landmarks:
docs/e2e/structure.spec.ts#L10
1) [chromium] › e2e/structure.spec.ts:8:3 › Structure regression › homepage landmarks ────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toMatchAriaSnapshot(expected) failed
Locator: locator('body')
Timeout: 5000ms
- Expected - 3
+ Received + 3
@@ -2,11 +2,11 @@
- /url: "#_top"
- banner:
- link "Reverse Engineering Lab logo Reverse Engineering Lab":
- /url: /
- img "Reverse Engineering Lab logo"
- - text: ""
+ - text: Reverse Engineering Lab
- button "Search": Ctrl K
- link "GitHub":
- /url: https://github.com/CMLPlatform/relab
- text: Select theme
- combobox "Select theme":
@@ -83,11 +83,11 @@
- /url: /project/roadmap/
- listitem:
- link "Dataset":
- /url: /project/dataset/
- complementary:
- - button "Hide table of contents" [expanded]
+ - button "Hide table of contents" [expanded]: On this page
- navigation "On this page":
- list:
- listitem:
- link "Overview":
- /url: "#_top"
@@ -185,8 +185,8 @@
- text: .
- link "Edit page":
- /url: https://github.com/CMLPlatform/relab/edit/main/docs/src/content/docs/index.md
- paragraph:
- text: "Last updated:"
- - time: /Apr \d+, \d+/
+ - time: May 11, 2026
- link "Next Getting Started":
- /url: /user-guides/getting-started/
Call log:
- Expect "toMatchAriaSnapshot" with timeout 5000ms
- waiting for locator('body')
8 × locator resolved to <body class="astro-noiisutw">…</body>
- unexpected value "- link "Skip to content":
- /url: "#_top"
- banner:
- link "Reverse Engineering Lab logo Reverse Engineering Lab":
- /url: /
- img "Reverse Engineering Lab logo"
- text: Reverse Engineering Lab
- button "Search": Ctrl K
- link "GitHub":
- /url: https://github.com/CMLPlatform/relab
- text: Select theme
- combobox "Select theme":
- option "Dark"
- option "Light"
- option "Auto" [selected]
- navigation "Main":
- list:
- listitem:
- link "Overview":
- /url: /
- listitem:
- group:
- text: Guides
- list:
- listitem:
- link "Getting Started":
- /url: /user-guides/getting-started/
- listitem:
- link "Data Collection":
- /url: /user-guides/data-collection/
- listitem:
- link "Hardware":
- /url: /user-guides/hardware/
- listitem:
- link "RPI Camera":
- /url: /user-guides/rpi-cam/
- listitem:
- link "API":
- /url: /user-guides/api/
- listitem:
- group:
- text: Architecture
- list:
- listitem:
- link "System Design":
- /url: /architecture/system-design/
- listitem:
- link "Data Model":
- /url: /architecture/datamodel/
- listitem:
- link "API Structure":
- /url: /architecture/api/
- listitem:
- link "Authentication":
- /url: /architecture/auth/
- listitem:
- link "RPI Camera Plugin":
- /url: /architecture/rpi-cam/
- listitem:
- link "Deployment":
- /url: /architecture/deployment/
|
|
[chromium] › e2e/structure.spec.ts:8:3 › Structure regression › homepage landmarks:
docs/e2e/structure.spec.ts#L10
1) [chromium] › e2e/structure.spec.ts:8:3 › Structure regression › homepage landmarks ────────────
Error: expect(locator).toMatchAriaSnapshot(expected) failed
Locator: locator('body')
Timeout: 5000ms
- Expected - 3
+ Received + 3
@@ -2,11 +2,11 @@
- /url: "#_top"
- banner:
- link "Reverse Engineering Lab logo Reverse Engineering Lab":
- /url: /
- img "Reverse Engineering Lab logo"
- - text: ""
+ - text: Reverse Engineering Lab
- button "Search": Ctrl K
- link "GitHub":
- /url: https://github.com/CMLPlatform/relab
- text: Select theme
- combobox "Select theme":
@@ -83,11 +83,11 @@
- /url: /project/roadmap/
- listitem:
- link "Dataset":
- /url: /project/dataset/
- complementary:
- - button "Hide table of contents" [expanded]
+ - button "Hide table of contents" [expanded]: On this page
- navigation "On this page":
- list:
- listitem:
- link "Overview":
- /url: "#_top"
@@ -185,8 +185,8 @@
- text: .
- link "Edit page":
- /url: https://github.com/CMLPlatform/relab/edit/main/docs/src/content/docs/index.md
- paragraph:
- text: "Last updated:"
- - time: /Apr \d+, \d+/
+ - time: May 11, 2026
- link "Next Getting Started":
- /url: /user-guides/getting-started/
Call log:
- Expect "toMatchAriaSnapshot" with timeout 5000ms
- waiting for locator('body')
8 × locator resolved to <body class="astro-noiisutw">…</body>
- unexpected value "- link "Skip to content":
- /url: "#_top"
- banner:
- link "Reverse Engineering Lab logo Reverse Engineering Lab":
- /url: /
- img "Reverse Engineering Lab logo"
- text: Reverse Engineering Lab
- button "Search": Ctrl K
- link "GitHub":
- /url: https://github.com/CMLPlatform/relab
- text: Select theme
- combobox "Select theme":
- option "Dark"
- option "Light"
- option "Auto" [selected]
- navigation "Main":
- list:
- listitem:
- link "Overview":
- /url: /
- listitem:
- group:
- text: Guides
- list:
- listitem:
- link "Getting Started":
- /url: /user-guides/getting-started/
- listitem:
- link "Data Collection":
- /url: /user-guides/data-collection/
- listitem:
- link "Hardware":
- /url: /user-guides/hardware/
- listitem:
- link "RPI Camera":
- /url: /user-guides/rpi-cam/
- listitem:
- link "API":
- /url: /user-guides/api/
- listitem:
- group:
- text: Architecture
- list:
- listitem:
- link "System Design":
- /url: /architecture/system-design/
- listitem:
- link "Data Model":
- /url: /architecture/datamodel/
- listitem:
- link "API Structure":
- /url: /architecture/api/
- listitem:
- link "Authentication":
- /url: /architecture/auth/
- listitem:
- link "RPI Camera Plugin":
- /url: /architecture/rpi-cam/
- listitem:
- link "Deployment":
- /url: /architecture/deployment/
- listitem:
- link "Install & Self-Host":
- /url: /architecture/install/
- listitem:
- link "C4 Diagrams":
- /url: /architecture/c4-diagrams/
- listitem:
-
|
|
Docs
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
🎭 Playwright Run Summary
2 failed
[chromium] › e2e/structure.spec.ts:8:3 › Structure regression › homepage landmarks ─────────────
[chromium] › e2e/structure.spec.ts:15:3 › Structure regression › architecture system-design landmarks
5 passed (25.5s)
|