Migrate Friends to a replaceable Lua UI package
Implement the approved Friends migration in /home/mathias/Projects/worktrees/engines-next-lua-plan (feature/lua-friends-window, base 2fd6c0fd7). Preserve concurrent original-checkout work. Reuse core.window/core.table, adding reusable custom cells for notes; native code retains validated friend/note commands, name lookup/send completion, dialogs and context inspection. Preserve friends_window identity, geometry, list preferences, ignored marking, online-first sorting, note chips and Enter-to-add. Ship prk.friends with normal provider fallback and remove superseded C# presentation/layouts. Acceptance: behavior-driven Lua/native input regression tests, current-reference and deferred callback safety, relevant client/graphics/Lua/native AOT validation. No commits without request. Live visual validation limitations must remain explicit. Implemented initial package/provider, native friend/note validation and scoped native Enter handling, reusable core.table custom cells, and removal of legacy Friends presenter/layouts and orphaned native list persistence. Shared custom-cell test reproduced Unsupported table cell style before implementation. Added real input tests for notes, Enter/send completion, deferred dialogs, ignored changes, current note limits, disposal, preferences and GPU layout/screenshot. Full client suite passed 4405/187 skipped with software Vulkan after correcting the environment and teardown assertion (destroyed widgets clear text). Source-linked Friends Native AOT acceptance passed, including combat note reuse and allocation-free unchanged updates; removing Friends projection makes it fail. Native-policy mutations (cached rather than current buddy rows, clearing newer typed text) make all three targeted regressions fail; mutations restored. Final serial validation passed against the finished source with warnings-as-errors: client 4405 passed/187 skipped/0 failed; graphics 719 passed/1 skipped/0 failed; native Release and ASan/UBSan 8/8 each; generator self-tests and both Native AOT acceptance executables passed, including Friends. Lua formatting/syntax and git diff --check clean. No stale references to removed presenter/layouts/persistence remain. Committed as 2885cdb8e (feature: Migrate Friends to a replaceable Lua UI package) and pushed to origin/feature/lua-friends-window. The stock client test image lacks Vulkan; validation uses a disposable derived image with libvulkan1, Mesa software drivers and validation layers, without repository/CI changes. Inspected synthetic-data GPU screenshot: columns and controls align; installed game skin/live interaction and native Windows/macOS execution remain unverified. PR #2944: https://git.project-rk.com/prk/engines/pulls/2944 (feature/lua-friends-window → develop).
Checklist
2 of 2 complete- Implement shared custom table cells and the Friends package with validated native commands and compatible lifecycle/preferences.
- Verify real component/input regression tests, client/graphics suites, Lua/native AOT checks and document any live-validation limits.
- Area
- Project Rubi-Ka
- Project
- engines
- Kind
- Feature
- Task ID
tsk_jc9dv7t7uj- Updated