{ "baseline": "Exact user-reported almost-perfect camera implementation, including Enter/chat fix. 14 files copied with SHA-256 before edits; all saved hashes verified.", "changed_files": [ "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c", "tests/test_observer_view_buffer.py" ], "change": "Replace packet-arrival-driven 50 ms blends with a bounded 12-pose timestamp buffer starting 100 ms behind first sample. Local elapsed-time playback, no extrapolation, 350 ms stale fallback, immediate fresh target/scope acquisition. Relay format, source sampling, body-local transform, scope logic and input remain unchanged.", "checks": { "buffer_regression": "passed: validation, position/roll/FOV, reorder rejection, expiry, target/scope switch, bounded unrendered stream, repeated reads, 30/60/144 FPS jitter/loss comparison", "synthetic_step_variation": [ { "fps": 30, "buffered": 0.0336441, "baseline": 1.32469 }, { "fps": 60, "buffered": 0.0660537, "baseline": 0.822226 }, { "fps": 144, "buffered": 0.0253502, "baseline": 0.427864 } ], "other_passed": [ "test_observer_view_relay.py", "test_observer_scope.py", "test_observer_head_visibility.py", "test_spectator_recovery.py" ], "native_workbench": { "result": "compiled", "cleanup": { "cleanup_confirmed": true, "idle_verified": true, "errors": [], "orphan_cleanup": { "attempted": true, "report": { "scope": "/tmp/erri-headless-compat/pfx", "candidates": [], "term_sent": [], "kill_sent": [], "cleared": true } } } } }, "limitations": [ "Synthetic interpolation comparisons execute production method bodies adapted to C++ with native math doubled. They are not multiplayer visual measurements.", "Hidden Workbench compilation passed; real multiplayer smoothness and synchronization with independently replicated character/weapon animations remain unverified.", "The new queue adds approximately 100 ms presentation delay; body tracking and network relay are unchanged." ], "deployment": "Source only. No publishing, live-server changes or restart.", "rollback": "Restore changed_files from baseline/ after checking for subsequent edits. The saved smoothing.patch records exactly this change; do not reset the entire working tree." }