Update to new Version #85

Closed
DayOfMagic wants to merge 20 commits from main into main
DayOfMagic commented 2026-07-21 21:16:57 +00:00 (Migrated from github.com)

Summary by CodeRabbit

  • New Features
    • Added automated build and test checks for Go changes.
    • Added runtime profiling access on localhost:6060.
  • Bug Fixes
    • Improved handling of malformed player input packets.
    • Added protection against excessive connection, packet, and join-flow activity.
    • Blocked specific invalid packet payloads.
  • Release & Maintenance
    • Improved release builds with module cleanup and image metadata handling.
    • Updated the linting workflow to a newer action version.
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added automated build and test checks for Go changes. * Added runtime profiling access on `localhost:6060`. * **Bug Fixes** * Improved handling of malformed player input packets. * Added protection against excessive connection, packet, and join-flow activity. * Blocked specific invalid packet payloads. * **Release & Maintenance** * Improved release builds with module cleanup and image metadata handling. * Updated the linting workflow to a newer action version. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
coderabbitai[bot] commented 2026-07-21 21:17:10 +00:00 (Migrated from github.com)

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 368074d7-0bcd-45c0-b58d-86e1073b6d1b

📥 Commits

Reviewing files that changed from the base of the PR and between 4084560eb7 and a175e4d80c.

📒 Files selected for processing (7)
  • .github/workflows/go.yml
  • .github/workflows/lint.yml
  • .github/workflows/release.yml
  • gobds/gobds.go
  • gobds/session/handler_player_auth_input.go
  • gobds/session/session.go
  • main.go

📝 Walkthrough

Walkthrough

The PR adds Go CI coverage, updates release and lint workflows, throttles connection joins and client packets, rejects malformed player input, blocks matching payloads, and starts a local pprof server.

Changes

Runtime protection

Layer / File(s) Summary
Connection join pacing
gobds/gobds.go
Adds a limiter allowing two joins per second with a burst of five, and waits for capacity before continuing each connection’s join flow.
Session packet controls
gobds/session/session.go, gobds/session/handler_player_auth_input.go
Adds client packet throttling, burst-based disconnects, blocked-payload matching for packet IDs 1 and 135, and validation for packet type, block actions, and tick values.

Runtime observability

Layer / File(s) Summary
Local pprof server
main.go
Starts an HTTP server on localhost:6060 with pprof enabled during initialization.

CI and release automation

Layer / File(s) Summary
Go and release workflow updates
.github/workflows/go.yml, .github/workflows/lint.yml, .github/workflows/release.yml
Adds Go tidy/build/test automation, upgrades the linter action, removes the release build condition, tidies release modules, and passes Docker image labels.

Estimated code review effort: 3 (Moderate) | ~30 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Client
  participant Session
  participant PlayerAuthInputHandler
  Client->>Session: send packet
  Session->>Session: throttle and inspect payload
  Session->>PlayerAuthInputHandler: dispatch valid packet
  PlayerAuthInputHandler->>PlayerAuthInputHandler: validate input
  PlayerAuthInputHandler-->>Session: cancel malformed input or continue
  Session-->>Client: disconnect after sustained flooding

Possibly related PRs

Suggested reviewers: smell-of-curry

Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch main

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Warning

⚠️ This pull request shows signs of AI-generated slop (description_diff_mismatch). It has been flagged by CodeRabbit slop detection and should be reviewed carefully.

<!-- This is an auto-generated comment: summarize by coderabbit.ai --> <!-- review_stack_entry_start --> [![Review Change Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/smell-of-curry/gobds/pull/85?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- This is an auto-generated comment: failure by coderabbit.ai --> > [!CAUTION] > ## Review failed > > The pull request is closed. <!-- end of auto-generated comment: failure by coderabbit.ai --> <details> <summary>ℹ️ Recent review info</summary> <details> <summary>⚙️ Run configuration</summary> **Configuration used**: defaults **Review profile**: CHILL **Plan**: Pro **Run ID**: `368074d7-0bcd-45c0-b58d-86e1073b6d1b` </details> <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 4084560eb79d3c250b18d7a652ea2e596174d7f3 and a175e4d80c1cb4040160b8d54215919fa95bb27b. </details> <details> <summary>📒 Files selected for processing (7)</summary> * `.github/workflows/go.yml` * `.github/workflows/lint.yml` * `.github/workflows/release.yml` * `gobds/gobds.go` * `gobds/session/handler_player_auth_input.go` * `gobds/session/session.go` * `main.go` </details> </details> --- <!-- walkthrough_start --> <details> <summary>📝 Walkthrough</summary> ## Walkthrough The PR adds Go CI coverage, updates release and lint workflows, throttles connection joins and client packets, rejects malformed player input, blocks matching payloads, and starts a local pprof server. ### Changes **Runtime protection** |Layer / File(s)|Summary| |---|---| |**Connection join pacing** <br> `gobds/gobds.go`|Adds a limiter allowing two joins per second with a burst of five, and waits for capacity before continuing each connection’s join flow.| |**Session packet controls** <br> `gobds/session/session.go`, `gobds/session/handler_player_auth_input.go`|Adds client packet throttling, burst-based disconnects, blocked-payload matching for packet IDs 1 and 135, and validation for packet type, block actions, and tick values.| **Runtime observability** |Layer / File(s)|Summary| |---|---| |**Local pprof server** <br> `main.go`|Starts an HTTP server on `localhost:6060` with pprof enabled during initialization.| **CI and release automation** |Layer / File(s)|Summary| |---|---| |**Go and release workflow updates** <br> `.github/workflows/go.yml`, `.github/workflows/lint.yml`, `.github/workflows/release.yml`|Adds Go tidy/build/test automation, upgrades the linter action, removes the release build condition, tidies release modules, and passes Docker image labels.| **Estimated code review effort:** 3 (Moderate) | ~30 minutes ### Sequence Diagram(s) ```mermaid sequenceDiagram participant Client participant Session participant PlayerAuthInputHandler Client->>Session: send packet Session->>Session: throttle and inspect payload Session->>PlayerAuthInputHandler: dispatch valid packet PlayerAuthInputHandler->>PlayerAuthInputHandler: validate input PlayerAuthInputHandler-->>Session: cancel malformed input or continue Session-->>Client: disconnect after sustained flooding ``` **Possibly related PRs** - [smell-of-curry/gobds#77](https://github.com/smell-of-curry/gobds/pull/77): Updates the same golangci-lint action version configuration. **Suggested reviewers:** `smell-of-curry` </details> <!-- walkthrough_end --> <!-- finishing_touch_checkbox_start --> <details> <summary>✨ Finishing Touches</summary> <details> <summary>🧪 Generate unit tests (beta)</summary> - [ ] <!-- {"checkboxId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} --> Create PR with unit tests </details> <details open> <summary>⚔️ Resolve merge conflicts</summary> - [ ] <!-- {"checkboxId": "c3a5b2e1-4d7f-4a8c-b9d6-e1f2c3d4a5b6"} --> Resolve merge conflict in branch `main` </details> </details> <!-- finishing_touch_checkbox_end --> <!-- tips_start --> --- Thanks for using [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=smell-of-curry/gobds&utm_content=85)! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. <details> <summary>❤️ Share</summary> - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code) </details> <sub>Comment `@coderabbitai help` to get the list of available commands.</sub> <!-- tips_end --> > [!WARNING] > ⚠️ This pull request shows signs of AI-generated slop (description_diff_mismatch). It has been flagged by CodeRabbit slop detection and should be reviewed carefully.
DayOfMagic commented 2026-07-21 21:17:53 +00:00 (Migrated from github.com)

I cant find out how to make my Plugin up-to-date sorry for the pull request

I cant find out how to make my Plugin up-to-date sorry for the pull request

Pull request closed

Sign in to join this conversation.
No description provided.