feat(sentinel): detect unauthorized flight #2

Merged
dmg merged 1 commits from ticket-345-alert-operators-to-unauthorized-unsupported-flight into main 2026-10-29 20:17:45 +00:00
Owner

Kaneo

SM-345 — Alert operators to unauthorized unsupported flight

Outcome

  • sample server-authoritative player locations once per tick
  • distinguish unauthorized flying state, unsupported ascent, hover, and cruise
  • exclude authorized/ambiguous movement and apply lifecycle grace
  • expose bounded memory-only evidence through existing alerts and inspection
  • add durable, bounded flight thresholds with backward-compatible config loading

Sentinel remains observational: it does not cancel movement, change flight permissions, persist player evidence, or punish players.

Verification

Frozen candidate e15ff6549fe2eb5c48ceabbb6e28c9c1a0ce7701, tree f6c5e483e873c96ee63556bb69b8f59ca49e3136, based directly on 297da5d7f7754dbf3929bcfb400ba8d9264df9da.

  • ./gradlew clean check jar: 51 JVM, 2 native Purpur 26.3, and 73 release-tool tests passed
  • frozen input manifest before/after: 2bae292c7bd94362be52b182b74c40b8fc4fadb65ca48d040be54cecc75524e8
  • full log: a2363190df257e5276fe0294f9a4c5bf9bf1b5405a34c9f0be6cc98f490c3c4d
  • git diff --check: passed
  • scoped Semgrep: 23 production Java files, 65 rules, zero findings/errors; JSON 96f4632913549d867a03024662b4c3d5a28782583eac5f928f4d3384dc3cebe6

One earlier clean native run intermittently failed to load FlightDetector despite the class existing in output and the JAR. The immediately preceding run and three isolated/frozen clean runs passed; this remains recorded as unexplained retained evidence rather than a success claim.

Release effect

Merging to main can trigger semantic release publication. It does not authorize GitOps changes, installation, deployment, restart, or live calibration.

## Kaneo [SM-345 — Alert operators to unauthorized unsupported flight](https://cloud.kaneo.app/dmg/SM-345) ## Outcome - sample server-authoritative player locations once per tick - distinguish unauthorized flying state, unsupported ascent, hover, and cruise - exclude authorized/ambiguous movement and apply lifecycle grace - expose bounded memory-only evidence through existing alerts and inspection - add durable, bounded flight thresholds with backward-compatible config loading Sentinel remains observational: it does not cancel movement, change flight permissions, persist player evidence, or punish players. ## Verification Frozen candidate `e15ff6549fe2eb5c48ceabbb6e28c9c1a0ce7701`, tree `f6c5e483e873c96ee63556bb69b8f59ca49e3136`, based directly on `297da5d7f7754dbf3929bcfb400ba8d9264df9da`. - `./gradlew clean check jar`: 51 JVM, 2 native Purpur 26.3, and 73 release-tool tests passed - frozen input manifest before/after: `2bae292c7bd94362be52b182b74c40b8fc4fadb65ca48d040be54cecc75524e8` - full log: `a2363190df257e5276fe0294f9a4c5bf9bf1b5405a34c9f0be6cc98f490c3c4d` - `git diff --check`: passed - scoped Semgrep: 23 production Java files, 65 rules, zero findings/errors; JSON `96f4632913549d867a03024662b4c3d5a28782583eac5f928f4d3384dc3cebe6` One earlier clean native run intermittently failed to load `FlightDetector` despite the class existing in output and the JAR. The immediately preceding run and three isolated/frozen clean runs passed; this remains recorded as unexplained retained evidence rather than a success claim. ## Release effect Merging to `main` can trigger semantic release publication. It does not authorize GitOps changes, installation, deployment, restart, or live calibration.
dmg added 1 commit 2026-10-29 20:14:52 +00:00
feat(sentinel): detect unauthorized flight
CI / build (push) Successful in 1m18s
CI / build (pull_request) Successful in 1m17s
e15ff6549f
dmg merged commit 867b8bbaed into main 2026-10-29 20:17:45 +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#2