Establish remaining event conformance foundation - #13
Merged
Conversation
flemming-n-larsen
marked this pull request as ready for review
September 3, 2026 21:25
dispatchRobotCallback existed to reproduce classic's behavior of reporting robot handler exceptions while letting event processing continue. Every dispatch*Event method built its robocode.XxxEvent inside that same try/catch, so a bridge-side construction or mapping bug would be caught and misreported as a robot handler failure instead of surfacing as a real defect. Event construction now happens before the callback runs, matching the pattern dispatchHitByBulletEvent already used. Also rephrases hardcoded melee participant counts in criteria.md, design.md, and CHANGELOG.md to avoid drifting from MeleeScanConformanceTest's MELEE_PARTICIPANTS constant. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HspaGGEpmCfd8pq2wDDnf6
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
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.
Acceptance brief
Plan item: P-001 / M-001; remains wanted. This merge closes the test-foundation milestone, activates EVT-002, EVT-005, EVT-006, EVT-008, EVT-009, and EVT-010, and records IDR-006. No unmerged base is authorized or included.
Scenario resolution
BlockingScanConformanceTestruns the blocking scan probe against the same opponent fixture on both engines and requires repeated delivery without an empty bridge result.TurnBoundaryConformanceTestrequires event time, status-snapshot time, and peer time to agree across multiple status callbacks on both engines.CustomEventsConformanceTestcovers classic registration and priority delivery, then requires a registered condition to fire and become silent after removal on both engines.SkippedTurnsConformanceTestdeliberately overruns bounded status callbacks and requires skipped-turn reporting without duplicate delivery on both engines.ThrowingConformanceTestrequires both completed battles to report the sameNullPointerExceptionsignature; the bridge reports runtime callback failures without swallowing interruptible control-flow errors.MeleeScanConformanceTestruns the official ten-participant setup and requires per-turn scan counts bounded by the nine opponents on both engines. Exact cross-engine turn sequences remain uncomparable under AN-002's no-seed constraint.What merge binds
The merge binds the six criterion activations, M-001 bookkeeping, the participant-count adapter support, bridge-owned probes, and IDR-006's narrow exception-reporting boundary. It changes no frozen
robocode.*signature and retires or supersedes no criterion.Verification is complete on candidate
979dfb1: tier-1 unit tests, the configured five-round focused tier-2 suite, EVT-013 regression coverage,clue validate --coverage, and the in-context fallback review pass. The only advisory carried forward is the EVT-010 scenario-resolution note above.