Enhanced Diagnostics and Analytics - #211
Merged
Razzmatazzz merged 8 commits intoAug 11, 2026
Merged
Conversation
Model the current json.tarkov.dev data envelopes for tasks, maps, items, traders, and hideout responses. Preserve inner exceptions and guard missing or partial data so refresh and task-state failures remain actionable instead of becoming null-reference or index errors.
Route application, API, watcher, socket, filesystem, media, startup, and UI failures through stable short diagnostics with sanitized copy-first details. Add the Disclaimer Information child window and deterministic matching-start notification behavior for Issue the-hideout#194.
Add 17 deterministic tests for API envelopes, partial payloads, privacy, persistence, concurrency, copy safety, and Issue the-hideout#194. Document the diagnostic contract and provide a branch-local launcher for validation.
…e-hideout#210) Keep missing, late, and recoverable EFT log watcher failures non-fatal. Rebind the watcher and monitors when the path or FileSystemWatcher fails, and publish application readiness only after the first readable application data. Move Settings log discovery out of the render-time getter and ignore repeated diagnostic events before rerendering so Settings and sidebar navigation remain usable during watcher failures. Fixes the-hideout#187 Fixes the-hideout#210
Make diagnostic durations optional and measure elapsed time at operation boundaries, harden local-path redaction, and keep diagnostic UI changes side-effect free. Remove the committed acceptance harness, launcher, generated PR documentation, and retired disclaimer and assembly artifacts so focused sandbox validation remains external and ignored. The preceding watcher commits carry the functional fixes for GitHub issues the-hideout#187 and the-hideout#210.
Restore the queue-time debug handler to its upstream implementation so the published product diff contains only behavior used by the normal end-user runtime. This does not change Release behavior or any watcher, diagnostics, API, or issue-fix functionality.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR addresses two related failure paths in TarkovMonitor:
When EFT logs are unavailable, TarkovMonitor now remains open and usable. The watcher fails closed, reports the problem once, and can recover when a valid logs folder becomes available.
This addresses #187 and #210.
Watcher and log-path handling
GameWatchernow has a controlled watcher configuration and recovery flow.The changes:
FileSystemWatcherreports an error.This is especially important for Steam installations, where the EFT installation and logs location may not be available through the same discovery path as a traditional installation.
Log monitor and readiness fixes
The previous monitor startup flow could miss initial-read events or count unsupported files while determining readiness.
The new flow:
_000log filenames.Settings and sidebar responsiveness
The Settings page previously performed default log-folder discovery from the
CustomLogsFoldergetter. Because that getter is used during rendering, a discovery failure could add a diagnostic while the UI was rendering.That behavior has been changed so that:
StateHasChanged().This prevents a repeated watcher error from causing a diagnostic/render loop that makes Settings or the sidebar appear frozen, which is the user-facing behavior associated with #187.
Diagnostics improvements
[NOT_MEASURED].Commit disposition
5fbe39d— Updates Tarkov.dev response-envelope handling so current API responses are processed correctly.5fed92a— Adds the privacy-safe diagnostics model, redaction, diagnostic snapshots, and user-facing diagnostic flow.5f9bf95— Added development-only synthetic validation scaffolding. The final cleanup commit removes the test project and launcher from the repository so acceptance testing remains external and ignored.12f1a9d— Improves Steam log discovery and keeps navigation available when watcher setup fails.a0c5e82— Handles punctuated and future EFT session modes safely and fails closed for unsupported modes.b125d3d— Adds watcher recovery, late-log handling, synchronized initial-read tracking, Settings render protection, and explicit fixes for Handle PvpSeason session mode without flooding or freezing the Dashboard #187 and Steam installs can leave GameWatcher without a usable EFT logs path #210.c750f5b— Finalizes diagnostic timing and path redaction, removes committed development artifacts, and leaves the final PR scope focused on product changes.Validation
failures=0.Fixes #187
Fixes #210