Skip to content

Document Hearthstone client, live-feature, performance and overlay architecture - #7

Merged
Zulut30 merged 3 commits into
mainfrom
agent/hsreplay-firestone-research
Aug 4, 2026
Merged

Document Hearthstone client, live-feature, performance and overlay architecture#7
Zulut30 merged 3 commits into
mainfrom
agent/hsreplay-firestone-research

Conversation

@Zulut30

@Zulut30 Zulut30 commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Что изменено

  • добавлено инженерное исследование публичного кода HDT/HSReplay и Firestone для Arena, Battlegrounds, коллекции, симуляций, уведомлений и UI-callouts;
  • изучен установленный Hearthstone build 36001: безопасно проверены конфигурация логов, scene lifecycle и агрегированные Power/BG/choice signals без сохранения raw-логов;
  • описана client/server модель: account/menu channel отдельно от server-authoritative entity/tag game-state channel;
  • добавлена карта разрешённых поверхностей: Power.log, LoadingScreen.log, coarse Arena.log, HWND и reference data; чувствительные сетевые/account logs запрещены для ingestion и diagnostics;
  • добавлены отдельные feature contracts и staged roadmap для Arena и Battlegrounds;
  • добавлен performance/UX research: streaming hot path, WPF rendering, image/API/simulation isolation, измеримые budgets и profiling strategy;
  • спроектированы friendly navigation, onboarding, loading/empty/offline/partial states, accessibility и Russian-first layout;
  • описана работа с внутриигровым UI через scene + capability + versioned anchor profile + click-through overlay;
  • overlay skill расширен performance/UX checklist;
  • зафиксирован runtime CapabilityStatus: Verified, Partial, ProviderRequired, Unavailable, Blocked.

Ключевые технические выводы

Arena draft живёт до GAMEPLAY в account/menu части клиента: обычные Power/Arena logs надёжно дают scene/coarse state, но не гарантируют содержимое hero/card offers. Поэтому автоматический Arena picker требует отдельного разрешённого IArenaObservationProvider.

Battlegrounds проходят внутри entity/tag game-state stream. Hero offers/choice, фазы, своя доска, quests/trinkets, next opponent и раскрытая доска соперника могут быть log-derived после фиксации build-specific fixtures. Stats API и simulator остаются enrichment и не меняют observed state.

Производительный путь определён как bounded log channels → allocation-aware parser → single-writer reducer → snapshot coalescer → bounded IPC → immutable WPF view state. UI обновляется не чаще 20 Hz; images декодируются по display size вне UI thread; simulation изолируется worker/process и отменяется при stale generation.

Внутриигровая подсветка не взаимодействует с Unity UI напрямую. Renderer использует HWND client rect, DPI и versioned normalized anchors. Live/Inspect остаются click-through; только явно включённый Layout edit принимает input. Unknown build/aspect/profile всегда скрывает callout.

Friendly UX

  • пять top-level destinations: Главная, Колоды, История, Overlay, Настройки;
  • первый экран показывает readiness и одно следующее действие;
  • onboarding — resumable checklist вместо цепочки modal окон;
  • diagnostics спрятана в Advanced;
  • Windows notifications только для background/actionable событий, live-match события идут в overlay;
  • все notices зеркалируются в доступный activity feed;
  • keyboard, Narrator, high contrast, 200% DPI и длинный русский текст входят в release gate.

Безопасность и clean-room

  • не читать память Hearthstone, не внедрять DLL, не перехватывать traffic и не отправлять ввод;
  • не показывать скрытое/server-only состояние;
  • не читать и не прикладывать к diagnostics Net.log, GameNetLogger.log, Hearthstone.log, Login.log;
  • Decks.log допускается только как отдельный локальный opt-in;
  • optional screen recognition — только explicit opt-in, local processing, low-rate scene crop и fail-closed confidence;
  • raw пользовательские логи и screenshots не добавлены в репозиторий.

Проверки

  • feature contracts прошли validate_feature_spec.ps1;
  • module contract: 8 production projects;
  • agent setup: 21 skill, 7 project-specific;
  • current .NET performance pattern scan: 0 known hot-path anti-pattern hits; runtime hot paths ещё не реализованы;
  • current empty-process lower-bound launch captured and explicitly marked non-benchmark;
  • tools/validate_repository.ps1: restore/build/test/vulnerability checks passed;
  • Release build: 0 warnings, 0 errors;
  • Tests: 6 passed, 0 failed;
  • git diff --check passed;
  • targeted secret scan: no matches.

Release-gate

PASS WITH LIMITATIONS: research, contracts and automated gates passed. Performance budgets are targets, not achieved claims. 100,000-line replay, WPF visual trace, HWND/DPI/click-through matrix, screenshot UX audit and live BG/Arena smoke remain gated on runtime implementation and redacted fixtures. Arena offers remain ProviderRequired; patch-sensitive BG features remain Partial until fixtures pass.

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 288fdcaa-034b-4367-958a-9b02ab224047

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Zulut30 Zulut30 changed the title Document HSReplay and Firestone live-feature architecture Document Hearthstone client, live-feature, performance and overlay architecture Jul 29, 2026
@Zulut30
Zulut30 merged commit 1064816 into main Aug 4, 2026
6 checks passed
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