Wire options search and supported graphics settings in PRK.Client
Continue after committed options layout/design 26b20201c on feature/client-options-window. Implement case-insensitive, multi-term global search across category/section/setting labels and hints, with grouped results, empty state and clearing/back-to-category behavior. Wire supported Graphics controls: one ViewDistance, water quality, world shadows, body shadows, frames in flight, and quality presets/defaults derived from those controls. Leave renderer features/effects without consumers disabled and labelled unavailable. Draft edits persist/apply only via Apply; Close/F12/title close discard pending edits. Apply updates view distance/water live, persists startup-only controls and reports restart requirements. Load machine preferences before renderer construction; reuse existing registry/store. Explicit valid environment overrides win and lock affected controls without being persisted as user choices. Report requested/effective shadow fallback and save failures. Verified implementation: global multi-term case-insensitive search spans category/section labels and descriptions plus setting labels/hints, renders grouped matches/empty state, supports clear/category navigation and retains pending graphics edits. Supported Graphics controls use a draft model: ViewDistance, WaterQuality, world/body shadows, frames in flight, Low/Medium/High/Custom presets and Defaults. Apply updates world reach/water and persists via existing registry/store; Close/F12/title close discard unapplied changes. Startup-only controls carry restart labels/status. Supported graphics preferences load in Bootstrap construction before Engine.Start and configure requested renderer features through a guarded pre-start API; validation-layer configuration is preserved. Valid env overrides lock controls, win over saved values and are never written as user choices. Unsupported graphics/effect controls remain disabled as Unavailable. Effective shadow fallback and save failures are reported; a failed save remains retryable after runtime application. Validation: 343 available options/preference/window/menu/scaling/view-distance/fog/camera/frame/shadow regressions passed with zero skips; non-automation Release client build passed with zero warnings/errors, Options.xml parse and git diff --check passed. Production apply factory tests verify no draft writes/live changes before Apply, water/world-reach application, persisted restart values without changing running resources, save-failure reporting/retry, invalid input, roundtrip, override precedence and cancellation. Actual Skia/AO asset previews of enabled Graphics, pending edits, dropdown, grouped search and empty state were visually inspected; PNGs under PRK.Client/PRK.GraphicsEngine.Tests/bin/Debug/net10.0/options-previews/. Broader initial run had six failures: fixed the stale four-name preference assertion to assert all eight own keys; the remaining five are unavailable stock-profile/install-tree fixtures (missing /ao/prefs/Prefs.xml and inaccessible Wine z:/root symlink). Those five were explicitly excluded from the passing selection and remain unverified, not changed or claimed passed. Assistant did not run a native Vulkan/in-game smoke; user subsequently confirmed the implementation works. Prior milestone is 26b20201c; user authorized committing the verified wiring, now b7e8abc3b (feature: Wire client options search and graphics settings) on feature/client-options-window. Working tree clean. No deployment, new renderer/effect feature, push or PR.
Checklist
3 of 3 complete- Implement and verify global search with grouped matches, empty state, clearing and category navigation.
- Implement draft/apply/discard supported Graphics controls with persistence, environment locks and startup loading.
- Run focused regressions and Release build; visually review search and wired Graphics renders.
- Area
- Project Rubi-Ka
- Project
- engines
- Kind
- Feature
- Task ID
tsk_dw2h9zkzfh- Updated