Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Nov 6, 2025

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:

  1. Assess if functionality is needed given evr.202 changes
  2. If needed, create fresh branches from evr.202 and cherry-pick/reimplement
  3. Close stale PRs where functionality exists in evr.202

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.

Copilot AI mentioned this pull request Nov 6, 2025
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
Copilot AI requested a review from thesprockee November 6, 2025 10:16
@thesprockee thesprockee marked this pull request as ready for review November 6, 2025 10:28
Copilot AI review requested due to automatic review settings November 6, 2025 10:28
Copy link
Contributor

Copilot AI left a 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 thesprockee merged commit 73b9d6c into evr.202 Nov 6, 2025
1 check failed
@thesprockee thesprockee deleted the copilot/sub-pr-122 branch November 6, 2025 10:37
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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants