Repository navigation
Fix browser-form result submission and verify publication before acknowledgement - #20
Merged
Merged
Conversation
submit no longer creates issues through the GitHub API. It writes each batch to a plain text file under the state directory, split by serialized size as well as by the limit of sixty results, and prints the result form address with a unique title. A later run finds the posted issue by that title without a token, collects the receipts, and keeps unposted batches retryable without creating duplicates. Launchers, README, SECURITY and CHANGELOG no longer require RUMBLE_CLIENT_TOKEN. Outside contributors cannot create a repository-scoped token, and the API drops the submission label for accounts without push access, so their issues were never processed. The form applies the label itself. Cliewen-Route: direct Cliewen-Recommendation: tracked Cliewen-Override: user chose direct; the submission criteria change is recorded separately in tank-royale and this repository's own corpus is not updated here
Correlate form issues by registered account and full envelope, paginate public reads, and verify receipt claims against canonical raw facts or rollups. Keep open retries in flight across restarts and retain oversized records with an explicit error. Cliewen-Route: simple
Cliewen-Route: simple
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.
Outside contributors can prepare a bounded plain text batch, open a short result-form link and paste the batch while signed in to GitHub. The client needs no submission token and retains results until a matching workflow receipt and identical canonical published fact have both been observed.
This includes the prepared browser-form implementation and fixes the four risks identified in the implementation review: ordinary comments cannot acknowledge results; rejected attempts cannot hide an open retry; discovery paginates the registered account's issues and verifies the complete JSON envelope; and a single oversized result fails without losing pending records. Prepared titles remain unique across restarts. Publication checks handle both raw facts and monthly rollups. JSON comparison preserves 64-bit selection seeds without floating-point rounding.
Validation
gradlew --no-configuration-cache -PtankRoyaleSource=C:/Code/rumble-client/tank-royale-source build installDist: passed, 66 tests including real-runner integration, using pinned Tank Royale commit9c25770c02671d1f9d941aad312013562a441427.36561530-ee47-4b7e-9e31-db19c308fc1a. The batch uses registered clientrobocode-rumble-test-01; replay evidence and journal are retained locally. Repeated anonymoussubmitretained the same prepared batch.895722a6363a07b727e6ff4b7a4788ac3a50cb7awith accountrobocode-rumble-testreturned accepted. This is local schema/policy validation, not a published acceptance receipt.Outside-account verification
The registered non-member
robocode-rumble-testposted the genuine batch through rumble-data issue 25. Its event history shows the template label applied by that account and closure by GitHub Actions, without maintainer repair. The durable receipt accepts the expected battle ID. Canonical data commit3f56dbe8bbe0e48903239eb2e774b6ef60a524bccontains the identical raw fact, and the corresponding Pages deployment succeeded.The unchanged verification client recovered anonymously after two HTTP 500 responses: it found issue 25, verified the workflow receipt and canonical fact, and journalled one acknowledgement. A subsequent process observed no new receipts and prepared no batch; there is one result, one acknowledgement and zero pending records. No journal repair or repost was needed. The public ranking data now includes the battle, and the public client totals list one battle for
robocode-rumble-test-01.Focused canonical-validator checks rejected an unregistered account and invalid round count. Replaying the accepted envelope against an isolated checkout of the published facts returned accepted without changing tracked files. These are local server checks; no extra remote submissions were made. Full evidence and exact links are recorded in Tank Royale PR 284.
All current GitHub checks pass. Human review and integration remain outstanding. The current Tank Royale main uses behavior version 2; the client's pinned behavior-version-1 source passes all 66 tests. No clean-install onboarding journey is claimed.
Recommended route: simple (defect corrections under the accepted form-submission and publication-first contracts). README, architecture and design now describe the form handoff and receipt/publication checks. Existing missing index frontmatter in this repository prevents
clue contextfrom scanning its corpus; no methodology migration is included.