feat(sentinel): detect unsupported boat travel #4

Merged
dmg merged 1 commits from ticket-347-alert-operators-to-sustained-unsupported-boat-travel into main 2026-10-29 21:00:29 +00:00
Owner

Outcome

Adds dedicated, explainable detection for occupied boats and rafts sustaining unsupported ascent, hovering, or level travel while ordinary passenger movement remains excluded from player detectors.

Behavior

  • samples all Purpur 26.3 boat/raft families once per server tick and attributes evidence only to the current controlling player
  • recognizes water, waterlogged blocks, ice, and collidable terrain as support using bounded loaded-chunk checks
  • excludes ordinary falling, transitions, unloaded geometry, pistons, collisions, teleports, velocity anomalies, controller changes, removal, and low TPS
  • reports named boat signals, type, duration, ascent, horizontal displacement, support, exclusion, and cooldown without coordinates
  • remains bounded, memory-only, lifecycle-cleared, and non-punitive

Verification

  • meaningful RED SHA-256 78d0789f35debae75382c47a37e5975cb7769340b830f0cb59612d540344fdfd
  • final clean suite: 97 JVM, 3 native Purpur 26.3, 73 release-tool tests; zero failures/errors/skips
  • production manifest SHA-256 2318c80cc17877502c401bab653e812111402dbcfeb7c70f103488c21f53ee28
  • test manifest SHA-256 4461d989100ce98e208b42264502ee98831a07f44677b45920d9b91127fbd582
  • Semgrep: 65 rules over 29 production Java files, zero findings/errors; JSON SHA-256 2b7ae1f814774cd3af9f0d702310ab7367725e9198840edd29ff9af9970a28c4
  • no dependency, workflow, GitOps, installation, or deployment changes

Kaneo: SM-347

## Outcome Adds dedicated, explainable detection for occupied boats and rafts sustaining unsupported ascent, hovering, or level travel while ordinary passenger movement remains excluded from player detectors. ## Behavior - samples all Purpur 26.3 boat/raft families once per server tick and attributes evidence only to the current controlling player - recognizes water, waterlogged blocks, ice, and collidable terrain as support using bounded loaded-chunk checks - excludes ordinary falling, transitions, unloaded geometry, pistons, collisions, teleports, velocity anomalies, controller changes, removal, and low TPS - reports named boat signals, type, duration, ascent, horizontal displacement, support, exclusion, and cooldown without coordinates - remains bounded, memory-only, lifecycle-cleared, and non-punitive ## Verification - meaningful RED SHA-256 `78d0789f35debae75382c47a37e5975cb7769340b830f0cb59612d540344fdfd` - final clean suite: 97 JVM, 3 native Purpur 26.3, 73 release-tool tests; zero failures/errors/skips - production manifest SHA-256 `2318c80cc17877502c401bab653e812111402dbcfeb7c70f103488c21f53ee28` - test manifest SHA-256 `4461d989100ce98e208b42264502ee98831a07f44677b45920d9b91127fbd582` - Semgrep: 65 rules over 29 production Java files, zero findings/errors; JSON SHA-256 `2b7ae1f814774cd3af9f0d702310ab7367725e9198840edd29ff9af9970a28c4` - no dependency, workflow, GitOps, installation, or deployment changes Kaneo: SM-347
dmg added 1 commit 2026-10-29 20:56:45 +00:00
feat(sentinel): detect unsupported boat travel
CI / build (pull_request) Successful in 1m15s
CI / build (push) Successful in 3m28s
1c226d14ef
dmg merged commit a31966d148 into main 2026-10-29 21:00:29 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dmg/purpur-sentinel#4