-
Notifications
You must be signed in to change notification settings - Fork 9
Analyze open PRs and provide integration plan for v202 merge #123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
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
Merged
Copilot
AI
changed the title
[WIP] Add permission controls for storage operations
Analyze open PRs and provide integration plan for v202 merge
Nov 6, 2025
Contributor
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot wasn't able to review any files in this pull request.
thesprockee
added a commit
that referenced
this pull request
Nov 11, 2025
* Add BeforeWrite/DeleteStorageObjects hooks and tweak guards - Implement BeforeWriteStorageObjectsHook and BeforeDeleteStorageObjectsHook to enforce StorageObjects intent (or IsGlobalOperator) and block unauthorized write/delete requests by returning nil. - Clarify AfterReadStorageObjectsHook comment to specify retry when zero objects were returned. - Small TODO placement fix in BeforeListMatchesHook. - Comment out registration of the BeforeWriteStorageObjects guard in registerAPIGuards. * Update server/evr_runtime_api_perms.go * Add mongodb to docker-compose * Update go deps * Add events * Integrate multiple PR's (#123) * Add managed Discord roles for users and host (#117) * Add nakama-debug to .gitignore * Refactor storage authorization: extract shared logic into helper function (#124) * Extract common storage authorization logic into helper function * Add "novalidation" tag to skip healthcheck for local broadcaster testing (#127) * Add novalidation tag support for game server registration * Add documentation for novalidation tag * Use constant for novalidation tag to avoid magic string * Make audit message sending async and clarify documentation * Refactor: Extract duplicate authorization logic in storage hook functions (#128) * Extract common authorization logic into helper function * Hide moderator Discord IDs in suspension embeds from non-moderators (#130) * Add nakama-debug to .gitignore * Conditionally show moderator Discord ID in suspension embeds * Add tests for conditional enforcer ID display in suspension embeds * Include internal IP in server ping failure error messages (#132) * Initial analysis - Identify error message improvement needed * Update error messages to include internal IP, external IP, and port * Pass correct group ID when building suspension embed fields - Use the loop variable (gID) instead of the outer groupID when calling createSuspensionDetailsEmbedField so each embed field references the correct guild instead of always using the current group. * Fix timestamp assignment bug in Past Display Names embed (#133) * Initial plan for fixing Past Display Names embed bug * Fix Past Display Names embed bug and add missing ServerEventsPublish method - Fixed timestamp assignment bug in createPastDisplayNameEmbed where variable 'e' was being assigned instead of 'ts' - Added comprehensive test coverage for createPastDisplayNameEmbed function - Fixed Satori build issue by implementing missing ServerEventsPublish method * Added IGN Override lock toggle and interaction for user metadata (#120) * Implement daily average player loudness leaderboard stat from VOIP logs (#131) * Add daily average player loudness leaderboard stat - Add PlayerLoudnessStatisticID constant - Process VOIP_LOUDNESS remote logs to accumulate loudness data - Track total loudness, min, max, and count per player - Store metadata (min_loudness, max_loudness, count) in leaderboard records - Queue leaderboard updates with daily reset schedule - Add unit tests for loudness accumulation and average calculation - Fix satori interface compilation issue with stub method * Add documentation for PlayerLoudness leaderboard stat * Fix metadata type handling and documentation format - Fix metadata parsing to handle string values correctly (was trying to parse as float64) - Remove incorrect comment syntax from markdown documentation - Add test verification for metadata parsing * Add error handling for metadata parsing and fix documentation - Add error handling for fmt.Sscanf calls with warning logs - Update documentation example to show correct string-based metadata parsing - Ensures parsing failures are logged instead of silently failing * Refactor to use strconv instead of fmt.Sscanf for parsing - Replace fmt.Sscanf with strconv.ParseFloat/ParseInt for better performance - Update all code and documentation to use strconv functions - More appropriate and efficient for string-to-number conversion - All tests still pass with the new approach * Improve error messages and clarify comments - Add more context to error messages for debugging - Include match ID in player not found error - Include team info in non-playing team error - Clarify that average calculation happens when reading data, not storing * Fix error message format and improve function documentation - Fix format string in team validation error (removed missing %d placeholders) - Update ServerEventsPublish comment to follow Go documentation conventions * Remove satori modifications - not needed for this feature * Fix dependency versions * Add marshal/unmarshal from/to leaderboard metadata map. * Refactor LeaderboardHaystackRPC to use leaderboard_id correctly, if provided * Update API guards to reorder messages Signed-off-by: Andrew Bates <a@sprock.io> Co-authored-by: Bryson Kelly <cumcollecta46@gmail.com>
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.
Analyzed all 15 open pull requests to determine merge feasibility into evr.202 branch and prioritize integration work.
Analysis Results
Quick Wins (ready for immediate merge):
Moderate Complexity (needs testing):
High Divergence (11 PRs branching from main, not evr.202):
Recommendations
PRs #2-#94 require individual evaluation:
All mergeable PRs identified and prioritized by integration risk.
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.