README-zh.md edits + .meta/uv.lock churn on brand-distribution-analytics, committed
(not stashed) so the feature branch can be checked out in the main worktree for editor
testing. Untracked .agents/ and AGENTS.md intentionally left out.
Claude-Session: https://claude.ai/code/session_01Tjpb5gYgUe2AUJuRdXr7Lv
The MemoryProfiler reflection code now verifies the selected overload's trailing parameter type before invoking it. This keeps Unity 6 CaptureFlags overloads and legacy uint overloads from being mixed in environments where both type families can be discovered.
Constraint: Reflection overload selection spans Unity versions with different trailing argument types.
Confidence: high
Scope-risk: narrow
Tested: Patched GameClient PackageCache and verified memory_take_snapshot, memory_list_snapshots, memory_compare_snapshots.
Tested: Verified profiler_status, get_frame_timing, get_counters, frame_debugger_get_events, and compare error paths.
Not-tested: Full Unity package test suite.
Unity 6 exposes MemoryProfiler.TakeSnapshot from UnityEngine.CoreModule with CaptureFlags overloads, so the old Unity.MemoryProfiler.Editor reflection path makes memory_take_snapshot report that com.unity.memoryprofiler is missing even when the package is installed. The profiler list and compare actions only inspect snapshot files, so they no longer depend on MemoryProfiler type discovery.
Constraint: Unity 6 moved MemoryProfiler APIs into UnityEngine.CoreModule.
Rejected: Require com.unity.memoryprofiler editor assembly type discovery for all memory actions | list and compare only need filesystem metadata.
Confidence: high
Scope-risk: narrow
Tested: uv run --extra dev pytest tests/test_manage_profiler.py -v
Tested: Reflected Unity 6 MemoryProfiler.TakeSnapshot overloads in GameClient editor.
Not-tested: Full Unity package test suite.