Skip to content

refactor(infra): enforce coding and testing standards across all services (STA-243)#269

Merged
Puneethkumarck merged 4 commits into
mainfrom
feature/STA-249-standards-cleanup
Apr 11, 2026
Merged

refactor(infra): enforce coding and testing standards across all services (STA-243)#269
Puneethkumarck merged 4 commits into
mainfrom
feature/STA-249-standards-cleanup

Conversation

@Puneethkumarck

Copy link
Copy Markdown
Owner

Summary

Follow-up to #248. Applies the coding and testing standards from stablebridge-tx-recovery across the entire platform, cleaning up legacy patterns and aligning all services with hexagonal architecture rules.

What changed

1. Build and sandbox fixes

  • @ConditionalOnMissingBean on fallback adapters (S2, S3, S4, S5, S6) so real provider beans take precedence in sandbox
  • Fix USDC decimal scaling in DevCustodyAdapter (truncate, not throw)
  • Replace wget Docker healthchecks with TCP checks, fix Temporal health command
  • Disable JaCoCo (incompatible with Java 25)
  • Exclude @Tag("sandbox") tests from default test runs

2. Domain layer violations (hexagonal architecture)

  • Extract IsolatedTransactionExecutor port in S4 + S5 to remove Spring transaction infrastructure imports from domain layer
  • Move TASK_QUEUE constant from application to domain layer (S1)
  • Replace DataIntegrityViolationException with RuntimeException in domain handler (S1)

3. Package structure

  • Move 11 config classes to correct packages (application/config/ or infrastructure/config/) across 6 services
  • Update all cross-module imports

4. Test standards

  • Convert non-BDD Mockito (when/verify) to BDD style (given/then) across 8 test files
  • Replace generic argument matchers (any(), anyString(), eq()) with actual values where applicable

5. Comments and Javadoc cleanup

  • Remove all /** ... */ Javadoc blocks from ~300 production files
  • Remove all // TODO and // FIXME comments
  • Remove decorative section dividers (// ── ..., // -- ... ---)

Totals

  • 352 files changed
  • ~3,430 lines removed
  • ~370 lines added

Test plan

  • ./gradlew compileJava compileTestJava --parallel — BUILD SUCCESSFUL
  • ./gradlew test --parallel (excluding cross-service integration tests) — all pass
  • All ArchUnit tests pass (domain layer isolation enforced)
  • Pre-push quality gate (Spotless + unit tests) — passed
  • Sandbox E2E verified in CI

Closes STA-243

Puneethkumarck and others added 3 commits April 11, 2026 06:40
…TA-243)

- Add @ConditionalOnMissingBean to fallback adapters in S2, S3, S4, S5,
  S6 so real provider beans take precedence in sandbox profile
- Fix USDC decimal scaling in DevCustodyAdapter (truncate, not throw)
- Replace wget Docker healthchecks with TCP checks, fix Temporal command
- Disable JaCoCo (incompatible with Java 25)
- Exclude @tag(sandbox) tests from default test runs
- Widen recipient_account_hash column for full SHA-256 digest

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ices (STA-243)

- Remove all Javadoc and TODO comments from 300+ production files
- Move 11 config classes to correct packages (application/config or
  infrastructure/config) per hexagonal architecture standard
- Extract IsolatedTransactionExecutor port to remove Spring transaction
  infrastructure imports from domain layer (S4, S5)
- Move TASK_QUEUE constant from application to domain layer (S1)
- Replace DataIntegrityViolationException with RuntimeException in
  domain handler (S1)
- Convert non-BDD Mockito (when/verify) to BDD style (given/then)
  across 8 test files
- Replace generic argument matchers (any, anyString, eq) with actual
  values in test stubs and verifications

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Apr 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 300 files, which is 150 over the limit of 150.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 45d2d836-1b3a-4cce-8952-e87e072bbbcb

📥 Commits

Reviewing files that changed from the base of the PR and between 6d6bc7c and 2b37ae9.

📒 Files selected for processing (300)
  • api-gateway-iam/api-gateway-iam/src/main/java/com/stablecoin/payments/gateway/iam/application/config/IdempotencyKeyFilter.java
  • api-gateway-iam/api-gateway-iam/src/main/java/com/stablecoin/payments/gateway/iam/application/security/MerchantScopeEnforcer.java
  • api-gateway-iam/api-gateway-iam/src/main/java/com/stablecoin/payments/gateway/iam/application/security/UserAuthentication.java
  • api-gateway-iam/api-gateway-iam/src/main/java/com/stablecoin/payments/gateway/iam/application/security/UserJwtAuthenticationFilter.java
  • api-gateway-iam/api-gateway-iam/src/main/java/com/stablecoin/payments/gateway/iam/domain/port/UserJwksProvider.java
  • api-gateway-iam/api-gateway-iam/src/test/java/com/stablecoin/payments/gateway/iam/application/security/ApiKeyAuthenticationFilterTest.java
  • api-gateway-iam/api-gateway-iam/src/test/java/com/stablecoin/payments/gateway/iam/application/security/AuditLogFilterTest.java
  • api-gateway-iam/api-gateway-iam/src/test/java/com/stablecoin/payments/gateway/iam/application/security/JwtAuthenticationFilterTest.java
  • api-gateway-iam/api-gateway-iam/src/test/java/com/stablecoin/payments/gateway/iam/application/security/RateLimitFilterTest.java
  • api-gateway-iam/api-gateway-iam/src/test/java/com/stablecoin/payments/gateway/iam/application/security/UserJwtAuthenticationFilterTest.java
  • api-gateway-iam/api-gateway-iam/src/test/java/com/stablecoin/payments/gateway/iam/infrastructure/auth/CachedUserJwksProviderTest.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/application/config/ChainMonitorConfig.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/application/config/ChainSelectionConfig.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/application/config/ClockConfig.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/application/config/SecurityConfig.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/application/config/TransferMonitorConfig.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/application/controller/TransferController.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/application/scheduler/BalanceSyncJob.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/application/scheduler/TransferMonitorJob.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/exception/ChainUnavailableException.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/exception/CustodySigningException.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/exception/InsufficientBalanceException.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/exception/TransferNotFoundException.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/exception/WalletNotFoundException.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/model/ChainCandidate.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/model/ChainSelectionResult.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/model/ChainSelectionWeights.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/model/ChainTransfer.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/model/NonceAssignment.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/model/StablecoinTicker.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/model/TransferLifecycleEvent.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/model/TransferParticipant.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/model/TransferResult.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/model/Wallet.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/model/WalletBalance.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/port/ChainConfirmationProperties.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/port/ChainFeeProvider.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/port/ChainHealthProvider.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/port/ChainSelectionLogRepository.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/port/IsolatedTransactionExecutor.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/port/NonceRepository.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/port/TokenContractResolver.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/port/TransferMonitorProperties.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/service/BalanceSyncCommandHandler.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/service/ChainSelectionEngine.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/service/NonceManager.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/service/TransferCommandHandler.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/domain/service/TransferMonitorCommandHandler.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/infrastructure/config/FallbackAdaptersConfig.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/infrastructure/metrics/CustodyMetrics.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/infrastructure/persistence/ChainSelectionLogPersistenceAdapter.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/infrastructure/persistence/NonceManagerPersistenceAdapter.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/infrastructure/provider/dev/DevCustodyAdapter.java
  • blockchain-custody/blockchain-custody/src/main/java/com/stablecoin/payments/custody/infrastructure/transaction/IsolatedTransactionExecutorAdapter.java
  • blockchain-custody/blockchain-custody/src/test/java/com/stablecoin/payments/custody/application/controller/TransferControllerTest.java
  • blockchain-custody/blockchain-custody/src/test/java/com/stablecoin/payments/custody/domain/service/TransferMonitorCommandHandlerTest.java
  • blockchain-custody/blockchain-custody/src/testFixtures/java/com/stablecoin/payments/custody/fixtures/ChainSelectionFixtures.java
  • blockchain-custody/blockchain-custody/src/testFixtures/java/com/stablecoin/payments/custody/fixtures/ChainTransferFixtures.java
  • blockchain-custody/blockchain-custody/src/testFixtures/java/com/stablecoin/payments/custody/fixtures/CustodyEngineFixtures.java
  • blockchain-custody/blockchain-custody/src/testFixtures/java/com/stablecoin/payments/custody/fixtures/DevCustodyFixtures.java
  • blockchain-custody/blockchain-custody/src/testFixtures/java/com/stablecoin/payments/custody/fixtures/NonceFixtures.java
  • blockchain-custody/blockchain-custody/src/testFixtures/java/com/stablecoin/payments/custody/fixtures/TransferMonitorFixtures.java
  • blockchain-custody/blockchain-custody/src/testFixtures/java/com/stablecoin/payments/custody/fixtures/WalletBalanceFixtures.java
  • blockchain-custody/blockchain-custody/src/testFixtures/java/com/stablecoin/payments/custody/fixtures/WalletFixtures.java
  • buildSrc/src/main/kotlin/stablebridge.service.gradle.kts
  • compliance-travel-rule/compliance-travel-rule-api/src/main/java/com/stablecoin/payments/compliance/api/model/package-info.java
  • compliance-travel-rule/compliance-travel-rule-client/src/main/java/com/stablecoin/payments/compliance/client/package-info.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/application/config/RiskScoringConfig.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/application/config/SecurityConfig.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/application/filter/IdempotencyKeyFilter.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/application/service/ComplianceCheckApplicationService.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/domain/model/ComplianceCheck.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/domain/model/RiskScoringContext.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/domain/model/RiskScoringWeights.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/domain/model/package-info.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/domain/port/package-info.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/domain/service/ComplianceCheckCommandHandler.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/domain/service/ComplianceCheckService.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/domain/service/RiskScoringService.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/domain/service/package-info.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/domain/statemachine/package-info.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/infrastructure/config/FallbackAdaptersConfig.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/infrastructure/metrics/ComplianceMetrics.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/infrastructure/provider/ofacsdn/JaroWinklerSimilarity.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/infrastructure/provider/ofacsdn/OfacSdnSanctionsAdapter.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/infrastructure/provider/ofacsdn/SdnListDownloader.java
  • compliance-travel-rule/compliance-travel-rule/src/main/java/com/stablecoin/payments/compliance/infrastructure/provider/ofacsdn/SdnXmlParser.java
  • compliance-travel-rule/compliance-travel-rule/src/testFixtures/java/com/stablecoin/payments/compliance/fixtures/ComplianceCheckFixtures.java
  • docker-compose.sandbox.yml
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/application/config/ClockConfig.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/application/config/PayoutMonitorConfig.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/application/config/SecurityConfig.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/application/controller/PartnerWebhookController.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/application/controller/PayoutController.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/application/filter/IdempotencyKeyFilter.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/application/scheduler/PayoutMonitorJob.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/exception/PayoutNotFoundException.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/exception/PayoutNotRefundableException.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/exception/PayoutPartnerException.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/exception/RedemptionFailedException.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/model/OffRampTransaction.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/model/PayoutOrder.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/model/StablecoinRedemption.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/model/StablecoinTicker.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/port/IsolatedTransactionExecutor.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/port/PayoutMonitorProperties.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/port/PayoutPartnerGateway.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/port/PayoutRequest.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/port/RedemptionGateway.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/port/WebhookSignatureValidator.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/service/PartnerWebhookCommand.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/service/PayoutCommandHandler.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/service/PayoutMonitorCommandHandler.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/service/PayoutResult.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/domain/service/WebhookCommandHandler.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/infrastructure/config/FallbackAdaptersConfig.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/infrastructure/metrics/OffRampMetrics.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/infrastructure/provider/circle/CirclePayoutRequest.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/infrastructure/provider/circle/CirclePayoutResponse.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/infrastructure/provider/modulr/ModulrPaymentRequest.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/infrastructure/provider/modulr/ModulrPaymentResponse.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/infrastructure/provider/modulr/ModulrPayoutAdapter.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/infrastructure/provider/modulr/ModulrProperties.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/infrastructure/provider/modulr/ModulrWebhookProperties.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/infrastructure/provider/modulr/ModulrWebhookSignatureValidator.java
  • fiat-off-ramp/fiat-off-ramp/src/main/java/com/stablecoin/payments/offramp/infrastructure/transaction/IsolatedTransactionExecutorAdapter.java
  • fiat-off-ramp/fiat-off-ramp/src/main/resources/db/migration/V4__widen_recipient_account_hash.sql
  • fiat-off-ramp/fiat-off-ramp/src/test/java/com/stablecoin/payments/offramp/domain/service/PayoutMonitorCommandHandlerTest.java
  • fiat-off-ramp/fiat-off-ramp/src/testFixtures/java/com/stablecoin/payments/offramp/domain/model/PayoutOrderTestHelper.java
  • fiat-off-ramp/fiat-off-ramp/src/testFixtures/java/com/stablecoin/payments/offramp/fixtures/PayoutOrderFixtures.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/application/config/SecurityConfig.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/application/controller/CollectionController.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/application/controller/StripeWebhookController.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/application/scheduler/CollectionExpiryJob.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/application/scheduler/ReconciliationJob.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/exception/CollectionOrderNotFoundException.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/exception/RefundAmountExceededException.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/exception/RefundNotAllowedException.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/exception/RefundNotFoundException.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/model/CollectionOrder.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/model/PspTransaction.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/model/ReconciliationRecord.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/model/Refund.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/port/WebhookSignatureValidator.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/service/CollectionCommandHandler.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/service/CollectionResult.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/service/ReconciliationCommandHandler.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/service/RefundCommandHandler.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/service/WebhookCommand.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/domain/service/WebhookCommandHandler.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/infrastructure/config/FallbackAdaptersConfig.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/infrastructure/metrics/OnRampMetrics.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/infrastructure/provider/stripe/StripePaymentIntentResponse.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/infrastructure/provider/stripe/StripeRefundResponse.java
  • fiat-on-ramp/fiat-on-ramp/src/main/java/com/stablecoin/payments/onramp/infrastructure/provider/stripe/StripeSignatureValidator.java
  • fiat-on-ramp/fiat-on-ramp/src/testFixtures/java/com/stablecoin/payments/onramp/fixtures/CollectionOrderFixtures.java
  • fiat-on-ramp/fiat-on-ramp/src/testFixtures/java/com/stablecoin/payments/onramp/fixtures/ReconciliationFixtures.java
  • fiat-on-ramp/fiat-on-ramp/src/testFixtures/java/com/stablecoin/payments/onramp/fixtures/RefundFixtures.java
  • fiat-on-ramp/fiat-on-ramp/src/testFixtures/java/com/stablecoin/payments/onramp/fixtures/WebhookFixtures.java
  • fx-liquidity-engine/fx-liquidity-engine/src/main/java/com/stablecoin/payments/fx/application/service/FxRateLockApplicationService.java
  • fx-liquidity-engine/fx-liquidity-engine/src/main/java/com/stablecoin/payments/fx/infrastructure/config/FallbackAdaptersConfig.java
  • fx-liquidity-engine/fx-liquidity-engine/src/main/java/com/stablecoin/payments/fx/infrastructure/metrics/FxMetrics.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/application/config/SecurityConfig.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/event/JournalPostedEvent.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/event/ReconciliationCompletedDomainEvent.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/event/ReconciliationDiscrepancyDomainEvent.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/model/AccountBalance.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/model/AuditEvent.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/model/LedgerTransaction.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/model/ReconciliationRecord.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/port/AccountBalanceRepository.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/port/ReconciliationProperties.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/service/AccountingRules.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/service/BalanceCalculator.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/service/BalanceUpdate.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/service/JournalCommandHandler.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/service/JournalEntryRequest.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/service/LedgerQueryHandler.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/service/ReconciliationCommandHandler.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/domain/service/TransactionRequest.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/infrastructure/config/FallbackAdaptersConfig.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/infrastructure/messaging/LedgerEventConsumer.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/infrastructure/metrics/LedgerMetrics.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/infrastructure/persistence/entity/AuditEventEntity.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/infrastructure/persistence/entity/JournalEntryEntity.java
  • ledger-accounting/ledger-accounting/src/main/java/com/stablecoin/payments/ledger/infrastructure/persistence/entity/LedgerTransactionEntity.java
  • merchant-iam/merchant-iam-api/src/main/java/com/stablecoin/payments/merchant/iam/api/request/UpdateRoleRequest.java
  • merchant-iam/merchant-iam-api/src/main/java/com/stablecoin/payments/merchant/iam/api/response/ChangeRoleResponse.java
  • merchant-iam/merchant-iam-api/src/main/java/com/stablecoin/payments/merchant/iam/api/response/DataResponse.java
  • merchant-iam/merchant-iam-api/src/main/java/com/stablecoin/payments/merchant/iam/api/response/InvitationResponse.java
  • merchant-iam/merchant-iam-api/src/main/java/com/stablecoin/payments/merchant/iam/api/response/LoginResponse.java
  • merchant-iam/merchant-iam-api/src/main/java/com/stablecoin/payments/merchant/iam/api/response/MfaChallengeResponse.java
  • merchant-iam/merchant-iam-api/src/main/java/com/stablecoin/payments/merchant/iam/api/response/PermissionCheckResponse.java
  • merchant-iam/merchant-iam-api/src/main/java/com/stablecoin/payments/merchant/iam/api/response/ReactivateUserResponse.java
  • merchant-iam/merchant-iam-api/src/main/java/com/stablecoin/payments/merchant/iam/api/response/RoleResponse.java
  • merchant-iam/merchant-iam-api/src/main/java/com/stablecoin/payments/merchant/iam/api/response/SuspendUserResponse.java
  • merchant-iam/merchant-iam-api/src/main/java/com/stablecoin/payments/merchant/iam/api/response/UserResponse.java
  • merchant-iam/merchant-iam-client/src/main/java/com/stablecoin/payments/merchant/iam/client/MerchantIamClient.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/application/config/CorrelationIdFilter.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/application/config/IdempotencyKeyFilter.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/application/config/MetricsConfig.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/application/controller/AuthController.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/application/controller/PermissionsController.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/application/controller/mapper/IamResponseMapper.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/application/job/InvitationExpiryJob.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/application/job/SessionCleanupJob.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/application/security/UserAuthentication.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/domain/team/AuthService.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/domain/team/EmailHasher.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/domain/team/InvitationTokenGenerator.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/domain/team/JwtTokenIssuer.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/domain/team/LoginAttemptTracker.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/domain/team/MerchantTeam.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/domain/team/MerchantTeamService.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/domain/team/MfaChallengeStore.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/domain/team/MfaProvider.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/domain/team/PasswordHasher.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/domain/team/PermissionQueryService.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/domain/team/model/core/Permission.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/infrastructure/auth/JwtProperties.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/infrastructure/cache/RedisLoginAttemptTracker.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/infrastructure/cache/RedisMfaChallengeStore.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/infrastructure/messaging/MerchantActivatedEvent.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/infrastructure/messaging/MerchantClosedEvent.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/infrastructure/messaging/MerchantEventListener.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/infrastructure/messaging/MerchantSuspendedEvent.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/infrastructure/persistence/mapper/MerchantUserEntityMapper.java
  • merchant-iam/merchant-iam/src/main/java/com/stablecoin/payments/merchant/iam/infrastructure/persistence/mapper/RoleEntityMapper.java
  • merchant-iam/merchant-iam/src/test/java/com/stablecoin/payments/merchant/iam/application/security/JwtAuthenticationFilterTest.java
  • merchant-iam/merchant-iam/src/testFixtures/java/com/stablecoin/payments/merchant/iam/fixtures/IamEntityFixtures.java
  • merchant-onboarding/merchant-onboarding/src/integration-test/java/com/stablecoin/payments/merchant/onboarding/config/TestTemporalConfig.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/application/config/FallbackAdaptersConfig.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/application/config/IdempotencyKeyFilter.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/application/controller/KybWebhookController.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/domain/merchant/CompanyRegistryProvider.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/domain/merchant/CorridorEntitlementService.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/domain/merchant/DocumentStore.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/domain/merchant/Merchant.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/domain/merchant/MerchantActivationPolicy.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/domain/merchant/OnboardingWorkflowPort.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/domain/merchant/RiskTierCalculator.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/kyb/CompaniesHouseAdapter.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/kyb/CompaniesHouseAddress.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/kyb/CompaniesHouseCompanyResponse.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/kyb/MockCompanyRegistryAdapter.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/kyb/OnfidoKybAdapter.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/kyb/OnfidoWebhookValidator.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/temporal/activity/KafkaEventActivities.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/temporal/activity/MerchantOnboardingActivities.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/temporal/activity/MerchantOnboardingActivitiesImpl.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/temporal/adapter/MockOnboardingWorkflowAdapter.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/temporal/adapter/TemporalOnboardingWorkflowAdapter.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/temporal/config/TemporalWorkerConfig.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/temporal/signal/DocumentUploadedSignal.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/temporal/signal/KybResultSignal.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/temporal/signal/ReviewDecisionSignal.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/temporal/workflow/MerchantOnboardingWorkflow.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/temporal/workflow/MerchantOnboardingWorkflowImpl.java
  • merchant-onboarding/merchant-onboarding/src/main/java/com/stablecoin/payments/merchant/onboarding/infrastructure/temporal/workflow/OnboardingResult.java
  • payment-orchestrator/payment-orchestrator-client/src/main/java/com/stablecoin/payments/orchestrator/client/PaymentOrchestratorClient.java
  • payment-orchestrator/payment-orchestrator/src/business-test/java/com/stablecoin/payments/orchestrator/PaymentLifecycleTest.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/application/config/SecurityConfig.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/application/config/TemporalConfig.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/application/config/TemporalWorkerConfig.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/application/controller/CancelPaymentRequest.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/application/controller/InitiatePaymentRequest.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/application/controller/PaymentController.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/application/controller/PaymentResponse.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/application/filter/IdempotencyKeyFilter.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/event/package-info.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/model/ChainId.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/model/Corridor.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/model/FxRate.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/model/Money.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/model/Payment.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/model/PaymentNotCancellableException.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/model/PaymentNotFoundException.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/model/package-info.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/port/package-info.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/service/PaymentCommandHandler.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/service/package-info.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/statemachine/package-info.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/PaymentWorkflow.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/PaymentWorkflowImpl.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/ChainReturnRequest.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/ChainTransferActivity.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/ChainTransferRequest.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/ChainTransferResult.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/ComplianceCheckActivity.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/ComplianceRequest.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/ComplianceResult.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/EventPublishingActivity.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/FiatCollectionActivity.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/FiatCollectionRequest.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/FiatCollectionResult.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/FiatRefundRequest.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/FxLockActivity.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/FxLockRequest.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/FxLockResult.java
  • payment-orchestrator/payment-orchestrator/src/main/java/com/stablecoin/payments/orchestrator/domain/workflow/activity/FxReleaseRequest.java

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/STA-249-standards-cleanup

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 and usage tips.

…243)

The comment-removal pass in 35a3a18 accidentally collapsed six
requestMatchers(...).permitAll() lines into a single nonsense path
/actuatorauth/**, causing /v1/auth/**, /v1/invitations/**, /actuator/**,
Swagger, and /.well-known/** to all require JWT auth. Four merchant-iam
business tests failed as a result because they could no longer log in.

Restore the original permit list so business tests pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Puneethkumarck Puneethkumarck merged commit 64e679b into main Apr 11, 2026
26 of 28 checks passed
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