Expand versioned E2E coverage #1295
Open
aikuznetsov wants to merge 6 commits into
Open
GitHub Actions / Decentralized-API Tests
failed
Jun 10, 2026 in 0s
991 passed, 1 failed and 1 skipped
❌ decentralized-api/junit-report.xml
993 tests were completed in 85s with 991 passed, 1 failed and 1 skipped.
✅ decentralized-api/apiconfig
✅ TestApiAccount_AccountAddress
✅ TestApiAccount_IsSignerTheMainAccount
✅ TestApiAccount_IsSignerTheMainAccount/should_return_true_when_keys_are_the_same
✅ TestApiAccount_IsSignerTheMainAccount/should_return_false_when_keys_are_different
✅ TestLoadDefaultConfigManager_Migration_Idempotent_And_NodeConfigSkipped
✅ TestMigrationAndNodeConfigMerge_FirstRun
✅ TestFirstRun_NoNodeConfig_UsesYamlNodesAndStripsDynamicFromYaml
✅ TestRelaunchAfterMigration_Idempotent
✅ TestConfigNotRewrittenOnSecondLoad
✅ TestConfigLoad
✅ TestNewPoCParamsCache
✅ TestNodeVersion
✅ TestSetCurrentNodeVersion
✅ TestShouldRefreshClients
✅ TestVersionUpdateTriggersRefresh
✅ TestSyncVersionFromChain_UpdatesWhenDifferent
✅ TestSyncVersionFromChain_NoUpdateWhenSame
✅ TestSyncVersionFromChain_ErrorKeepsCurrentVersion
✅ TestConfigLoadEnvOverride
✅ TestConfigRoundTrip
✅ TestNoLoggingToStdout
✅ TestSeedsAtomicAdvance
✅ decentralized-api/broker
✅ TestEnrichWithPocParams_CachesAllModels
✅ TestResolvePoCModelForNode_PrefersEpochMLNodes
✅ TestResolvePoCModelForNode_FallsBackToConfiguredModel
✅ TestResolvePoCModelForNode_FallsBackToFirstConfiguredModelPresentInParams
✅ TestResolvePoCModelForNode_SkipsWithoutResolvableModel
✅ TestResolveNodeModelID_FallsBackToFirstNodeModel
✅ TestResolveNodeModelID_PrefersEpochMLNode
✅ TestResolveNodeModelID_RejectsMultipleEpochEntries
✅ TestResolveSupportedNodeModelID_FiltersConfiguredFallbackAgainstPoCParams
✅ TestResolveSupportedNodeModelID_NoRegressionWhenAllModelsSupported
✅ TestGetCommandForState_UsesConfiguredFallbackForGeneration
✅ TestGetCommandForState_UsesNodeAssignedModel
✅ TestUpdateNodeWithEpochData_RetriesAfterEmptyParentGroup
✅ TestEnsurePreservedMembershipCached_AppliesSnapshot
✅ TestEnsurePreservedMembershipCached_ClearsWhenNotFound
✅ TestEnsurePreservedMembershipCached_SkipsAdminDisabledNodes
✅ TestEnsurePreservedMembershipCached_IgnoresOtherParticipantSnapshot
✅ TestEnsurePreservedMembershipCached_KeepsCacheWhenParticipantAddressUnavailable
✅ TestSingleNode
✅ TestNodeRemoval
✅ TestModelMismatch
✅ TestHighConcurrency
✅ TestMultipleNodes
✅ TestReleaseNode
✅ TestRoundTripSegment
✅ TestCapacityCheck
✅ TestNodeShouldBeOperationalTest
✅ TestVersionedUrls
✅ TestImmediateClientRefreshLogic
✅ TestUpdateNodeConfiguration
✅ TestValidateInferenceNode_FieldCorrectness
✅ TestValidateInferenceNode_FieldCorrectness/valid_node
✅ TestValidateInferenceNode_FieldCorrectness/empty_node_id
✅ TestValidateInferenceNode_FieldCorrectness/whitespace_only_node_id
✅ TestValidateInferenceNode_FieldCorrectness/empty_host
✅ TestValidateInferenceNode_FieldCorrectness/inference_port_too_low
✅ TestValidateInferenceNode_FieldCorrectness/inference_port_too_high
✅ TestValidateInferenceNode_FieldCorrectness/poc_port_too_low
✅ TestValidateInferenceNode_FieldCorrectness/poc_port_too_high
✅ TestValidateInferenceNode_FieldCorrectness/max_concurrent_zero
✅ TestValidateInferenceNode_FieldCorrectness/max_concurrent_negative
✅ TestValidateInferenceNode_FieldCorrectness/no_models
✅ TestValidateInferenceNode_FieldCorrectness/nil_models
✅ TestValidateInferenceNode_FieldCorrectness/empty_segments_are_allowed
✅ TestValidateInferenceNode_FieldCorrectness/valid_port_boundaries
✅ TestValidateInferenceNode_StandardConfigs
✅ TestValidateInferenceNode_StandardConfigs/QwenConfig1
✅ TestValidateInferenceNode_StandardConfigs/QwenConfig2
✅ TestValidateInferenceNode_StandardConfigs/QwenConfig3
✅ TestValidateInferenceNode_StandardConfigs/QwenConfig4
✅ TestValidateInferenceNode_StandardConfigs/QwenConfig5
✅ TestValidateInferenceNode_StandardConfigs/QwenConfig6
✅ TestValidateInferenceNode_StandardConfigs/QwenConfig7
✅ TestValidateInferenceNode_HostPortUniqueness
✅ TestValidateInferenceNode_HostPortUniqueness/duplicate_inference_host+port
✅ TestValidateInferenceNode_HostPortUniqueness/duplicate_poc_host+port
✅ TestValidateInferenceNode_HostPortUniqueness/different_host,_same_ports_-_should_be_valid
✅ TestValidateInferenceNode_HostPortUniqueness/same_host,_different_ports_-_should_be_valid
✅ TestValidateInferenceNode_HostPortUniqueness/both_ports_duplicate_on_same_host
✅ TestValidateInferenceNode_UpdateExcludesSelf
✅ TestRegisterTwoNodesOnSameHost
✅ TestUpdateNodePortCollision
✅ TestUpdateNodeNoCollision
✅ TestUpdateNodeSwapPorts
✅ TestUpdateNodeHostCollisionWithPortChange
✅ TestAreHardwareNodesEqual_Version
✅ TestConvertInferenceNodeToHardwareNode_Version
✅ TestCalculateNodesDiff_FiltersUnsupportedConfiguredModelsFromHardwareDiff
✅ TestSetNodesActualStatusCommand_MlNodeVersion
✅ TestAcquireMLNode_ReturnsLockAndEndpoint
✅ TestAcquireMLNode_NoNodes
✅ TestAcquireMLNode_Concurrency
✅ TestReleaseMLNode_NodeBecomesAvailableAgain
✅ TestReleaseMLNode_UnknownLockID
✅ TestEvictExpiredLocks
✅ TestTransitionPoCToValidatingCommandV2_Success
✅ TestTransitionPoCToValidatingCommandV2_RejectsFailedNode
✅ TestTransitionPoCToValidatingCommandV2_CancelledContext
✅ TestStartPoCNodeCommandV2_Success
✅ TestStartPoCNodeCommandV2_AlreadyGenerating
✅ TestStartPoCNodeCommandV2_EncodesCallbackModelID
✅ TestStopPowV2_MockBehavior
✅ TestStartPoCNodeCommandV2_StrongerRngPropagated
✅ TestNodeWorker_BasicOperation
✅ TestNodeWorker_ErrorHandling
✅ TestNodeWorker_QueueFull
✅ TestNodeWorker_GracefulShutdown
✅ TestNodeWorker_Cancellation
✅ TestNodeWorker_MLClientInteraction
✅ TestNodeWorkGroup_AddRemoveWorkers
✅ TestNodeWorker_CheckClientVersionAlive
✅ TestStartPocCommand_Success
✅ TestStartPocCommand_AlreadyInPoC
✅ TestStartPocCommand_AdminDisabled
✅ TestStartPocCommand_ConfirmationPoC_Success
✅ TestStartPocCommand_InferencePhase_NoConfirmationEvent
✅ TestInitValidateCommand_Success
✅ TestInitValidateCommand_ConfirmationPoC_Success
✅ TestInitValidateCommand_InferencePhase_NoConfirmationEvent
✅ decentralized-api/completionapi
✅ TestGetEnforcedTokens_MultiContentChunk_TokenIdsPath
✅ TestGetEnforcedTokens_MultiContentChunk_FallbackPath
✅ TestGetEnforcedTokens_EnforcedLengthMatchesExtractLogits
✅ TestModifyRequestBody_NullLogprobsPreserved
✅ TestModifyRequestBody_ForcesReturnTokenIds
✅ TestModifyRequestBody_OverwritesClientReturnTokenIdsFalse
✅ TestStreamOptions_NoOptions
✅ TestStreamOptions_WithOptions
✅ TestStreamOptions_MalformedStreamValue
✅ TestStreamOptions_MalformedStreamOptions
✅ TestStreamFalse
✅ TestMaxTokens
✅ TestMaxTokens/WithMaxTokens
✅ TestMaxTokens/WithMaxCompletionTokens
✅ TestMaxTokens/NoTokenLimits
✅ TestModifyRequestBody_PreservesMultipartContent
✅ TestModifyRequestBody_RejectsNullMessageContentForUser
✅ TestModifyRequestBody_AcceptsToolCallingPayload
✅ TestModifyRequestBody_RejectsTextPartWithoutTextField
✅ TestModifyRequestBodyWithLogprobsMode_Processed
✅ TestModifyRequestBodyWithLogprobsMode_Raw
✅ TestModifyRequestBodyWithLogprobsMode_EmptyNoKey
✅ TestModifyRequestBodyWithLogprobsMode_OverwritesClientValue
✅ TestModifyRequestBodyWithLogprobsMode_PromptHashConsistency
✅ TestProcessingJsonResponse
✅ TestProcessingStreamedEvents
✅ TestCompletionTokenCountForStreamedResponse
✅ TestCompletionTokenCountForPartialStreamUsesLogprobEntries
✅ TestCompletionTokenCountForStreamedResponseWithTokenIds
✅ TestCompletionTokenCountForWholeResponseWithTokenIds
✅ TestCompletionTokenCountForWholeResponse
✅ TestNoLogprobsAnswer
✅ TestNumericStopReasonAnswer
✅ TestLogprobsNoTopLogprobsAnswer
✅ TestTopLogprobsAnswer
✅ TestStartCompletionStreamedEvent
✅ TestMidCompletionStreamedEvent
✅ TestEndCompletionStreamedEvent
✅ TestStreamedResponseSerialization
✅ decentralized-api/cosmosclient
✅ TestGetPartialUpgrades_SinglePage
✅ TestGetPartialUpgrades_MultiplePages
✅ TestGetPartialUpgrades_ErrorHandling
✅ TestGetPartialUpgrades_ErrorOnSecondPage
✅ TestGetPartialUpgrades_EmptyResult
✅ decentralized-api/cosmosclient/tx_manager
✅ TestBatchConsumer_FlushOnSize
✅ TestBatchConsumer_FlushOnTimeout
✅ TestBatchConsumer_SeparateQueues
✅ TestBatchConsumer_Persistence
✅ TestBatchConsumer_ValidationV2Batching
✅ TestBatchConsumer_AllQueuesIndependent
✅ TestClassifyBroadcastResponse
✅ TestClassifyBroadcastResponse/nil_response_should_retry
✅ TestClassifyBroadcastResponse/Code_0_(success)_should_observe
✅ TestClassifyBroadcastResponse/Code_19_(tx_already_in_mempool)_should_observe
✅ TestClassifyBroadcastResponse/Code_20_(mempool_full)_should_retry
✅ TestClassifyBroadcastResponse/Code_1143_(ErrDuplicateValidation)_should_fail
✅ TestClassifyBroadcastResponse/Code_1103_(ErrParticipantNotFound)_should_fail
✅ TestClassifyBroadcastResponse/Code_1146_(ErrInferenceFinishProcessed)_should_fail
✅ TestClassifyBroadcastResponse/Code_1147_(ErrInferenceStartProcessed)_should_fail
✅ TestClassifyBroadcastResponse/Unknown_code_with_connection_refused_in_RawLog_should_retry
✅ TestClassifyBroadcastResponse/Unknown_code_with_timeout_in_RawLog_should_retry
✅ TestClassifyBroadcastResponse/Unknown_code_with_non-retryable_RawLog_should_fail
✅ TestIsRetryableRawLog
✅ TestIsRetryableRawLog/connection_refused
✅ TestIsRetryableRawLog/connection_reset
✅ TestIsRetryableRawLog/i/o_timeout
✅ TestIsRetryableRawLog/context_deadline_exceeded
✅ TestIsRetryableRawLog/broken_pipe
✅ TestIsRetryableRawLog/eof
✅ TestIsRetryableRawLog/no_such_host
✅ TestIsRetryableRawLog/network_is_unreachable
✅ TestIsRetryableRawLog/no_route_to_host
✅ TestIsRetryableRawLog/certificate_error
✅ TestIsRetryableRawLog/post_failed
✅ TestIsRetryableRawLog/bad_gateway
✅ TestIsRetryableRawLog/service_unavailable
✅ TestIsRetryableRawLog/gateway_timeout
✅ TestIsRetryableRawLog/rpc_error
✅ TestIsRetryableRawLog/aborted
✅ TestIsRetryableRawLog/too_many_open_files
✅ TestIsRetryableRawLog/mempool_is_full
✅ TestIsRetryableRawLog/account_sequence_mismatch
✅ TestIsRetryableRawLog/incorrect_account_sequence
✅ TestIsRetryableRawLog/participant_not_found
✅ TestIsRetryableRawLog/duplicate_validation
✅ TestIsRetryableRawLog/inference_not_found
✅ TestIsRetryableRawLog/inference_already_processed
✅ TestIsRetryableRawLog/invalid_signature
✅ TestIsRetryableRawLog/empty_string
✅ TestIsRetryableRawLog/random_error
✅ TestIsRetryableBroadcastError
✅ TestIsRetryableBroadcastError/nil_error_should_not_be_retryable
✅ TestIsRetryableBroadcastError/connection_refused_error_should_be_retryable
✅ TestIsRetryableBroadcastError/timeout_error_should_be_retryable
✅ TestIsRetryableBroadcastError/mempool_full_error_should_be_retryable
✅ TestIsRetryableBroadcastError/business_logic_error_should_not_be_retryable
✅ TestIsRetryableBroadcastError/unknown_error_should_not_be_retryable
✅ TestIsTxErrorCritical
✅ TestIsTxErrorCritical/ErrBuildingUnsignedTx_should_be_critical
✅ TestIsTxErrorCritical/ErrFailedToSignTx_should_be_critical
✅ TestIsTxErrorCritical/ErrFailedToEncodeTx_should_be_critical
✅ TestIsTxErrorCritical/tx_too_large_should_be_critical
✅ TestIsTxErrorCritical/key_not_found_should_be_critical
✅ TestIsTxErrorCritical/invalid_bech32_string_should_be_critical
✅ TestIsTxErrorCritical/random_error_should_not_be_critical
✅ TestIsTxErrorCritical/connection_refused_should_not_be_critical
✅ TestPack_Unpack_Msg
✅ TestPack_Unpack_Batch
✅ TestRequeue_IncrementsAttemptsAndSetsTime
✅ TestRequeue_MaxAttemptsReturnsNil
✅ TestRequeue_PublishesToSendStream
✅ TestTxToSend_RequeueTimeSerializes
✅ TestTxToSend_ZeroRequeueTimePreserved
✅ TestDelayCheck_RecentRequeueShouldBeDelayed
✅ TestDelayCheck_OldRequeueProcessedImmediately
✅ TestDelayCheck_FirstAttemptNoDelay
✅ TestMaxAttemptsCheck
✅ TestMaxAttemptsCheck/attempts_0
✅ TestMaxAttemptsCheck/attempts_50
✅ TestMaxAttemptsCheck/attempts_99
✅ TestMaxAttemptsCheck/attempts_100_(max)
✅ TestMaxAttemptsCheck/attempts_101_(over_max)
✅ TestRequeueIntegration_MultipleRequeues
✅ decentralized-api/internal
✅ TestBandwidthLimiter_CanAcceptRequest
✅ TestBandwidthLimiter_RecordAndRelease
✅ TestBandwidthLimiter_Concurrency
✅ TestBandwidthLimiter_Cleanup
✅ TestBandwidthParameterLoading
✅ TestConfigManagerInterface
✅ TestBandwidthLimiter_InferenceCountLimit
✅ TestBandwidthLimiter_InferenceRecordAndRelease
✅ TestBandwidthLimiter_InferenceDisabled
✅ TestBandwidthParameterLoadingWithInferenceLimit
✅ decentralized-api/internal/authzcache
✅ TestAuthzCache_CacheHit
✅ TestAuthzCache_CacheExpired
✅ TestAuthzCache_CacheKeyFormat
✅ TestAuthzCache_DifferentMsgTypes
✅ TestAuthzCache_GetPubKeyForSigner
✅ decentralized-api/internal/bls
✅ TestVerifyShareAgainstCommitments_TimingComparison
✅ TestComputeG2Commitments_TimingComparison
✅ TestPartialSignature_TimingComparison
✅ TestBLSCryptographicFunctions
✅ TestPolynomialGeneration
✅ TestPolynomialGeneration/Small_degree
✅ TestPolynomialGeneration/Medium_degree
✅ TestPolynomialGeneration/Large_degree
✅ TestCommitmentCalculation
✅ TestShareEncryption
✅ TestShareEncryption/73686172655f6461
✅ TestShareEncryption/73686172655f6461#01
✅ TestShareEncryption/6c6f6e6765725f73
✅ TestInvalidPublicKeyEncryption
✅ TestInvalidPublicKeyEncryption/Empty_key
✅ TestInvalidPublicKeyEncryption/Too_short
✅ TestInvalidPublicKeyEncryption/Too_long
✅ TestInvalidPublicKeyEncryption/Invalid_prefix
✅ TestPolynomialEvaluation
✅ TestPolynomialEvaluation/00
✅ TestPolynomialEvaluation/01
✅ TestPolynomialEvaluation/05
✅ TestPolynomialEvaluation/0a
✅ TestPolynomialEvaluation/64
✅ TestDeterministicPolynomialEvaluation
✅ TestPolynomialEvaluationEdgeCases
✅ TestPolynomialEvaluationEdgeCases/empty_polynomial_returns_zero
✅ TestPolynomialEvaluationEdgeCases/constant_polynomial_returns_constant
✅ TestPolynomialEvaluationEdgeCases/degree_one_polynomial_evaluates_correctly
✅ TestKeyringEncryptDecryptBasic
✅ TestKeyringMultipleParticipants
✅ TestKeyringFromPrivateKey
✅ TestKeyringLargeData
✅ TestKeyringErrorHandling
✅ TestKeyringRoundTripConsistency
✅ TestKeyringVsDealerEncryption
✅ TestIsQueuedForRetry_MatchesQueuedSentinelOnly
✅ TestIsQueuedForRetry_MatchesQueuedSentinelOnly/queued_sentinel
✅ TestIsQueuedForRetry_MatchesQueuedSentinelOnly/enqueue_failed_sentinel
✅ TestDealerOpeningsPersistedAcrossManagerRestart
✅ TestDeleteDealerOpeningsPersists
✅ TestNewBlsManager
✅ TestVerificationResult
✅ TestCountTrueValues
✅ TestCountTrueValues/empty_slice
✅ TestCountTrueValues/all_false
✅ TestCountTrueValues/all_true
✅ TestCountTrueValues/mixed
✅ TestCountTrueValues/single_true
✅ TestCountTrueValues/single_false
✅ TestVerificationCache
✅ TestVerificationCacheEdgeCases
✅ TestVerificationCacheDelete
✅ TestProcessDKGFailedClearsVerificationCache
✅ TestVerifierCacheIntegration
✅ TestStoreVerificationResult
✅ TestProcessVerifyingPhaseStartedWithExistingResult
✅ TestProcessGroupPublicKeyGeneratedWithExistingResult
✅ TestProcessGroupPublicKeyGeneratedEventParsing
✅ TestRecomputeAggregatedSharesFromConsensusValidDealers
✅ TestRecomputeAggregatedSharesFromConsensusValidDealers_MismatchNoChange
✅ decentralized-api/internal/devshard
✅ TestChainBridgeStubs
✅ TestChainBridgeImplementsInterface
✅ TestProcessHTTPResponse_SSE
✅ TestProcessHTTPResponse_SSEWithCharset
✅ TestProcessHTTPResponse_JSON
✅ TestSSEScanner
✅ TestResponseHashComputation
✅ TestProcessExecutionHTTPResponse_PartialSSEAfterInterruption
✅ TestFetchPayloadsHTTPWithTimeout
✅ TestCanonicalizePrompt
✅ TestModifyRequestBody
✅ TestDevshardPayloadKey
✅ TestDevshardPayloadKey_DifferentEscrows
✅ TestStatsShardsListsCurrentEpochWithoutDetails
✅ TestStatsShardDetailReturnsStatsOnly
✅ TestRecoverSessions_HappyPath
✅ TestRecoverSessions_LogsRecoveryDurations
✅ TestRecoverSessions_LoadsEscrowsInParallel
✅ TestRecoverSessions_UsesSnapshotBeforeReplay
✅ TestRecoverSessions_Nonce0
✅ TestGetOrCreate_RecoversExistingStoredSession
✅ TestSessionServer_DefaultsToInitializing
✅ TestSessionServer_UnavailableIncludesCause
✅ TestSessionServer_GatedUntilReady
✅ TestCreateSession_BindsConfiguredVersion
✅ TestCreateSession_RejectsExistingDifferentVersion
✅ TestCreateSession_DoesNotPersistWhenSignerNotInGroup
✅ TestRetrievePayloadsFallsBackToChainEscrowEpoch
✅ TestRetrievePayloadsKeyIncludesEscrowID
✅ TestRetrievePayloadsEpochZeroFallsBackToCurrentEpoch
✅ TestRecoverSessions_EmptyStore
✅ TestRecoverSessions_StateRootMismatch
✅ TestCompareLogitsMatching
✅ TestCompareLogitsDifferentTokens
✅ TestEnforcedTokensExtraction
✅ TestValidationRequestBodyConstruction
✅ TestResponseFromPayload
✅ TestEvaluateValidationResult_UsesModelThreshold
✅ TestEvaluateValidationResult_UsesModelThreshold/above_threshold_passes
✅ TestEvaluateValidationResult_UsesModelThreshold/equal_threshold_fails
✅ TestEvaluateValidationResult_UsesModelThreshold/below_threshold_fails
✅ TestEvaluateValidationResult_KnownFailureTypesFailWithoutThreshold
✅ TestEvaluateValidationResult_UnknownTypeErrors
✅ TestValidationThresholdResolverFailsClosed
✅ TestTokenCountValidation_MatchingUsage
✅ TestTokenCountValidation_AllowsTokenDriftUpToThreshold
✅ TestTokenCountValidation_InflatedOutputTokens
✅ TestTokenCountValidation_InflatedInputTokens
✅ decentralized-api/internal/event_listener
✅ TestBlockObserver_StressBackpressure
✅ TestBlockObserver_NoSpuriousWakeups
✅ TestProcessBlock_ParsesEvents
⚪ TestProcessBlock_RealNodeParse
✅ TestParseInferenceFinishedRecords_Success
✅ TestParseInferenceFinishedRecords_ZeroTimestamps
✅ TestParseInferenceFinishedRecords_MissingRequiredField
✅ TestParseInferenceStatusUpdatedRecords_Success
✅ TestParseInferenceStatusUpdatedRecords_MissingStatus
✅ Test
✅ TestInferenceReconciliation
✅ TestRegularPocScenario
✅ TestNodeUpdateSwitchesPocAddresses
✅ TestNodeDisableScenario_Integration
✅ TestNodeEnableScenario_Integration
✅ TestFullEpochTransitionWithPocCommands_Integration
✅ TestBasicSetup
✅ TestPoCRetry
✅ TestOnNewBlockDispatcher_ShouldTriggerReconciliation
✅ TestOnNewBlockDispatcher_ShouldTriggerReconciliation/should_trigger_due_to_block_interval
✅ TestOnNewBlockDispatcher_ShouldTriggerReconciliation/should_not_trigger_-_too_few_blocks_and_recent_time
✅ TestOnNewBlockDispatcher_ShouldTriggerReconciliation/should_trigger_due_to_time_interval
✅ TestParseNewBlockInfo
✅ TestBasicQueueOperations
✅ TestQueueClosing
✅ TestConcurrentAccess
✅ TestQueueSizeApproximation
✅ TestQueueOrdering
✅ TestLargeItemCount
✅ TestTypeVariance
✅ TestTypeVariance/StringQueue
✅ TestTypeVariance/StructQueue
✅ TestEmptyQueueBehavior
✅ TestCloseQueueTwice
✅ TestQueueMemoryManagement
✅ TestQueueStress
✅ TestQueueWithDelayedConsumers
✅ TestQueueWithDelayedProducers
✅ TestQueueInterface
✅ TestQueueWithTimeout
✅ decentralized-api/internal/modelmanager
✅ TestIsInDownloadWindow
✅ TestIsInDownloadWindow/nil_epoch_state
✅ TestIsInDownloadWindow/not_synced
✅ TestIsInDownloadWindow/not_in_inference_phase
✅ TestIsInDownloadWindow/before_window_start
✅ TestIsInDownloadWindow/after_window_end
✅ TestIsInDownloadWindow/inside_window
✅ TestCheckNodeModels
✅ TestCheckNodeModels/model_not_found_triggers_download
✅ TestCheckNodeModels/partial_model_triggers_download
✅ TestCheckNodeModels/already_downloading_skips_download
✅ TestCheckNodeModels/already_downloaded_skips_download
✅ TestCheckNodeModels/endpoint_not_implemented_stops_checking_node
✅ TestCheckNodeModels/network_error_continues_to_next_model
✅ TestCheckNodeModels/multiple_models_in_config
✅ TestURLFormatting
✅ TestURLFormatting/PoC_URL_without_version
✅ TestURLFormatting/PoC_URL_with_version
✅ TestURLFormatting/Inference_URL_without_version
✅ TestURLFormatting/Inference_URL_with_version
✅ TestURLFormatting/URL_with_version_helper
✅ TestURLFormatting/URL_without_version_helper_(empty_string)
✅ TestTransformGPUDevicesToHardware
✅ TestTransformGPUDevicesToHardware/identical_GPUs_grouped
✅ TestTransformGPUDevicesToHardware/mixed_GPU_types
✅ TestTransformGPUDevicesToHardware/skip_unavailable_GPUs
✅ TestTransformGPUDevicesToHardware/skip_GPUs_with_error
✅ TestTransformGPUDevicesToHardware/skip_GPUs_without_memory_info
✅ TestTransformGPUDevicesToHardware/memory_conversion_MB_to_GB
✅ TestTransformGPUDevicesToHardware/empty_device_list
✅ TestCheckAndUpdateGPUs
✅ TestCheckAndUpdateGPUs/successful_GPU_fetch_and_update
✅ TestCheckAndUpdateGPUs/ErrAPINotImplemented_handling
✅ TestCheckAndUpdateGPUs/network_error_handling
✅ TestCheckAndUpdateGPUs/broker_queue_failure
✅ TestCheckAndUpdateGPUs/config_save_failure
✅ TestCheckAndUpdateGPUs/empty_GPU_list
✅ decentralized-api/internal/server/admin
✅ TestGetUpgradeStatus
✅ TestGetUpgradeStatus/no_upgrade_plan
✅ TestGetUpgradeStatus/with_upgrade_plan
✅ TestPostVersionStatus
✅ TestPostVersionStatus/valid_request
✅ TestPostVersionStatus/missing_version
✅ TestGenerateSummary_AllPass
✅ TestGenerateSummary_WithFailures
✅ TestGenerateSummary_WithUnavailable
✅ TestGenerateSummary_MLNodeWithNoGPUs
✅ TestGenerateSummary_MLNodeWithUnavailableGPU
✅ TestURLHelperFunctions
✅ TestURLHelperFunctions/formatURL
✅ TestURLHelperFunctions/formatURLWithVersion
✅ TestURLHelperFunctions/getPoCUrl
✅ TestURLHelperFunctions/getPoCUrlVersioned
✅ TestURLHelperFunctions/getPoCUrlWithVersion_empty_version
✅ TestURLHelperFunctions/getPoCUrlWithVersion_with_version
✅ TestBuildRecommendationMap
✅ TestCheckStatusConstants
✅ decentralized-api/internal/server/middleware
✅ TestExtractError
✅ decentralized-api/internal/server/mlnode
✅ TestV2GeneratedCallbackRequiresModelScopedRoute
✅ TestV2ValidatedCallbackUsesPathModelID
❌ decentralized-api/internal/server/public
✅ TestModelsEndpoint_Minimal
✅ TestStringOrArray_Unmarshal
✅ TestPostCompletions_BatchPrompts_ReturnsBadRequest
✅ TestPostCompletions_StreamWithBatchPrompts_ReturnsBadRequest
✅ TestPostCompletions_OversizedBody_ReturnsRequestEntityTooLarge
✅ TestGetAllParticipants_PaginationAndPinnedHeight
✅ TestGetAccountByAddress_HappyPath
✅ TestGetParticipantByAddress_HappyPath
✅ TestDesiredPolicy_OpenAICompat
✅ TestDesiredPolicy_OpenAICompat/developer_text_valid
✅ TestDesiredPolicy_OpenAICompat/developer_with_name_valid
✅ TestDesiredPolicy_OpenAICompat/developer_empty_invalid
✅ TestDesiredPolicy_OpenAICompat/developer_null_invalid
✅ TestDesiredPolicy_OpenAICompat/developer_missing_invalid
✅ TestDesiredPolicy_OpenAICompat/developer_tool_calls_invalid
✅ TestDesiredPolicy_OpenAICompat/system_text_valid
✅ TestDesiredPolicy_OpenAICompat/system_with_name_valid
✅ TestDesiredPolicy_OpenAICompat/system_whitespace_invalid
✅ TestDesiredPolicy_OpenAICompat/system_null_invalid
✅ TestDesiredPolicy_OpenAICompat/system_missing_invalid
✅ TestDesiredPolicy_OpenAICompat/system_tool_call_id_invalid
✅ TestDesiredPolicy_OpenAICompat/user_text_valid
✅ TestDesiredPolicy_OpenAICompat/user_with_name_valid
✅ TestDesiredPolicy_OpenAICompat/user_image_url_part_valid
✅ TestDesiredPolicy_OpenAICompat/user_custom_typed_part_valid
✅ TestDesiredPolicy_OpenAICompat/user_empty_invalid
✅ TestDesiredPolicy_OpenAICompat/user_null_invalid
✅ TestDesiredPolicy_OpenAICompat/user_missing_invalid
✅ TestDesiredPolicy_OpenAICompat/user_tool_calls_invalid
✅ TestDesiredPolicy_OpenAICompat/assistant_text_valid
✅ TestDesiredPolicy_OpenAICompat/assistant_with_name_valid
✅ TestDesiredPolicy_OpenAICompat/assistant_null+tool_calls_valid
✅ TestDesiredPolicy_OpenAICompat/assistant_missing+tool_calls_valid
✅ TestDesiredPolicy_OpenAICompat/assistant_null_without_tool_calls_invalid
✅ TestDesiredPolicy_OpenAICompat/assistant_missing_without_tool_calls_invalid
✅ TestDesiredPolicy_OpenAICompat/assistant_tool_calls_wrong_type_invalid
✅ TestDesiredPolicy_OpenAICompat/assistant_tool_calls_not_array_invalid
✅ TestDesiredPolicy_OpenAICompat/assistant_legacy_function_call_valid
✅ TestDesiredPolicy_OpenAICompat/tool_valid
✅ TestDesiredPolicy_OpenAICompat/tool_missing_tool_call_id_invalid
✅ TestDesiredPolicy_OpenAICompat/tool_empty_tool_call_id_invalid
✅ TestDesiredPolicy_OpenAICompat/tool_null_content_invalid
✅ TestDesiredPolicy_OpenAICompat/tool_missing_content_invalid
✅ TestDesiredPolicy_OpenAICompat/legacy_function_role_valid
✅ TestDesiredPolicy_OpenAICompat/legacy_function_role_missing_name_invalid
✅ TestDesiredPolicy_OpenAICompat/sequence_valid
✅ TestDesiredPolicy_OpenAICompat/orphan_tool_invalid
✅ TestDesiredPolicy_OpenAICompat/mismatched_tool_call_id_invalid
✅ TestDesiredPolicy_OpenAICompat/messages_not_array_invalid
✅ TestDesiredPolicy_OpenAICompat/messages_missing_invalid_for_chat
✅ TestDesiredPolicy_OpenAICompat/message_not_object_invalid
✅ TestDesiredPolicy_OpenAICompat/content_wrong_type_invalid
✅ TestDesiredPolicy_OpenAICompat/content_bool_invalid
✅ TestDesiredPolicy_OpenAICompat/content_object_invalid
✅ TestDesiredPolicy_OpenAICompat/unknown_role_invalid
✅ TestValidatePayloadRequestSignature_ValidSignature
✅ TestValidatePayloadRequestSignature_InvalidSignature
✅ TestValidatePayloadRequestSignature_WrongTimestamp
✅ TestValidatePayloadRequestSignature_WrongInferenceId
✅ TestValidatePayloadRequestSignature_MultipleGrantees
✅ TestValidatePayloadRequestSignature_WrongEpochId
✅ TestValidatePayloadRequestTimestamp_Valid
✅ TestValidatePayloadRequestTimestamp_TooOld
✅ TestValidatePayloadRequestTimestamp_TooFarInFuture
✅ TestExecutorSignature_Format
✅ TestExecutorSignature_HashMismatchDetection
✅ TestBuildPocProofsSignPayload
✅ TestStringInt64_UnmarshalJSON
✅ TestStringInt64_UnmarshalJSON/number
✅ TestStringInt64_UnmarshalJSON/string
✅ TestStringInt64_UnmarshalJSON/large_number
✅ TestStringInt64_UnmarshalJSON/large_string
✅ TestStringUint32_UnmarshalJSON
✅ TestStringUint32_UnmarshalJSON/number
✅ TestStringUint32_UnmarshalJSON/string
✅ TestStringUint32_UnmarshalJSON/zero
✅ TestStringUint32_UnmarshalJSON/zero_string
✅ TestVerifyPocProofsSignatureWithPubkey_InvalidSignatureEncoding
✅ TestVerifyPocProofsSignatureWithPubkey_InvalidPubkeyEncoding
✅ TestVerifyPocProofsSignatureWithPubkey_InvalidSignature
✅ TestPocProofsRequest_MaxLeafIndices
✅ TestBuildPocProofsSignPayload_KotlinCompatibility
✅ TestGetPocArtifactsState_RequiresModelID
✅ TestGetPocArtifactsState_UsesModelScopedStore
✅ TestPostPocProofs_UsesModelScopedStore
✅ TestPostChat_MissingAuthorization
✅ TestPostChat_MissingModel
✅ TestPostChat_TransferAgentNotAllowed
✅ TestValidateRequester_ParticipantNotFound
✅ TestValidateRequester_InsufficientBalance
✅ TestValidateRequester_UnsupportedModel
✅ TestValidateRequester_ModelValidationUnavailable
✅ TestValidateRequest_InvalidTimestamp
✅ TestHandleTransferRequest_CapacityLimit
✅ TestInterruption_S1_MLNodeClosesStream_VerifyFinishInference
✅ TestInterruption_S4_StreamSuccess_VerifyFinishInference
✅ TestInterruption_J1_MLNodeClosesJSON_VerifyFinishInference
✅ TestInterruption_J4_JSONSuccess_VerifyFinishInference
✅ TestInterruption_E1_MLNode400_VerifyFinishInference
✅ TestInterruption_E3_MLNode500_VerifyFinishInference
❌ TestInterruption_ClientDisconnect_StreamingComplete_VerifyFinishInference
2026/06/10 14:59:29 Warning: KEYRING_PASSWORD environment variable not set - keyring operations may fail
✅ TestInterruption_ClientDisconnect_JSONComplete_VerifyFinishInference
✅ TestInterruption_ClientDisconnect_BeforeMLNodeResponse_VerifyFinishInference
✅ TestInterruption_MLNodeTimeout_VerifyFinishInference
✅ TestStorePayloadsToStorage_Success
✅ TestStorePayloadsToStorage_NilStorage
✅ TestStorePayloadsToStorage_NilPhaseTracker
✅ TestStorePayloadsToStorage_Retrieval
✅ TestFileStorageIntegration
✅ TestEmptyButParseableResponsePayload_EnforcedTokensEmptySlice
✅ TestReadRequestBody_NormalSize
✅ TestReadRequestBody_ExceedsMaxSize
✅ TestReadRequestBody_ExactlyMaxSize
✅ TestReadRequestBody_EmptyBody
✅ TestMaxRequestBodySizeConstant
✅ TestMapRequestBodyReadError
✅ TestMapRequestBodyReadError/max_bytes_exceeded
✅ TestMapRequestBodyReadError/unexpected_EOF
✅ TestMapRequestBodyReadError/read_timeout
✅ TestMapRequestBodyReadError/read_canceled
✅ TestMapRequestBodyReadError/generic_read_error
✅ TestMapExecutorCompletionsUnsupportedError
✅ TestMapExecutorCompletionsUnsupportedError/completions_endpoint_not_found
✅ TestMapExecutorCompletionsUnsupportedError/completions_method_not_allowed
✅ TestMapExecutorCompletionsUnsupportedError/completions_not_implemented
✅ TestMapExecutorCompletionsUnsupportedError/chat_path_keeps_original_status_handling
✅ TestMapExecutorCompletionsUnsupportedError/completions_other_status_is_not_remapped
✅ TestReadRequest_AcceptsMultipartContent
✅ TestMultipartContent_RoundTrip
✅ TestReadRequest_AcceptsMissingMessageContent
✅ TestReadRequest_AcceptsToolCallingPayload
✅ TestReadRequest_RejectsUnsupportedContentType
✅ TestProxyResponse_HashConsistency
✅ TestDefaultClientFollowsRedirects
✅ TestNoRedirectClient
✅ TestGetStatsModels
✅ TestGetStatsDeveloperInferences
✅ TestGetStatsSummaryTime
✅ TestGetStatsSummaryEpochs_RequiresEpochsN
✅ TestValidateTransferRequest_ValidSignature
✅ TestValidateTransferRequest_InvalidSignature
✅ TestValidateTransferRequest_WrongTimestamp
✅ TestValidateExecuteRequestWithGrantees_ValidSignature
✅ TestValidateExecuteRequestWithGrantees_InvalidSignature
✅ TestValidateExecuteRequestWithGrantees_MultipleGrantees
✅ TestValidateExecuteRequestWithGrantees_FallbackToHashedBody
✅ decentralized-api/internal/validation
✅ TestBuildPayloadRequestURL_DevshardPath
✅ TestBuildPayloadRequestURL_VersionedDevshardPath
✅ TestBuildPayloadRequestURL_PublicPath
✅ TestVerifyPayloadHashes_Valid
✅ TestVerifyPayloadHashes_EmptyExpectedHashes
✅ TestVerifyPayloadHashes_PromptMismatch
✅ TestVerifyPayloadHashes_ResponseMismatch
✅ TestBuildPayloadRequestURL
✅ TestBuildPayloadRequestURL/simple_base64_ID
✅ TestBuildPayloadRequestURL/base64_ID_with_slash
✅ TestBuildPayloadRequestURL/base64_ID_with_plus
✅ TestBuildPayloadRequestURL/base64_ID_with_slash_and_plus
✅ TestBuildPayloadRequestURL/base64_ID_with_equals_padding
✅ TestValidation
✅ TestValidationQuant
✅ TestIsEmptySentinelTokens
✅ TestIsEmptySentinelTokens/no_sentinel
✅ TestIsEmptySentinelTokens/sentinel_present
✅ TestIsEmptySentinelTokens/sentinel_among_others
✅ TestIsEmptySentinelTokens/empty_token_list
✅ TestHasNonNumericTokens
✅ TestHasNonNumericTokens/valid
✅ TestHasNonNumericTokens/text_string
✅ TestHasNonNumericTokens/negative_primary
✅ TestHasNonNumericTokens/negative_top_token
✅ TestHasNonNumericTokens/out_of_range_large
✅ FuzzCompareLogits
✅ FuzzCompareLogits/seed#0
✅ FuzzCompareLogits/seed#1
✅ FuzzCompareLogits/seed#2
✅ FuzzCompareLogits/seed#3
✅ decentralized-api/mlnodeclient
✅ TestErrAPINotImplemented
✅ TestErrAPINotImplemented/error_message_format
✅ TestErrAPINotImplemented/errors.Is_comparison
✅ TestErrAPINotImplemented/type_assertion
✅ TestErrAPINotImplemented/different_status_codes
✅ TestErrAPINotImplemented/not_equal_to_generic_error
✅ TestClient_GetGPUDevices
✅ TestClient_GetGPUDevices/successful_response
✅ TestClient_GetGPUDevices/empty_devices_list
✅ TestClient_GetGPUDevices/API_not_implemented_-_404
✅ TestClient_GetGPUDevices/API_not_implemented_-_405
✅ TestClient_GetGPUDevices/server_error
✅ TestClient_GetGPUDriver
✅ TestClient_GetGPUDriver/successful_response
✅ TestClient_GetGPUDriver/API_not_implemented
✅ TestClient_GetGPUDriver/service_unavailable
✅ TestMockClient_GetGPUDevices
✅ TestMockClient_GetGPUDevices/returns_configured_devices
✅ TestMockClient_GetGPUDevices/returns_error_when_configured
✅ TestMockClient_GetGPUDevices/returns_empty_list_by_default
✅ TestMockClient_GetGPUDriver
✅ TestMockClient_GetGPUDriver/returns_default_driver_info
✅ TestMockClient_GetGPUDriver/returns_configured_driver_info
✅ TestMockClient_GetGPUDriver/returns_error_when_configured
✅ TestMockClient_CheckModelStatus
✅ TestMockClient_CheckModelStatus/returns_not_found_for_unknown_model
✅ TestMockClient_CheckModelStatus/returns_downloading_status
✅ TestMockClient_CheckModelStatus/returns_cached_model_status
✅ TestMockClient_DownloadModel
✅ TestMockClient_DownloadModel/starts_download
✅ TestMockClient_DownloadModel/handles_specific_commit
✅ TestMockClient_DownloadModel/returns_error_when_configured
✅ TestMockClient_DeleteModel
✅ TestMockClient_DeleteModel/deletes_cached_model
✅ TestMockClient_DeleteModel/cancels_downloading_model
✅ TestMockClient_ListModels
✅ TestMockClient_ListModels/returns_empty_list_by_default
✅ TestMockClient_ListModels/returns_cached_models
✅ TestMockClient_GetDiskSpace
✅ TestMockClient_GetDiskSpace/returns_default_disk_space
✅ TestMockClient_GetDiskSpace/returns_configured_disk_space
✅ TestGetModelKey
✅ TestGetModelKey/without_commit
✅ TestGetModelKey/with_commit
✅ TestGetModelKey/with_empty_commit_string
✅ TestClient_CheckModelStatus
✅ TestClient_CheckModelStatus/model_downloaded
✅ TestClient_CheckModelStatus/model_downloading_with_progress
✅ TestClient_CheckModelStatus/model_not_found
✅ TestClient_CheckModelStatus/API_not_implemented
✅ TestClient_DownloadModel
✅ TestClient_DownloadModel/successful_download_start
✅ TestClient_DownloadModel/already_downloading_-_conflict
✅ TestClient_DownloadModel/too_many_requests
✅ TestClient_DownloadModel/API_not_implemented
✅ TestClient_DeleteModel
✅ TestClient_DeleteModel/successful_deletion
✅ TestClient_DeleteModel/cancelled_download
✅ TestClient_DeleteModel/API_not_implemented
✅ TestClient_ListModels
✅ TestClient_ListModels/successful_list_with_models
✅ TestClient_ListModels/empty_list
✅ TestClient_ListModels/API_not_implemented
✅ TestClient_NodeState_EnrichedResponse
✅ TestClient_NodeState_EnrichedResponse/extra_fields_in_enriched_state_response_are_ignored
✅ TestClient_GetDiskSpace
✅ TestClient_GetDiskSpace/successful_response
✅ TestClient_GetDiskSpace/API_not_implemented
✅ TestToValidatedWeight_FraudDetected
✅ TestToValidatedWeight_NTotalZero
✅ TestToValidatedWeight_NTotalNegative
✅ TestToValidatedWeight_Valid
✅ TestToValidatedWeight_ValidSmall
✅ decentralized-api/nodemanager
✅ TestAcquireMLNode_Success
✅ TestAcquireMLNode_NoNodes
✅ TestAcquireMLNode_QueueFull
✅ TestReleaseMLNode_Success
✅ TestReleaseMLNode_TransportError
✅ TestReleaseMLNode_NotFound
✅ decentralized-api/payloadstorage
✅ TestNewPayloadStorage_RetryInterval
✅ TestNewPayloadStorage_RetryInterval/Default_(unset)
✅ TestNewPayloadStorage_RetryInterval/Custom_valid_duration
✅ TestNewPayloadStorage_RetryInterval/Invalid_duration_(fallback_to_default)
✅ TestNewPayloadStorage_RetryInterval/Zero_duration_(fallback_to_default)
✅ TestFileStorage_StoreRetrieve
✅ TestFileStorage_RetrieveNotFound
✅ TestFileStorage_RetrieveWrongEpoch
✅ TestFileStorage_PruneEpoch
✅ TestFileStorage_AtomicWrite
✅ TestComputePromptHash_Reproducible
✅ TestComputePromptHash_KeyOrderIndependent
✅ TestComputeResponseHash_Reproducible
✅ TestComputeResponseHash_HashesFullPayload
✅ TestComputeResponseHash_IncludesLogprobs
✅ TestFullCycle_HashIntegrity
✅ TestFileStorage_FilesystemUnsafeInferenceIds
✅ TestFileStorage_FilesystemUnsafeInferenceIds/base64_with_forward_slashes
✅ TestFileStorage_FilesystemUnsafeInferenceIds/base64_with_plus_signs
✅ TestFileStorage_FilesystemUnsafeInferenceIds/base64_with_multiple_slashes
✅ TestFileStorage_FilesystemUnsafeInferenceIds/mixed_unsafe_characters
✅ TestManagedStorage_CacheHit
✅ TestManagedStorage_CacheExpiration
✅ TestManagedStorage_StoreTracksMaxEpoch
✅ TestManagedStorage_AutoPruneTriggersInCleanup
✅ TestManagedStorage_AutoPruneSkipsOldEpochs
✅ TestManagedStorage_NoPruneWhenBelowRetainCount
✅ TestPostgresStorage_StoreAndRetrieve
✅ TestPostgresStorage_PartitionAutoCreation
✅ TestPostgresStorage_PruneEpoch
✅ TestPostgresStorage_SchemaAutoCreation
✅ TestPostgresStorage_IdempotentStore
✅ TestHybridStorage_FallbackOnPGError
✅ TestHybridStorage_PGPrimary
✅ decentralized-api/poc
✅ TestCommitWorker_ShouldAcceptStoreCommit_RegularPoC
✅ TestCommitWorker_ShouldAcceptStoreCommit_RegularPoC/accept_during_generate_phase_in_exchange_window
✅ TestCommitWorker_ShouldAcceptStoreCommit_RegularPoC/accept_during_generate_wind_down_phase
✅ TestCommitWorker_ShouldAcceptStoreCommit_RegularPoC/reject_during_inference_phase
✅ TestCommitWorker_ShouldAcceptStoreCommit_RegularPoC/reject_during_validation_phase
✅ TestCommitWorker_ShouldHaveDistributedWeights
✅ TestCommitWorker_ShouldHaveDistributedWeights/validate_phase
✅ TestCommitWorker_ShouldHaveDistributedWeights/validate_wind_down
✅ TestCommitWorker_ShouldHaveDistributedWeights/wind_down_after_generation_end
✅ TestCommitWorker_ShouldHaveDistributedWeights/wind_down_before_generation_end
✅ TestCommitWorker_ShouldHaveDistributedWeights/generate_phase
✅ TestCommitWorker_ShouldHaveDistributedWeights/inference_phase
✅ TestCommitWorker_GetPocStageHeight_RegularPoC
✅ TestCommitWorker_GetPocStageHeight_ConfirmationPoC
✅ TestCommitWorker_MaybeSubmitCommit_SkipsUnchanged
✅ TestCommitWorker_MaybeSubmitCommit_BatchesModels
✅ TestCommitWorker_StartAndStop
✅ TestCommitWorker_SubmitWeightDistribution_NoCommitFound
✅ TestCommitWorker_SubmitWeightDistribution_BatchesModels
✅ TestCommitWorker_SubmitWeightDistribution_OneModelAlreadyOnChain
✅ TestCommitWorker_HasPendingWeightDistribution
✅ TestCommitWorker_SubmitWeightDistribution_UpdatesLastAttemptOnNoOp
✅ TestGetWeightDistribution_ExactMatch
✅ TestGetWeightDistribution_ScaleUp
✅ TestGetWeightDistribution_ScaleUp/small_scale_up
✅ TestGetWeightDistribution_ScaleUp/large_scale_up
✅ TestGetWeightDistribution_ScaleUp/scale_from_original_error_case
✅ TestGetWeightDistribution_ScaleDown
✅ TestGetWeightDistribution_ScaleDown/small_scale_down
✅ TestGetWeightDistribution_ScaleDown/large_scale_down
✅ TestGetWeightDistribution_SingleNode
✅ TestGetWeightDistribution_ManyNodesSmallWeights
✅ TestGetWeightDistribution_LargeDiffRoundRobin
✅ TestGetWeightDistribution_Errors
✅ TestGetWeightDistribution_Errors/empty_distribution
✅ TestGetWeightDistribution_Errors/zero_target
✅ TestGetWeightDistribution_Errors/zero_sum_distribution
✅ TestGetWeightDistribution_AlwaysExactSum
✅ TestGetWeightDistribution_AlwaysExactSum/local100_target200_nodes2
✅ TestGetWeightDistribution_AlwaysExactSum/local200_target100_nodes2
✅ TestGetWeightDistribution_AlwaysExactSum/local333_target500_nodes3
✅ TestGetWeightDistribution_AlwaysExactSum/local500_target333_nodes3
✅ TestGetWeightDistribution_AlwaysExactSum/local1_target1000_nodes5
✅ TestGetWeightDistribution_AlwaysExactSum/local10464_target10688_nodes2
✅ TestGetWeightDistribution_AlwaysExactSum/local10688_target10464_nodes2
✅ TestGetWeightDistribution_AlwaysExactSum/local7_target1000_nodes7
✅ TestGetWeightDistribution_AlwaysExactSum/local1000_target7_nodes7
✅ TestCommitWorker_HeightChangeResetsState
✅ TestCommitWorker_RetryLogic
✅ TestCommitWorker_RetryLogic/first_attempt_triggers_immediately
✅ TestCommitWorker_RetryLogic/retry_after_interval
✅ TestCommitWorker_RetryLogic/no_retry_within_interval
✅ TestShouldAcceptGeneratedArtifacts_RegularPoC
✅ TestShouldAcceptGeneratedArtifacts_RegularPoC/generate_phase_accepts
✅ TestShouldAcceptGeneratedArtifacts_RegularPoC/wind_down_accepts_in_exchange_window
✅ TestShouldAcceptGeneratedArtifacts_RegularPoC/wind_down_rejects_after_exchange_window
✅ TestShouldAcceptGeneratedArtifacts_RegularPoC/validate_phase_rejects
✅ TestShouldAcceptGeneratedArtifacts_RegularPoC/validate_wind_down_rejects
✅ TestShouldAcceptGeneratedArtifacts_RegularPoC/inference_phase_rejects
✅ TestShouldAcceptGeneratedArtifacts_ConfirmationPoC
✅ TestShouldAcceptGeneratedArtifacts_ConfirmationPoC/generation_accepts_in_window
✅ TestShouldAcceptGeneratedArtifacts_ConfirmationPoC/generation_rejects_after_window
✅ TestShouldAcceptGeneratedArtifacts_ConfirmationPoC/validation_rejects
✅ TestShouldAcceptGeneratedArtifacts_ConfirmationPoC/grace_period_rejects
✅ TestShouldAcceptGeneratedArtifacts_ConfirmationPoC/completed_rejects
✅ TestShouldAcceptGeneratedArtifacts_NilOrNotSynced
✅ TestShouldAcceptValidatedArtifacts_RegularPoC
✅ TestShouldAcceptValidatedArtifacts_RegularPoC/validate_phase_accepts
✅ TestShouldAcceptValidatedArtifacts_RegularPoC/validate_wind_down_accepts
✅ TestShouldAcceptValidatedArtifacts_RegularPoC/generate_phase_rejects
✅ TestShouldAcceptValidatedArtifacts_RegularPoC/generate_wind_down_rejects
✅ TestShouldAcceptValidatedArtifacts_RegularPoC/inference_phase_rejects
✅ TestShouldAcceptValidatedArtifacts_ConfirmationPoC
✅ TestShouldAcceptValidatedArtifacts_ConfirmationPoC/confirmation_validation_accepts
✅ TestShouldAcceptValidatedArtifacts_ConfirmationPoC/confirmation_generation_rejects
✅ TestShouldAcceptValidatedArtifacts_ConfirmationPoC/confirmation_grace_period_rejects
✅ TestShouldAcceptValidatedArtifacts_ConfirmationPoC/confirmation_completed_rejects
✅ TestShouldAcceptValidatedArtifacts_NilOrNotSynced
✅ TestGetCurrentPocStageHeight_RegularPoC
✅ TestGetCurrentPocStageHeight_RegularPoC/generate_phase
✅ TestGetCurrentPocStageHeight_RegularPoC/validate_phase
✅ TestGetCurrentPocStageHeight_RegularPoC/inference_phase
✅ TestGetCurrentPocStageHeight_ConfirmationPoC
✅ TestGetCurrentPocStageHeight_NilOrNotSynced
✅ TestShouldAcceptStoreCommit_RegularPoC
✅ TestShouldAcceptStoreCommit_RegularPoC/accept_during_generate_phase_in_exchange_window
✅ TestShouldAcceptStoreCommit_RegularPoC/accept_during_generate_wind_down_phase
✅ TestShouldAcceptStoreCommit_RegularPoC/reject_during_inference_phase
✅ TestShouldAcceptStoreCommit_RegularPoC/reject_during_validation_phase
✅ TestShouldAcceptStoreCommit_WrongPocHeight
✅ TestShouldAcceptStoreCommit_NilOrNotSynced
✅ TestShouldHaveDistributedWeights_AllPhases
✅ TestShouldHaveDistributedWeights_AllPhases/validate_phase
✅ TestShouldHaveDistributedWeights_AllPhases/validate_wind_down
✅ TestShouldHaveDistributedWeights_AllPhases/wind_down_after_generation_end
✅ TestShouldHaveDistributedWeights_AllPhases/wind_down_before_generation_end
✅ TestShouldHaveDistributedWeights_AllPhases/generate_phase
✅ TestShouldHaveDistributedWeights_AllPhases/inference_phase
✅ TestShouldHaveDistributedWeights_ConfirmationPoC
✅ TestShouldHaveDistributedWeights_ConfirmationPoC/confirmation_validation_accepts
✅ TestShouldHaveDistributedWeights_ConfirmationPoC/confirmation_generation_rejects
✅ TestShouldHaveDistributedWeights_ConfirmationPoC/confirmation_grace_period_rejects
✅ TestShouldHaveDistributedWeights_NilOrNotSynced
✅ TestAbsInt32
✅ TestAbsInt32/zero
✅ TestAbsInt32/positive
✅ TestAbsInt32/negative
✅ TestAbsInt32/max_int32
✅ TestAbsInt32/min_int32
✅ TestAbsInt32/minus_one
✅ TestMaxNonceValue
✅ TestMaxNonceValue/empty
✅ TestMaxNonceValue/single_positive
✅ TestMaxNonceValue/single_negative
✅ TestMaxNonceValue/picks_largest_abs_from_negative
✅ TestMaxNonceValue/min_int32
✅ TestIsPorosityTooHigh_SequentialNonces
✅ TestIsPorosityTooHigh_SparseNonces
✅ TestIsPorosityTooHigh_PositiveNonces
✅ TestIsPorosityTooHigh_NegativeNonces
✅ TestIsPorosityTooHigh_MinInt32
✅ TestIsPorosityTooHigh_MixedPositiveNegative
✅ TestIsPorosityTooHigh_EdgeCases
✅ TestIsPorosityTooHigh_EdgeCases/empty_artifacts
✅ TestIsPorosityTooHigh_EdgeCases/zero_count
✅ TestIsPorosityTooHigh_EdgeCases/exactly_at_threshold
✅ TestIsPorosityTooHigh_EdgeCases/just_below_threshold
✅ TestValidateLeafCoverage_ExactMatch
✅ TestValidateLeafCoverage_OrderIndependent
✅ TestValidateLeafCoverage_FewerProofs
✅ TestValidateLeafCoverage_ExtraProofs
✅ TestValidateLeafCoverage_DuplicateLeafIndex
✅ TestValidateLeafCoverage_UnexpectedLeafIndex
✅ TestValidateLeafCoverage_EmptyBoth
✅ TestValidateLeafCoverage_EmptyRequestNonEmptyProofs
✅ TestValidateLeafCoverage_SingleLeaf
✅ TestCheckDuplicateNonces_NoDuplicates
✅ TestCheckDuplicateNonces_WithDuplicates
✅ TestCheckDuplicateNonces_Empty
✅ TestCheckDuplicateNonces_Single
✅ TestCheckDuplicateNonces_NegativeNonces
✅ TestCheckDuplicateNonces_NegativeDuplicates
✅ TestValidateFP16Vector_ValidVector
✅ TestValidateFP16Vector_RealVectorsWithNaN
✅ TestValidateFP16Vector_RealVectorsWithNaN/NaN_at_position_1
✅ TestValidateFP16Vector_RealVectorsWithNaN/NaN_at_position_2
✅ TestValidateFP16Vector_RealVectorsWithNaN/NaN_at_last_position_(11)
✅ TestValidateFP16Vector_RealVectorsWithNaN/NaN_at_first_position_(0)
✅ TestValidateFP16Vector_RealVectorsWithNaN/NaN_at_position_6
✅ TestValidateFP16Vector_RealVectorsWithNaN/NaN_at_position_0_-_participant_2
✅ TestValidateFP16Vector_RealVectorsWithNaN/NaN_at_position_10
✅ TestValidateFP16Vector_RealVectorsWithNaN/NaN_at_position_8
✅ TestValidateFP16Vector_WithPositiveInfinity
✅ TestValidateFP16Vector_WithNegativeInfinity
✅ TestValidateFP16Vector_WrongLength
✅ TestValidateFP16Vector_Empty
✅ TestValidateFP16Vector_QuietNaN
✅ TestValidateFP16Vector_SignalingNaN
✅ TestValidateFP16Vector_NegativeNaN
✅ TestValidateFP16Vector_ValidWithSubnormals
✅ TestValidateFP16Vector_ValidZero
✅ TestErrInvalidVectorData_ErrorWrapping
✅ TestPermanentFailureErrors
✅ TestPermanentFailureErrors/ErrProofVerificationFailed
✅ TestPermanentFailureErrors/ErrIncompleteCoverage
✅ TestPermanentFailureErrors/ErrInvalidVectorData
✅ TestPermanentFailureErrors/ErrDuplicateNonces
✅ TestFetchAndVerifyProofs_RejectsNaNVector
✅ TestValidateParticipant_StrongerRngPropagated
✅ TestValidateParticipant_StrongerRngPropagated/enabled
✅ TestValidateParticipant_StrongerRngPropagated/disabled
✅ TestSampleLeafIndices_ZeroCount
✅ TestSampleLeafIndices_ZeroSampleSize
✅ TestSampleLeafIndices_AllIndices
✅ TestSampleLeafIndices_Subset
✅ TestSampleLeafIndices_NoDuplicates
✅ TestSampleLeafIndices_ValidRange
✅ TestSampleLeafIndices_Deterministic
✅ TestSampleLeafIndices_DifferentSeed
✅ TestSampleLeafIndices_DifferentModel
✅ TestBuildValidationCallbackURL
✅ TestSampleLeafIndices_LargeCount
✅ TestFilterValidationNodesForModel_UsesExplicitMembership
✅ TestFilterValidationNodesForModel_FallsBackToNodeModelsWithoutEpochData
✅ TestFilterValidationNodesForModel_ExcludesNodeWithDifferentModel
✅ TestHasModelList
✅ decentralized-api/poc/artifacts
✅ TestManagedArtifactStore_GetOrCreateStore
✅ TestManagedArtifactStore_GetStore_NotFound
✅ TestManagedArtifactStore_GetStore_ExistingDir
✅ TestManagedArtifactStore_GetStoresForStage
✅ TestManagedArtifactStore_PruneStore
✅ TestManagedArtifactStore_ListStores
✅ TestManagedArtifactStore_AutoPrune
✅ TestManagedArtifactStore_Flush
✅ TestManagedArtifactStore_ParallelModelStores
✅ TestOpenEmpty
✅ TestAddAndCount
✅ TestDuplicateNonceRejection
✅ TestFlushAndGetArtifact
✅ TestGetArtifactOutOfRange
✅ TestRecovery
✅ TestProofGeneration
✅ TestProofForVariousTreeSizes
✅ TestProofForVariousTreeSizes/size_1
✅ TestProofForVariousTreeSizes/size_2
✅ TestProofForVariousTreeSizes/size_3
✅ TestProofForVariousTreeSizes/size_7
✅ TestProofForVariousTreeSizes/size_8
✅ TestProofForVariousTreeSizes/size_9
✅ TestProofForVariousTreeSizes/size_15
✅ TestProofForVariousTreeSizes/size_16
✅ TestProofForVariousTreeSizes/size_17
✅ TestProofForVariousTreeSizes/size_31
✅ TestProofForVariousTreeSizes/size_32
✅ TestProofForVariousTreeSizes/size_33
✅ TestProofForVariousTreeSizes/size_63
✅ TestProofForVariousTreeSizes/size_64
✅ TestProofForVariousTreeSizes/size_65
✅ TestProofForVariousTreeSizes/size_100
✅ TestProofForVariousTreeSizes/size_127
✅ TestProofForVariousTreeSizes/size_128
✅ TestProofForVariousTreeSizes/size_255
✅ TestProofForVariousTreeSizes/size_256
✅ TestGetRootAt
✅ TestGetFlushedRoot
✅ TestAddAfterClose
✅ TestNegativeNonce
✅ TestRecoveryWithTruncatedRecord
✅ TestConcurrentGetArtifact
✅ decentralized-api/utils
✅ TestGetAllWithPagination_SinglePage
✅ TestGetAllWithPagination_MultiplePages
✅ TestGetAllWithPagination_ErrorHandling
✅ TestGetAllWithPagination_ErrorOnSecondPage
✅ TestGetAllWithPagination_EmptyResult
✅ TestGetAllWithPagination_NilPagination
Annotations
Check failure on line 0 in decentralized-api/junit-report.xml
github-actions / Decentralized-API Tests
decentralized-api/internal/server/public ► TestInterruption_ClientDisconnect_StreamingComplete_VerifyFinishInference
Failed test found in:
decentralized-api/junit-report.xml
Error:
2026/06/10 14:59:29 Warning: KEYRING_PASSWORD environment variable not set - keyring operations may fail
Raw output
2026/06/10 14:59:29 Warning: KEYRING_PASSWORD environment variable not set - keyring operations may fail
2026/06/10 14:59:29 INFO RegisterNode. Governance model subsystem=Nodes model_id=test-model
2026/06/10 14:59:29 INFO Node not found in current epoch data, populating deterministic configured model subsystem=Nodes node_id=test-node
2026/06/10 14:59:29 INFO Populated node with deterministic configured model subsystem=Nodes node_id=test-node model_id=test-model
2026/06/10 14:59:29 INFO RegisterNode. Registered node subsystem=Nodes node="{Host:127.0.0.1 InferenceSegment: InferencePort:38235 PoCSegment: PoCPort:38236 Models:map[test-model:{Args:[]}] Id:test-node MaxConcurrent:10 Hardware:[]}"
2026/06/10 14:59:29 INFO Updated epoch data for node subsystem=Nodes node_id=test-node model_id=test-model
2026/06/10 14:59:29 INFO Bandwidth limiter initialized subsystem=Config limit=21504 lifespan=10 maxInferences=0 weightBased=true
2026/06/10 14:59:29 INFO Hash for signing hash="\xf5\xdb룒Z\x8bb63\xd4\r\xb6,\x9e\xb0\x19\r\\\x92\xdb\xe3\xb50V\x1f\xe5i\r\x01r\x98"
2026/06/10 14:59:29 INFO Generated signature type=0 signature="O0r701ogC2dYUIDAeZa9VtTkmiKPo8N01FGpwK7mjwIplUmOmW+kk2uXqhr9Vg1WlnKGmHsPeTcmxhjeLSJ96w=="
2026/06/10 14:59:29 INFO Hash for signing hash="\xa5\xf2\x19.\xd3'r\xa3G\x00\x06b\x82\xb0#\xc3\x1ccɓ\xd5\xce\xda\xe1\n\x92;{\xe1\x0eb!"
2026/06/10 14:59:29 INFO Generated signature type=1 signature="+FGHPaz7v6ZD5+eU/nVvqEwx+pcOgii0lrJClMtDwP460ojdFAfEdqbgCwYxuaLJOFMsG3egEZdXouaPL2l6uw=="
2026/06/10 14:59:29 INFO Received request subsystem=Server method=POST path=/v1/chat/completions
2026/06/10 14:59:29 INFO Executor request subsystem=Inferences inferenceId=inf-cd1 seed=12345
2026/06/10 14:59:29 INFO Transfer pubkeys subsystem=Inferences pubkeys="[A22Oz4ocBEG28QIfBA1g0dXd7cfFzfrDFKzhfgL4gsRs AzDvQdyftIR9HR4FLc0MnCuaLMFd7BQP1fcJFFL1uemx]"
2026/06/10 14:59:29 INFO Validating signature type=0 pubKey=AzDvQdyftIR9HR4FLc0MnCuaLMFd7BQP1fcJFFL1uemx signature="O0r701ogC2dYUIDAeZa9VtTkmiKPo8N01FGpwK7mjwIplUmOmW+kk2uXqhr9Vg1WlnKGmHsPeTcmxhjeLSJ96w=="
2026/06/10 14:59:29 INFO Validating signature with grantees type=1 pubKeys="[A22Oz4ocBEG28QIfBA1g0dXd7cfFzfrDFKzhfgL4gsRs AzDvQdyftIR9HR4FLc0MnCuaLMFd7BQP1fcJFFL1uemx]" signature="+FGHPaz7v6ZD5+eU/nVvqEwx+pcOgii0lrJClMtDwP460ojdFAfEdqbgCwYxuaLJOFMsG3egEZdXouaPL2l6uw=="
2026/06/10 14:59:29 INFO Request offset for executor subsystem=Inferences offset=-905.882µs lastHeightTime=1781103569164921929 requestTimestamp=1781103569165827811
2026/06/10 14:59:29 INFO Attempting to lock node for inference subsystem=Inferences inferenceId=inf-cd1 nodeVersion=v1
2026/06/10 14:59:29 INFO HTTP retry helper: starting inference request subsystem=Inferences model=test-model max_attempts=3 initial_skip_count=0
2026/06/10 14:59:29 INFO Setting node status to Inference subsystem=PoC node_id=test-node current_epoch="&{LatestEpoch:{EpochIndex:100 PocStartBlockHeight:100 EpochParams:{EpochLength:200 EpochMultiplier:0 EpochShift:0 DefaultUnitOfComputePrice:0 PocStageDuration:50 PocExchangeDuration:0 PocValidationDelay:0 PocValidationDuration:0 SetNewValidatorsDelay:0 InferenceValidationCutoff:0 InferencePruningEpochThreshold:0 InferencePruningMax:0 PocPruningMax:0 PocSlotAllocation:<nil> ConfirmationPocSafetyWindow:0}} CurrentBlock:{Height:150 Hash:hash-150} CurrentPhase:Inference IsSynced:true ActiveConfirmationPoCEvent:<nil>}" current_phase=Inference current_intended_status=UNKNOWN
2026/06/10 14:59:29 INFO InferenceUpAllCommand: completed, reconciliation triggered subsystem=Nodes
2026/06/10 14:59:29 INFO nodeAvailable. Node is intended for INFERENCE subsystem=Nodes nodeId=test-node intendedStatus=INFERENCE
2026/06/10 14:59:29 INFO Node not available subsystem=Nodes node_id=test-node reason="Node is not in INFERENCE state: UNKNOWN"
2026/06/10 14:59:29 INFO queryNodeStatus. Queried node status subsystem=Nodes nodeId=test-node currentStatus=STOPPED prevStatus=UNKNOWN
2026/06/10 14:59:29 INFO nodeStatusQueryWorker. Node status changed subsystem=Nodes nodeId=test-node prevStatus=UNKNOWN currentStatus=STOPPED
2026/06/10 14:59:29 INFO nodeStatusQueryWorker. Queued status updates submitted subsystem=Nodes len(statusUpdates)=1
2026/06/10 14:59:29 INFO Setting actual status for node subsystem=Nodes node_id=test-node update.status=STOPPED update.prev_status=UNKNOWN update.timestamp=2026-06-10T14:59:29.167Z node.State.CurrentStatus=UNKNOWN node.State.StatusTimestamp=2026-06-10T14:59:29.165Z
2026/06/10 14:59:29 INFO Reconciliation triggered manually subsystem=Nodes blockHeight=150
2026/06/10 14:59:29 INFO Dispatching reconciliation command subsystem=Nodes node_id=test-node target_status=INFERENCE target_poc_status=IDLE blockHeight=150
2026/06/10 14:59:29 INFO MockClient. Stop: called subsystem=Testing
2026/06/10 14:59:29 INFO Selected model for inference subsystem=Nodes node_id=test-node selectedModel="id:\"test-model\" "
2026/06/10 14:59:29 INFO Successfully brought up inference on node subsystem=Nodes node_id=test-node
2026/06/10 14:59:29 INFO Finalizing state transition for node subsystem=Nodes node_id=test-node from_status=STOPPED to_status=INFERENCE from_poc_status=IDLE to_poc_status=IDLE succeeded=true blockHeight=150
2026/06/10 14:59:29 INFO HTTP retry helper: no nodes available subsystem=Inferences attempt=1
2026/06/10 14:59:29 ERROR Failed to get response from inference node subsystem=Inferences inferenceId=inf-cd1 error="no nodes available for inference" error-type=*errors.errorString
post_chat_handler_interruption_test.go:889: CLIENT_DISCONNECT_STREAM RESULT: FinishInference calls count = 0
post_chat_handler_interruption_test.go:890: CLIENT_DISCONNECT_STREAM: Written bytes before disconnect = 41
post_chat_handler_interruption_test.go:892:
Error Trace: /home/runner/work/gonka/gonka/decentralized-api/internal/server/public/post_chat_handler_interruption_test.go:892
Error: "[]" should have 1 item(s), but has 0
Test: TestInterruption_ClientDisconnect_StreamingComplete_VerifyFinishInference
Messages: executor should record FinishInference from partial response data after client disconnect
Loading