Files
open-wc/coordination/claims/M02-GMP-INPUT-PROFILE-335-001.md
T
sindoring e819eeb35b docs(M02): hand off 3.3.5 input profile
Work-Package: M02-GMP-INPUT-PROFILE-335-001
Agent: sindo-main-codex
Tests: records complete package and renderer verification
Fidelity: records private-source hashes, public reference revisions and remaining gaps
2026-07-15 00:18:03 +04:00

6.5 KiB

M02-GMP-INPUT-PROFILE-335-001 — WoW 3.3.5a input profile

Ownership

  • Target: M02
  • Program: GMP/QAR
  • Owner/Agent ID: sindo-main-codex
  • Branch: work/sindo-main-codex/m02-input-profile-335
  • Lease expires UTC: 2026-07-17
  • Integrator: M02 milestone integrator

Outcome

Add a profile-aware, remappable Blizzlike335 input path whose default movement bindings match the extracted build-12340 binding table while preserving the existing RenderSandbox controls. Add deterministic turn intent and keyboard turn consumption at the server-contract default turn rate.

Non-goals

  • Implement jump/fall/swim, network prediction or server reconciliation.
  • Claim complete movement or camera parity from binding and turn-rate evidence.
  • Persist user keybindings or build keybinding UI.
  • Commit proprietary extracted client files.
  • Mark M02 complete or edit its checklist/Evidence.

Paths

  • Exclusive: src/tests/fixtures/player_input_profile_335.json, this claim
  • Shared/hotspots: project.godot, src/domain/input/move_intent.gd, src/gameplay/input/player_input_actions.gd, src/gameplay/input/player_input_source.gd, src/gameplay/movement/local_player_movement_controller.gd, src/scenes/player/third_person_wow_controller.gd, src/scenes/player/third_person_camera_rig.gd, player/movement verifiers and regression scene, docs/modules/player-input.md, docs/modules/local-player-movement.md, docs/modules/third-person-camera.md
  • Generated/ignored: local .godot, native DLL and proprietary extracted corpus

Contracts and data

  • MoveIntent gains an immutable, clamped signed turn axis.
  • PlayerInputSource selects explicit sandbox or compatibility action sets at construction and routes compatibility A/D to strafe while camera rotation is held.
  • LocalPlayerMovementController converts turn intent into a deterministic yaw delta without reading engine input or owning a scene transform.
  • A sanitized JSON fixture records selected binding facts, source hashes and the pinned TrinityCore 3.3.5 server-contract commit.

Dependencies

  • Requires: merged sandbox capability package on master c3094c9.
  • Blocks: final M02 integration audit and milestone closeout.
  • External state: local extracted build-12340 binding files are evidence inputs only; committed tests are reproducible without them.

Verification

  • Fixture schema/provenance and selected default-binding regression.
  • Pure profile composition, A/D turn, Q/E strafe and camera-held A/D strafe cases.
  • Deterministic turn-rate and controller integration regression.
  • Existing M02 and repository gates remain required.

Documentation deliverables

  • Updated input/movement public API, profile matrix, data flow, sequence, failure/recovery, fidelity provenance and source maps.

Simplicity and naming

  • Important names: turn_axis, BLIZZLIKE_STRAFE_LEFT, TURN_LEFT.
  • Simplest approach: one profile selection at composition plus one scalar intent.
  • Rejected complexity: input-context framework, command bus and persisted binding store.
  • Unavoidable complexity: compatibility A/D behavior depends on camera-rotate state.
  • Measured optimization evidence: not applicable.

Status

  • State: ready-for-review
  • Done: added distinct remappable profiles, signed turn intent/controller path, camera-yaw synchronization, sanitized provenance fixture, regression coverage and updated module specifications
  • Next: milestone integrator reviews and merges 8776a6b
  • Blocked by:

Handoff

  • Branch/commit: work/sindo-main-codex/m02-input-profile-335 at 8776a6b.
  • Outcome: RenderSandbox retains A/D strafe and debug E/Q/Space/Shift behavior; Blizzlike335 now samples W/S and Up/Down forward/back, Q/E strafe, A/D and Left/Right turn, with A/D routed to strafe while right-mouse rotation is active.
  • Public contracts: MoveIntent.turn_axis; profile-selecting PlayerInputSource.new(profile_id); pure compatibility composition; LocalPlayerMovementController.calculate_yaw_delta_radians(...); camera yaw synchronization after keyboard turn. Unknown input profiles fail closed to Blizzlike335.
  • Project configuration: four additive compatibility actions; existing action names and sandbox mappings remain valid. W/S also gain the original Up/Down secondary defaults.
  • Verification: player input actions=16 intent_cases=9 profiles=3 fixture=1 controller=1 regression_scene=3; movement cases=15 state_transitions=2; capabilities profiles=3 sprint=2 flight=2 scenes=2; terrain contract=4 interpolation=1 cache=1 failures=2; camera state_cases=12 policy_cases=3; presentation appearance_cases=9 animation_cases=10; coordinate boundaries files=101; StreamingFocus runtime_scenes=2 capture_tools=3.
  • Renderer: unified dry-run passed project/material/dedupe/cache/manifest/ calibration/coordinate/server-spawn gates and planned all seven checkpoints; coordinate gate reported files=103. Missing proprietary GLB/DBC/ADT inputs produced the expected diagnostics only.
  • Repository gates: documentation module_specs=8; coordination fallback_claims=31, with the same five unrelated expired M00 warnings.
  • Fidelity: local build-12340 DefaultBindings.wtf SHA-256 35FFA0E4E2356A13A0633A848F9E57ABE7DF9D8A16C2245E15D33013AD2F56A5 and Bindings.xml SHA-256 2E01276AFB7462F1417710F13B4BF1A456341F7F28CC8AE0D6D9C7442D7F6793 were rechecked and selected facts sanitized into the committed fixture. TrinityCore revision 2853a621d6af91a803787a2b8a509f4ce3e0300d supplies the 3.141594 rad/s player server-contract turn rate. WoWee revision 626243e937fb93965fa583a6507ed5a1aa7dda4b supports right-mouse A/D routing.
  • Fidelity limits: server turn rate and public reference routing are not direct original-client timing/behavior proof. Jump, autorun and left-button camera/select defaults are recorded but not implemented. This package does not claim complete input, movement or camera parity.
  • Migration/cache: no persisted settings or cache schema. Future saved bindings must migrate stable action names; current project users receive additive actions.
  • Documentation: updated input, movement and camera APIs, inputs/outputs, data flow, sequence, ownership, failure/recovery, configuration, fidelity and source maps.
  • Recommended merge order: merge after sandbox capabilities (already on master), then run the final M02 integration/evidence audit without marking the target done solely from this package.