Skip to content

fix(scan): rebuild on stale engine scale; ignore minimized game window - #72

Merged
DysektAI merged 18 commits into
masterfrom
fix/display-scale-stale
Nov 2, 2026
Merged

DysektAI merged 18 commits into
masterfrom
fix/display-scale-stale

Conversation

@DysektAI

@DysektAI DysektAI commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Change

Keep the previous game viewport during periodic scan-path refresh while EFT is minimized, avoiding fallback/rebuild churn. Explicit settings refresh still applies the detected configuration.

Compare the published RatEye processing scale against the current viewport on every scan, including when detection is throttled. Failed rebuilds are retried on later scans; display-DPI-only changes do not rebuild. Preserve merged warm-up foreground priority and engine lifetime protections.

Validation

Integrated master c938fa1 (#71/#74/#75/#77) at f5762af.

  • Canonical scripts/verify.ps1 -Mode Full passed.
  • Debug and Release: 446 passed, zero skips, using retained real screenshots and pinned icon/OCR data. Builds: zero warnings/errors.
  • All 52 agent-doc integrity and 33 data/package-validator scenarios passed.
  • Hosted WebView UI smoke: 2/2 passed on the final combined tree.
  • Display regressions cover minimized/forced refresh, stale engine scale and matching-scale behavior; original mutation checks established sensitivity.
  • Full remaining six-file delta reviewed; formatting, docs and diff checks pass. Independent source review found no significant defects.

Limits and separate follow-up

No live EFT process was available for a real minimize/restore capture session; pure policy tests and actual call flow were checked. Screenshot review found an existing shared-theme contract problem, tracked in #86 with unchanged-source/blame evidence and a focused regression plan. The layout smoke does not test palette correctness. A further native check was stopped by physical Escape and no more app input was sent.

No dependency upgrades, release publication, or security-policy changes.

- measure-idle.ps1 samples raw GPU engine RunningTime for the app and
  its WebView2 children (3D and all-engine percent per second).
- IconScan_latency_profile reports engine build, cold, warm p50/max,
  rebuild, and first-scan-after-rebuild latency on the local fixtures,
  asserting identity every iteration.
- Record the pre-fix baseline in performance-diagnostics.md.

Claude-Session: https://claude.ai/code/session_01QFKiA2aswHyp8SnpraLxE2
The scan path rebuilt the engine only on the refresh that observed a
viewport change, but RefreshGameDisplayConfiguration commits the new
viewport first. A failed rebuild (or a concurrent scan that missed the
one-shot flag) left the engine on the old scale until restart, and a
display-DPI-only change rebuilt needlessly.

- Rebuild when the published engine's scale differs from the scale for
  the committed viewport, so failures retry on the next scan.
- Detect minimized Tarkov windows and keep the previous viewport on
  scan-path refreshes instead of flipping to the Graphics.ini/monitor
  fallback and back (each flip cost a synchronous rebuild on a click).

Claude-Session: https://claude.ai/code/session_01QFKiA2aswHyp8SnpraLxE2
Summing RunningTime by engine type before the delta let one instance
exiting cancel another's usage. Deltas now use instances present in
both samples, then sum by type.

Claude-Session: https://claude.ai/code/session_01QFKiA2aswHyp8SnpraLxE2
@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Next included review available in 15 seconds.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available. Your 56 included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Essentials
  • Run ID: ead34d8a-ae21-45d8-9af5-1071a98145fd
Commits

Reviewing files that changed from the base of the PR and between c938fa1 and f5762af.

Files selected for processing: 6
  • docs/agent-context/configuration-and-cache.md
  • src/App/Display/GameDisplayModels.cs
  • src/App/Display/WindowsGameDisplayService.cs
  • src/App/RatConfig.cs
  • src/App/RatScannerMain.cs
  • tests/RatScanner.Tests/GameDisplayConfigurationTests.cs
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

The offline cache key depends on game mode and language; parallel config
tests changed them mid-run and the harness skipped at random.

Claude-Session: https://claude.ai/code/session_01QFKiA2aswHyp8SnpraLxE2
@DysektAI DysektAI self-assigned this Oct 27, 2026
@DysektAI
DysektAI merged commit 891b774 into master Nov 2, 2026
9 checks passed
@DysektAI
DysektAI deleted the fix/display-scale-stale branch November 2, 2026 04:31

DysektAI commented Nov 2, 2026

Copy link
Copy Markdown
Member Author

Post-merge verification complete for master 891b774bd06d3dbf3176544bcb9fa3195f837c8f.

Owned task branches/worktrees are being removed; theme comparison screenshots are retained locally as validation evidence.

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.

1 participant