Skip to content

Add standalone Account authorization and settlement for selected Game Logic intake - #3233

Merged
benhook1013 merged 73 commits into
developfrom
codex/document-game-logic-intake-account-20261015
Oct 17, 2026
Merged

benhook1013 merged 73 commits into
developfrom
codex/document-game-logic-intake-account-20261015

Conversation

@benhook1013

@benhook1013 benhook1013 commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

Adds standalone Account authorization, source reservation and recovery, HELD reads and terminal settlement for selected Game Logic intake. Account independently reads the exact Game Design source and Game Logic terminal, preserves immutable namespace/binding and replay evidence, and keeps remote owner reads outside SQL. Permanent owner refusals return sanitized precondition failures; database and transaction-creation outages remain retryable without leaking diagnostics. The seven intake clients reuse the existing file-backed mTLS policy and reloadable lifecycle, including shutdown outside the certificate-callback monitor. The Account receiver contract explicitly maps each receiver to its applicable 24 MiB message bound and states the protected credential metadata bound; service binding configures neither limit.

After User merged #3231, this PR is retargeted to develop and normally reconciled at 975e240a1203 on c4a877bb7d30. The entire tracked tree remains byte-identical to e3a2eb0c539b, preserving all 81 owned paths and existing closed review allocations. No implementation or validation claim is reset. The earlier retarget event supplied no merge SHA and its image guard refused a stale artifact; fresh candidate CI, images and required runtime proof are reported separately.

Validation: the final receiver-limit wording correction passes documentation checks at e3a2eb0c539b; runtime code is unchanged. All six focused loopback mTLS cases freshly pass at 2380095e78bb, including the exact 16 KiB credential on authorize, recover and abort, with zero failures, errors or skips. Common Main/Test static analysis, formatting and documentation checks pass. The develop readiness repair is inherited without changing the owned patch. Eight Account settlement, authorization-read owner and authorization-read RPC cases freshly pass at e51feea11259, with zero failures, errors or skips. Account main/test static analysis and formatting pass in the separate full-check gate. Earlier qualification remains separately attributed: 11 World terminal RPC cases at 67ac9b9aeadc, 30 intake transport cases at e2034dfadabf, and prior Account PostgreSQL owner proof. Published-head CI is separate.

Owners and transports remain unregistered. Controlled upstream sources and loopback PKI do not establish genuine authoring, deployed authority, activation or delivery. Game Logic retention and its receipt composition belong to #3236; all genuine Gameplay handoffs remain open.

FireMUD LOC impact

Compared c4a877bb7d30 → 975e240a1203 (PR merge-base → head).
PR scope: 81 changed files · 12,898 added textual lines / 3 deleted textual lines.

Section Base LOC Head LOC Δ LOC Change
Overall 1,228,851 1,240,704 +11,853 +1.0%
 Source 1,136,948 1,148,782 +11,834 +1.0%
  ↳ Code 522,356 526,915 +4,559 +0.9%
  ↳ Tests 614,592 621,867 +7,275 +1.2%
 Markdown 61,200 61,219 +19 +<0.1%
 Design 63,871 63,890 +19 +<0.1%
  ↳ Architecture 45,606 45,607 +1 +<0.1%
  ↳ Project management 5,604 5,622 +18 +0.3%
  ↳ Observability 2,147 2,147 0 0.0%
  ↳ Operator runbooks 579 579 0 0.0%
  ↳ gRPC API documentation 8,433 8,433 0 0.0%
  ↳ Product requirements and user journeys 926 926 0 0.0%
  ↳ Developer workflows 497 497 0 0.0%
  ↳ Other design 79 79 0 0.0%

Rows are hierarchical and overlapping views; do not add them together.
LOC means cloc code lines; blank and comment-only lines are excluded.

@coderabbitai

coderabbitai Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository YAML (base), Organization UI (inherited)
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: f55db789-f0ec-46bd-be56-ee8a2979d371
📥 Commits

Reviewing files that changed from the base of the PR and between 1c940e7 and 164c449.

📒 Files selected for processing: 78
  • design/architecture/microservices/account-service/api-contracts.md
  • design/project-management/ai-observations.md
  • design/project-management/implementation-tracking/gameplay-rules-entities-and-effects.md
  • design/project-management/implementation-tracking/player-access-and-session.md
  • protos/account/v1/game_logic_intake_authorization.proto
  • protos/account/v1/game_logic_intake_authorization_service.proto
  • protos/account/v1/game_logic_intake_settlement_service.proto
  • protos/account/v1/game_logic_intake_source_read_service.proto
  • protos/game-design/v1/gameplay_rule_source_service.proto
  • protos/game-logic/v1/game_logic_service.proto
  • protos/game-logic/v1/gameplay_rule_intake_service.proto
  • protos/game-logic/v1/gameplay_rule_intake_terminal_service.proto
  • services/account-service/src/main/java/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeAuthorizationGrpcService.java
  • services/account-service/src/main/java/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeAuthorizationReadGrpcService.java
  • services/account-service/src/main/java/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeAuthorizationReadService.java
  • services/account-service/src/main/java/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeAuthorizationRepository.java
  • services/account-service/src/main/java/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeAuthorizationService.java
  • services/account-service/src/main/java/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeSettlement.java
  • services/account-service/src/main/java/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeSettlementGrpcService.java
  • services/account-service/src/main/java/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeSettlementService.java
  • services/account-service/src/main/java/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeSourceReadGrpcService.java
  • services/account-service/src/main/java/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeSourceReadRecovery.java
  • services/account-service/src/main/java/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeSourceReadService.java
  • services/account-service/src/test/java/integration/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeAuthorizationPostgresIntegrationTest.java
  • services/account-service/src/test/java/unit/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeAuthorizationGrpcServiceTest.java
  • services/account-service/src/test/java/unit/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeAuthorizationReadGrpcServiceTest.java
  • services/account-service/src/test/java/unit/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeAuthorizationRecoveryTest.java
  • services/account-service/src/test/java/unit/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeSettlementGrpcServiceTest.java
  • services/account-service/src/test/java/unit/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeSourceReadGrpcServiceTest.java
  • services/account-service/src/test/java/unit/net/firedevops/firemud/accountservice/service/session/AccountGameLogicIntakeSourceReadServiceTest.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/AccountGameLogicIntakeAuthorizationCredentials.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/AccountGameLogicIntakeSettlementEvidence.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/AccountGameLogicIntakeSettlementProtoCodec.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/AccountGameLogicIntakeSettlementReadClient.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/AccountGameLogicIntakeSettlementReadEvidence.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicGameplayRuleIntakeOperation.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicGameplayRuleIntakeTerminal.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeAuthorizationBinding.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeAuthorizationClient.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeAuthorizationEvidence.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeAuthorizationGrpcCodec.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeAuthorizationReadClient.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeAuthorizationReadEvidence.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeAuthorizationReadGrpcCodec.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeRetainClient.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeRetainEvidence.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeRetainProtoCodec.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeSourceReadClient.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeSourceReadEvidence.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeSourceReadProtoCodec.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeSourceReadScope.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeTerminalReadClient.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeTerminalReadEvidence.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeTerminalReadGrpcCodec.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicPublicationSourceReadBinding.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameLogicPublicationSourceReadGrpcCodec.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameplayAbilitySchemaProjection.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameplayRuleSourceReadClient.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameplayRuleSourceReadEvidence.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GameplayRuleSourceReadGrpcCodec.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GrpcAccountGameLogicIntakeSettlementReadClient.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GrpcGameLogicIntakeAuthorizationClient.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GrpcGameLogicIntakeRetainClient.java
  • services/common-platform-core/src/main/java/net/firedevops/firemud/common/gamelogic/GrpcGameLogicIntakeSourceReadClient.java
  • services/common-platform-core/src/test/java/net/firedevops/firemud/common/gamelogic/AccountGameLogicIntakeSettlementReadGrpcTest.java
  • services/common-platform-core/src/test/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeAuthorizationGrpcCodecTest.java
  • services/common-platform-core/src/test/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeAuthorizationReadClientMtlsTest.java
  • services/common-platform-core/src/test/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeRetainProtoCodecTest.java
  • services/common-platform-core/src/test/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeSourceReadTransportTest.java
  • services/common-platform-core/src/test/java/net/firedevops/firemud/common/gamelogic/GameLogicIntakeTerminalReadGrpcTest.java
  • services/common-platform-core/src/test/java/net/firedevops/firemud/common/gamelogic/GameLogicPublicationSourceReadBindingTest.java
  • services/common-platform-core/src/test/java/net/firedevops/firemud/common/gamelogic/GameLogicPublicationSourceReadGrpcCodecTest.java
  • services/common-platform-core/src/test/java/net/firedevops/firemud/common/gamelogic/GameplayAbilitySchemaProjectionTest.java
  • services/common-platform-core/src/test/java/net/firedevops/firemud/common/gamelogic/GrpcGameLogicIntakeAuthorizationClientMtlsTest.java
  • services/common-platform-core/src/test/java/net/firedevops/firemud/common/gamelogic/GrpcGameLogicIntakeRetainClientMtlsTest.java
  • services/common-security/src/main/java/net/firedevops/firemud/common/security/AuthTokenInterceptor.java
  • services/common-security/src/test/java/unit/net/firedevops/firemud/common/config/CommonSecurityAutoConfigurationTest.java
  • services/common-security/src/test/java/unit/net/firedevops/firemud/common/security/AuthTokenInterceptorTest.java

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📝 Summary

Summary

  • Added standalone Account Service workflows for selected gameplay-rule intake authorization, source-read reservation and recovery, HELD authorization reads, permission checks, and terminal settlement. Account reads the exact Game Design source and Game Logic terminal; the evidence and settlement remain immutable and namespace-bound.
  • Added protobuf contracts for Account, Game Design, and Game Logic. Added canonical evidence models, codecs, and mTLS clients in common-platform-core. Extended Game Logic’s draft-design digest contract with source-read binding and retained-terminal evidence, and added a gameplay ability-schema projection.
  • Updated Account architecture and project-tracking documentation. common-security now clears stale caller thread-local state around unauthenticated-method dispatch and listener callbacks.
  • The change does not register the new owners or transports, enable routes, or establish deployment authority. A HELD-read receiver must allow GameLogicIntakeAuthorizationGrpcCodec.MAX_WIRE_BYTES. No database migration is identified in the supplied change summary.
  • Game Logic retention and receipt composition belong to a separate follow-up. Genuine Game Design authoring, deployed authority, activation, delivery, and Gameplay handoffs remain unproved or open.

Validation and gaps

  • The author reports that ten Game Logic client cases freshly passed at 164c449139bb, along with affected static analysis, formatting, link, and Markdown checks. The checkout is at merge head 164c44913.
  • Earlier Account unit and five PostgreSQL intake cases retain their original source attribution. The inherited World corrections retain their 39-case proof at 1c940e7cac27. These results are not evidence of current published-head CI.
  • Current-head CI status is not established by the supplied evidence. Review comments do not include findings or severity counts, so those counts are unavailable. The author reported Hosted review totals of 3 Found, 3 Accepted, and 0 Routed for two commits, and 2 Found, 2 Accepted, and 0 Routed for another.

The pull request adds standalone gameplay-rule intake authorization, source-read, retention, terminal-read, and settlement components across Account, Game Design, and Game Logic. It also adds publication-source evidence, an ability-schema projection, gRPC context cleanup, tests, and implementation-tracking notes.

Changes: Gameplay-rule intake pipeline

Layer / File(s) Summary
Intake contracts and evidence
protos/*, services/common-platform-core/...
Adds protobuf APIs and canonical evidence types for authorization, source reads, retention, terminal reads, settlement, and publication-source bindings. Types validate identity, correlation, canonical bytes, digests, and payload limits.
Account authorization and settlement
services/account-service/...
Adds authenticated Account services and transactional persistence for source reservation, authorization, recovery, abort, held reads, and terminal settlement.
Source reads and retention transports
services/common-platform-core/..., protos/game-design/..., protos/game-logic/...
Adds mTLS clients and codecs for Account and Game Design source reads, Game Logic retention and terminal reads, and Account settlement reads.
Publication-source validation and projection
services/common-platform-core/..., protos/game-logic/v1/game_logic_service.proto
Adds full-version publication-source binding and response validation. Adds canonical gameplay ability-schema projection based on reachable definitions.
Tests and implementation status
services/account-service/src/test/..., services/common-platform-core/src/test/..., design/architecture/..., design/project-management/...
Adds persistence, transport, identity, canonicalization, size-boundary, replay, and client-lifecycle tests. Records implementation qualification gaps, receiving-pipeline limits, shutdown test status, and two review-operation observations.

Unauthenticated gRPC context cleanup

Layer / File(s) Summary
Clear caller context around exempt calls
services/common-security/src/main/java/.../AuthTokenInterceptor.java, services/common-security/src/test/...
The interceptor clears SessionContext around exempt-method dispatch, server-call closure, and listener callbacks. Tests check cleanup, callback exception propagation, and forwarded-call behavior.

Priority: ⬇️ Low

Estimated code review effort: 4 (Complex) | ~60 minutes

Merge Risk: ⚪ Minimal · up to 164c4

This change adds standalone Account authorization, source-reservation, HELD-read, and settlement components for selected Game Logic intake. None of the new services or clients are registered, so they add no live API surface. The gRPC context cleanup only clears stale per-thread caller state around exempt calls. Earlier review findings have been addressed, and no merge-blocking issue remains.

Pre-merge checks: Passed 4 · Inconclusive 1

Failed Failed checks: 1 inconclusive

Check name Status Explanation Resolution
Docstring Coverage Inconclusive Docstring coverage is 6.94% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 389 functions across 50 files. (28 skipped… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Title check Passed The title clearly and concisely describes the main change: standalone Account authorization and settlement for selected Game Logic intake.
Description check Passed The description provides detailed purpose, implementation scope, validation results, ownership boundaries, risks, and related work. It does not use the template headings or include the required checkl…
Full details: Description check

Explanation

The description provides detailed purpose, implementation scope, validation results, ownership boundaries, risks, and related work. It does not use the template headings or include the required checklist and exact validation commands, but the substantive information is mostly complete.

Full details: Docstring Coverage

Explanation

Docstring coverage is 6.94% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 389 functions across 50 files. (28 skipped: 12 unsupported, 16 over the file limit.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

✨ Finishing Touches: 💡 1
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@github-actions

Copy link
Copy Markdown
Contributor

Security Summary

✅ Security checks passed or were intentionally skipped

  • ✅ Security gate: success
  • ✅ Trivy filesystem scan: success
  • ✅ Secret compliance validation: success

@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Static Analysis Summary

✅ Static analysis checks passed

  • ✅ CodeQL gate: success
  • ✅ License gate: success

CodeQL breakdown

  • ⏭️ CodeQL analysis (java): skipped
  • ⏭️ CodeQL analysis (javascript-typescript): skipped

@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Validation Summary

✅ All validation checks passed

  • ✅ Validation gate: success
  • ✅ Buf generation: success
  • ✅ Dockerfile lint: success
  • ✅ ShellCheck: success
  • ✅ Python script validation: success
  • ✅ Dev tool contract checks: success
  • ⏭️ Dev Tools README contract: skipped
  • ✅ YAML lint: success
  • ✅ Metrics cardinality policy check: success
  • ✅ Flyway migration sanity checks: success
  • ✅ gRPC transport configuration sanity checks: success
  • ✅ GitHub workflow lint: success
  • ✅ Helm chart lint: success
  • ✅ Helm render validation: success
  • ✅ Helm transaction proof: success
  • ✅ Validate Documentation: success
  • ✅ Frontend checks: success
  • ✅ Service build/test matrix: success

Coverage reports and failure logs are available in the workflow artifacts.

@benhook1013

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
✅ Action performed

Full review finished.

@benhook1013

Copy link
Copy Markdown
Owner Author

Hosted: 0 Found / 0 Accepted / 0 Routed · 164c449 · 78 files · 8m 32s

@benhook1013

Copy link
Copy Markdown
Owner Author

CLI: 3 Found / 3 Accepted / 0 Routed · 8e32be8 · 78 files · 3m 24s

@benhook1013

Copy link
Copy Markdown
Owner Author

CLI: 2 Found / 2 Accepted / 0 Routed · 538a19b · 79 files · 3m 19s

@benhook1013

Copy link
Copy Markdown
Owner Author

CLI: 1 Found / 0 Accepted / 0 Routed · 67ac9b9 · 80 files · 3m 20s

@benhook1013

Copy link
Copy Markdown
Owner Author

CLI: 2 Found / 1 Accepted / 0 Routed · 67ac9b9 · 80 files · 3m 12s

@benhook1013

Copy link
Copy Markdown
Owner Author

CLI: 1 Found / 1 Accepted / 0 Routed · e51feea · 81 files · 3m 11s

@benhook1013

Copy link
Copy Markdown
Owner Author

CLI: 2 Found / 1 Accepted / 0 Routed · 2380095 · 81 files · 3m 29s

@benhook1013
benhook1013 changed the base branch from codex/document-original-world-preparation-20261015 to develop October 17, 2026 20:16
@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Smoke Summary

✅ Full-stack smoke completed with Smoke Gate: success

  • ✅ Changes detection: success
  • ✅ Smoke Gate: success
  • ✅ PR Full-Stack Smoke: success

@benhook1013
benhook1013 enabled auto-merge October 17, 2026 20:45
@benhook1013
benhook1013 merged commit e3d444e into develop Oct 17, 2026
133 checks passed
benhook1013 added a commit that referenced this pull request Oct 17, 2026
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.

1 participant