feat: audit log every successful chunk claim - #38
Merged
Conversation
Log player name, UUID, position, look direction, action type, whether a block was clicked (vs air ray-trace), sneaking state, target chunk, distance to the nearest border of the claimed chunk, confirmation setting, chunk count, and credit before/after. Motivated by a report of two chunks being claimed while the player was mining a cobble generator "nowhere near the border". The audit trail will reveal the exact trigger (LEFT_CLICK_AIR gap, border distance, sneaking state) if this happens again. Also changes attemptClaim to return ClaimResult so the caller can react to the outcome. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B94CWZDoiM9VevWtXb4RxF
|
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
LEFT_CLICK_AIRvsLEFT_CLICK_BLOCKetc.), whether a block was clicked (vs air ray-trace), sneaking state, target chunk coords, distance from nearest border of the claimed chunk, confirmation setting, chunk count, and credit before/afterattemptClaimreturn type fromvoidtoClaimResultso the caller can react to the outcomeContext
A player reported two chunks being claimed while they were mining a cobble generator "nowhere near the chunk border" with no other island members online. With
require-confirmation: true, an accidental claim requires four separateLEFT_CLICK_AIRevents with sneaking on the 2nd and 4th — extremely unlikely but not impossible if the player was closer to a border than they realized.The audit trail will capture the exact trigger conditions if this happens again. Key fields for investigation:
borderDist— was the player actually within 5 blocks of a locked chunk?action— was itLEFT_CLICK_AIR(cobble-generator gap)?sneaking— was the confirmation path involved?clickedBlock— was there a block under the crosshair?Example log output
Test plan
ChunkClaimListenerTesttests)🤖 Generated with Claude Code
https://claude.ai/code/session_01B94CWZDoiM9VevWtXb4RxF