Skip to content

feat(iracing): add native capture, telemetry replay, and incident reports - #480

Open
iameddieyayaya wants to merge 40 commits into
mainfrom
iameddieyayaya/459-iracing
Open

iameddieyayaya wants to merge 40 commits into
mainfrom
iameddieyayaya/459-iracing

Conversation

@iameddieyayaya

@iameddieyayaya iameddieyayaya commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Change

Added iRacing incident reports to live and replay views, including incident formatting and backend report support. Updated telemetry analysis and dashboard behavior, localized
new UI text across supported locales, and added regression coverage.

Validation

  • Targeted telemetry UI test: 27 passed.
  • Pre-commit unit tests: passed.
  • Locale message-key check: passed for all supported locales.

PR checklist

  • I have manually tested the change to validate that it is working.
  • I have added or updated tests covering the changed observable behavior.
  • My UI changes use locale messages for new or changed user-facing text, with supported locale catalogs updated.
  • I have run relevant automated checks and reported failures.

…acing

# Conflicts:
#	shared/telemetry/catalog/generated/TELEMETRY_CATALOG.md
#	shared/telemetry/catalog/generated/telemetry-catalog-matrix.md
#	shared/telemetry/catalog/generated/telemetry-catalog.generated.json
#	shared/telemetry/catalog/generated/telemetry-catalog.generated.ts
…acing

# Conflicts:
#	client/src/components/CarWireframe.tsx
@iameddieyayaya
iameddieyayaya requested a review from a team October 17, 2026 14:27
@mars-snazzie

mars-snazzie Bot commented Oct 17, 2026

Copy link
Copy Markdown

MARS pipeline failure analysis

Build & Test — run #3028, attempt 2

The CI pipeline failed during the 'Run Playwright gate' step in both Playwright test jobs. The web server failed to start due to a QEMU error, indicating that the runner environment is attempting to execute a binary for an architecture it cannot properly load, specifically looking for the aarch64 loader.

playwright-e2e / playwright (tunes-unseeded, tunes-unseeded, --project=tunes-unseeded, ["mars-macos-arm64-2vcpu-10... / playwright — step 13

The WebServer process failed to start because QEMU could not locate the dynamic linker for the aarch64 architecture. This typically occurs when running an ARM64 binary on a runner that is misconfigured for emulation or is missing the required system libraries.
Suggested fix:
Verify that the build environment and runners are correctly matched for the target architecture. If using ARM64 runners (like macos-arm64), ensure that all dependencies and binaries are compiled for ARM64 or that the necessary QEMU libraries are installed in the container.

playwright-e2e / playwright (seeded-shard-3, seeded, --project=seeded-e2e --project=seeded-routes --project=seeded... / playwright — step 13

Similar to the previous job, the web server failed to initialize because the environment could not locate '/lib/ld-linux-aarch64.so.1' via QEMU, resulting in a non-zero exit code.
Suggested fix:
Check the runner configuration and ensure the container image contains the required libraries for the aarch64 architecture or that the environment is not incorrectly trying to use QEMU for a native architecture.

Evidence:

[WebServer] qemu-aarch64: Could not open '/lib/ld-linux-aarch64.so.1': No such file or directory
Error: Process from config.webServer was not able to start. Exit code: 255

Evidence:

[WebServer] qemu-aarch64: Could not open '/lib/ld-linux-aarch64.so.1': No such file or directory
Error: Process from config.webServer was not able to start. Exit code: 255

AI-generated suggestions; verify before applying.

…459-iracing

# Conflicts:
#	CHANGELOG.md
#	apps/backend/src/routes/laps/resource-routes.ts
#	apps/backend/test/games/shared/semantic-replay-native.test.ts
#	apps/backend/test/integration-files.txt
#	client/messages/de.json
#	client/messages/en.json
#	client/messages/es.json
#	client/messages/fi.json
#	client/messages/fr.json
#	client/messages/hi.json
#	client/messages/it.json
#	client/messages/ja.json
#	client/messages/ko.json
#	client/messages/nl.json
#	client/messages/pl.json
#	client/messages/pt-BR.json
#	client/messages/pt-PT.json
#	client/messages/ru.json
#	client/messages/uk.json
#	client/messages/zh-CN.json
#	client/src/components/analyse/AnalyseTrackMap.tsx
#	client/src/components/analyse/AnalyseVizPanel.tsx
#	client/src/components/analyse/track-map/path.ts
#	server/telemetry/replay.ts
#	shared/telemetry/catalog/generated/TELEMETRY_CATALOG.md
#	shared/telemetry/catalog/generated/telemetry-catalog-matrix.md
#	shared/telemetry/catalog/generated/telemetry-catalog.generated.json
#	shared/telemetry/catalog/generated/telemetry-catalog.generated.ts
@iameddieyayaya

Copy link
Copy Markdown
Contributor Author

/review

@mars-snazzie

mars-snazzie Bot commented Oct 18, 2026

Copy link
Copy Markdown

MARS pipeline failure analysis

Build & Test — run #3052, attempt 1

The CI pipeline failed during the integration test phase of the `@​raceiq/backend` package. Specifically, two integration tests failed while 2,926 passed and 4 were skipped.

test — step 15

The integration test 'LMU string identity routes' failed, which involves using common Spa corner definitions and starting percentages for the LMU track.
Suggested fix:
Verify that the corner definitions and starting percentages for the LMU track are correctly configured in the backend's integration test suite.

test — step 15

The integration test 'session cleanup edge cases' failed. The test checks if the system deletes eligible empty sessions without reacquiring a maintenance lock and whether it protects active captures and jobs.
Suggested fix:
Review the session cleanup logic to ensure that the maintenance lock is correctly reacquired before deletion and that active captures/jobs are properly protected.

Evidence:

(fail) LMU string identity routes > uses common Spa corner definitions and starting percentages for LMU [2.04ms]

Evidence:

(fail) session cleanup edge cases > deletes eligible empty sessions without reacquiring maintenance lock and protects active captures and jobs [26.81ms]

AI-generated suggestions; verify before applying.

@iameddieyayaya iameddieyayaya changed the title Iameddieyayaya/459 iracing feat(iracing): add native capture, telemetry replay, and incident reports Oct 21, 2026
…acing

# Conflicts:
#	CHANGELOG.md
#	apps/backend/src/routes/laps/resource-routes.ts
#	packages/telemetry-core/src/telemetry/live/semantics.ts
#	playwright/tests/seeded/catalog/tracks.spec.ts
#	playwright/tests/seeded/chats/saved-workspace.spec.ts
#	server/telemetry/replay.ts
#	shared/telemetry/catalog/generated/TELEMETRY_CATALOG.md
#	shared/telemetry/catalog/generated/telemetry-catalog-matrix.md
#	shared/telemetry/catalog/generated/telemetry-catalog.generated.json
#	shared/telemetry/catalog/generated/telemetry-catalog.generated.ts
#	shared/telemetry/catalog/generated/telemetry-catalog.types.ts
@github-actions

Copy link
Copy Markdown
Contributor

Replay benchmark comparison

Runtime: Bun 1.4.4; CPU: unknown (12 logical); OS: linux 6.18.33.2-microsoft-standard-WSL2 arm64

Launches: processes=2, retainedProcesses=5, retainedWarmups=1; warmup=1000ms, measurement=2000ms, samples=10-100; caseOrder=forward

Case Baseline median Current median Estimated change (95% CI) CI margin Result
replay/parse 20,000 raw lap frames (CPU) 61191416.00 59892305.00 -1.52% (-5.02%, 1.97%) 3.50% PASS
replay/parse 20,000 raw lap frames (retained heap) 76635371.00 76635377.00 0.00% (-0.00%, 0.01%) 0.01% PASS
replay/resolve 20,000 canonical envelopes (CPU) 54476600.00 52015793.00 0.72% (-3.83%, 3.64%) 3.74% PASS
replay/resolve 20,000 canonical envelopes (retained heap) 55225784.00 55208912.00 0.01% (-0.03%, 0.03%) 0.03% PASS

@github-actions

Copy link
Copy Markdown
Contributor

App UI changes

Current PR screenshots compared with main.

Added: storybook ReusableBadges

Base PR Diff
base pr diff

Added: storybook ReusableAvatars

Base PR Diff
base pr diff

Changed: responsive mobile acc-setups

Base PR Diff
base pr diff

Added: storybook ReusableButtons

Base PR Diff
base pr diff

Changed: responsive desktop home

Base PR Diff
base pr diff

Added: storybook AnalyseDataPanelParity

Base PR Diff
base pr diff

Added: storybook IRacingLiveDashboard

Base PR Diff
base pr diff

Added: storybook ForzaLiveDashboard

Base PR Diff
base pr diff

Added: storybook ReusableTable

Base PR Diff
base pr diff

Added: storybook ReusableDropdownMenu

Base PR Diff
base pr diff

Added: storybook ReusableNoteModal

Base PR Diff
base pr diff

Added: storybook ComboDash2

Base PR Diff
base pr diff

Added: storybook theme-semantic-states

Base PR Diff
base pr diff

Changed: responsive desktop iracing-landing

Base PR Diff
base pr diff

Added: storybook ReusablePanelSectionHeader

Base PR Diff
base pr diff

Added: storybook ReusableSearchMultiSelect

Base PR Diff
base pr diff

Changed: responsive mobile fm23-driver

Base PR Diff
base pr diff

Added: storybook ReusableCollapsible

Base PR Diff
base pr diff

Added: storybook ReusableDialog

Base PR Diff
base pr diff

Added: storybook ComboDash1

Base PR Diff
base pr diff

Added: storybook AcEvoLiveDashboard

Base PR Diff
base pr diff

Changed: responsive desktop iracing-live

Base PR Diff
base pr diff

Added: storybook F1LiveDashboard

Base PR Diff
base pr diff

Added: storybook AccLiveDashboard

Base PR Diff
base pr diff

Added: storybook AnalyseTrackPanel

Base PR Diff
base pr diff

Added: storybook AnalyseVizPanel3DViewMenuOpen

Base PR Diff
base pr diff

Added: storybook AnalyseVizPanel3D

Base PR Diff
base pr diff

Changed: responsive mobile f125-cars

Base PR Diff
base pr diff

Changed: responsive mobile f125-tracks

Base PR Diff
base pr diff

Added: storybook ReusableTabs

Base PR Diff
base pr diff

Added: storybook ReusableCard

Base PR Diff
base pr diff

Added: storybook SetupBrowserReadOnly

Base PR Diff
base pr diff

Added: storybook SetupBrowser

Base PR Diff
base pr diff

Added: storybook ReusableSearchSelect

Base PR Diff
base pr diff

Rendered from Storybook and responsive app screenshot tests against main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants