diff --git a/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census-promotion/20260818-coordinator-promotion.md b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census-promotion/20260818-coordinator-promotion.md new file mode 100644 index 0000000000..b17610fc84 --- /dev/null +++ b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census-promotion/20260818-coordinator-promotion.md @@ -0,0 +1,171 @@ +# Track A S1 unfiltered static census — coordinator promotion + +Date: 2026-08-18 +Source task: `OTC-20260818-track-a-s1-unfiltered-static-census` +Source Draft: PR #509 +Source final head: `b381a2a614c503f3d021af98432df99a069305c7` +Trusted integration base: `main@ed09418b431c28087775b419f85bed404fa85d70` +Decision: **ACCEPT_WITH_EDITS** + +## Independent review boundary + +The coordinator reviewed the full final source diff, exact changed-path inventory, fresh producer artifact, independent #473 denominator control, current-main exact-build resolver output and the final source CI/governance graph. + +The source diff is documentation/evidence only. It contains no workflow after finalization and no runtime/product mutation. It does not touch PR #475-owned paths or state. + +## Promoted FACTS + +Exact client: + +```yaml +version: 15.32.df7b29 +size: 51965216 +sha256: e6c244bd39fe2e0632f6f000efd3147164696efa8e901718668e0442325ff7fe +``` + +Generated protocol denominator: + +```text +349 total +160 GameclientMessage* +189 GameserverMessage* +``` + +The fresh run's three registries are byte-identical to the independent #473 sanitized control. + +Complete receive-method string surface: + +```text +189 received*Message strings +188 exact generated-message/received-method stem matches +1 naming variant: + GameserverMessageTrackQuestFlags + receivedTrackedQuestFlagsMessage +``` + +Broad static selector breakdown: + +```text +149 handle* +189 received* +204 on* +542 total broad candidate strings +``` + +Protocol-handler type/code surface: + +```text +47 distinct *ProtocolMessageHandler class-name strings +with direct executable code-to-class-string xrefs +``` + +Current exact-build resolver: + +```text +TGameClient 0x3076908 +TGameserverGameSession 0x3078ba0 +TPlayerProtocolMessageHandler 0x308a008 +TPlayerData 0x308ca70 +TContainerStorage 0x308a1a0 +TCreatureStorage 0x308d078 +TWorldmapProtocolMessageHandler 0x30871d8 +``` + +All seven resolve uniquely on the exact client. + +## Promoted inference / retained UNKNOWNs + +The 188 exact stems plus one naming variant are strong static lexical evidence for a generated-message / `received*Message` naming correspondence, but the coordinator does **not** promote a concrete dispatch edge from names alone. + +```yaml +GENERATED_MESSAGE_TO_RECEIVED_METHOD_NAME_ALIGNMENT: INFERENCE_STATIC_LEXICAL_ONLY +GENERATED_MESSAGE_TO_CONCRETE_HANDLER_DISPATCH: UNKNOWN +RECEIVED_METHOD_TO_HANDLER_OWNER: UNKNOWN +HANDLER_TO_STORAGE_CONTROLLER_EDGE: UNKNOWN +COMMON_UPSTREAM_INBOUND_DISPATCHER: UNKNOWN +RUNTIME_DELIVERY_OR_STATE_MUTATION: UNKNOWN +``` + +Many domain-specific handler types prove a broad partitioned handler **type surface**. They do not prove or disprove a shared upstream queue/router. + +## Falsification / accepted edits + +The coordinator accepts the research result only after the following source corrections: + +1. **Family bucket rejection.** Temporary substring buckets were found semantically unsafe (`Mark` inside `Market`, `row` inside `Browse`) and excluded from promoted evidence. +2. **542-method overclassification repair.** The broad selector output is not called an inbound-handler denominator. It is explicitly `149 handle* + 189 received* + 204 on*`; the durable receive-method string denominator is 189. +3. **Shared dispatcher non-claim.** Domain-specific handler types are not used to infer that no common upstream dispatcher exists. + +No material finding remains open after those edits. + +## Producer / control evidence + +Fresh producer: + +```text +run 32112814216 +job 95635760592 +result SUCCESS +artifact 9315562574 +digest sha256:583c8c217fa2eaa2411f79995473cd910b8803d8599f80574491ca27b8ab9860 +``` + +Independent control: + +```text +#473 run 32022209943 +artifact 9285763750 +digest sha256:0f71be3021885f3f8881199c5f74839fca6c6c5081594fab48998298abaadbd6 +``` + +Registry hashes: + +```text +all 349 55f7cf2d6d4a63df6e24b8b156e38f1a2a64a9d6394357aa914661ab48fd983b +client -> server 621ecb7aa1a62aae559e8d793d1aebe9289d84811bc43c4339a7153458b553f0 +server -> client e642f661546c2e6e89ddcd77ac5e8aa9cd517408a309f95a3a367af943550d96 +``` + +## Source exact-head validation + +```text +source head b381a2a614c503f3d021af98432df99a069305c7 +Track A governance 32114161352 = SUCCESS + Fresh admission behavior audit 95639845377 = SUCCESS + Deterministic admission audit 95639845470 = SUCCESS +CI 32114161531 = SUCCESS + CI / Required 95639907436 = SUCCESS +reviews 0 +unresolved review threads 0 +main freshness PASS +``` + +## Safety / nonclaims + +```yaml +runtime_access: none +client_executed: false +synology_used: false +x11_or_vnc_used: false +process_memory_used: false +credentials_used: false +login_performed: false +gameplay_performed: false +raw_client_committed_or_uploaded: false +pr475_runtime_observed: false +pr475_runtime_mutated: false +physical_e2e: NOT_APPLICABLE_STATIC_EXACT_FILE_DISCOVERY_ONLY +``` + +## Next frontier + +This promotion does not create or consume a physical runtime task. The next independent static S2 frontier is player inbound dispatch: + +```text +TPlayerProtocolMessageHandler + -> PlayerDataCurrent / PlayerState / PlayerInventory / PlayerSkills + -> exact QMeta/dispatch targets + -> static TPlayerData ownership/mutation edge where provable +``` + +Creature, container and chat handler graphs remain subsequent static candidates. Worldmap semantics and native-login runtime remain outside this promotion while PR #475 owns those surfaces. diff --git a/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/inbound-method-strings.txt b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/inbound-method-strings.txt new file mode 100644 index 0000000000..2444cb1bb0 --- /dev/null +++ b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/inbound-method-strings.txt @@ -0,0 +1,542 @@ +handleAmbientLightMessage +handleAnyMessage +handleAssetData +handleBestiaryTrackerMessage +handleBlessingsDialogMessage +handleBossDifficultySelectionMessage +handleBossSlotsMessage +handleBossTrackingMessage +handleBosstiaryHighlightMessage +handleBosstiaryMessage +handleBosstiaryStaticDataMessage +handleBottomFloorMessage +handleBottomRowMessage +handleBuddyData +handleBuddyGroupData +handleBugReportsAllowedMessage +handleChangeInContainerMessage +handleChangeOnMapMessage +handleChannelEventMessage +handleChannelsMessage +handleCharacterTradeConfigurationMessage +handleClientCheckMessage +handleCloseChannelMessage +handleCloseContainerMessage +handleCloseDepotSearchMessage +handleCloseExaltationDialogMessage +handleCloseImbuingDialogMessage +handleCloseNPCTradeMessage +handleCloseRewardWallMessage +handleCloseTradeMessage +handleContainerMessage +handleCounterOfferMessage +handleCreateInContainerMessage +handleCreateOnMapMessage +handleCreditBalanceMessage +handleCyclopediaCharacterInfoMessage +handleCyclopediaCurrentHouseDataMessage +handleCyclopediaHouseActionResulMessage +handleCyclopediaMapDataMessage +handleCyclopediaMapMessage +handleCyclopediaStaticHouseDataMessage +handleDailyRewardBasicMessage +handleDailyRewardCollectionStateMessage +handleDailyRewardHistoryMessage +handleDeadMessage +handleDeleteInContainerMessage +handleDeleteInventoryMessage +handleDeleteOnMapMessage +handleDepotSearchDetailListMessage +handleDepotSearchResultMessage +handleEditGuildMessageMessage +handleEditListMessage +handleEditTextMessage +handleExaltationBaseDataMessage +handleExaltationDialogRefreshMessage +handleExaltationHistoryMessage +handleExaltationResultMessage +handleExivaSuppressedMessage +handleFieldDataMessage +handleFriendSystemDataMessage +handleFullMapMessage +handleGameEventMessage +handleGemAtelierGemRevealedMessage +handleGetGuildMessage +handleGraphicalEffectsMessage +handleHighscoresMessage +handleImbuementDurationsMessage +handleImbuingDialogRefreshMessage +handleImpactTrackingMessage +handleInspectionListMessage +handleItemLootedMessage +handleItemWastedMessage +handleKillTrackingMessage +handleLeftColumnMessage +handleLoginSuccessMessage +handleMarketBrowseMessage +handleMarketDetailMessage +handleMarketEnterMessage +handleMarketLeaveMessage +handleMarketStatisticsMessage +handleMessageMessage +handleMonsterCyclopediaBonusEffectsMessage +handleMonsterCyclopediaMessage +handleMonsterCyclopediaMonstersMessage +handleMonsterCyclopediaNewDetailsMessage +handleMonsterCyclopediaRaceMessage +handleNPCOfferMessage +handleNpcTalkPartersMessage +handleObjectInfoMessage +handleOfferDescriptionMessage +handleOpenChannelMessage +handleOpenOwnChannelMessage +handleOpenRewardWallMessage +handleOutfitMemorialMessage +handleOwnOfferMessage +handlePartyHuntAnalyserMessage +handlePendingStateEnteredMessage +handlePlayerDataBasicMessage +handlePlayerGoodsMessage +handlePlayerInventoryMessage +handlePremiumTriggerMessage +handlePreyDataMessage +handlePreyPricesMessage +handlePreyTimeLeftMessage +handlePrivateChannelMessage +handleQuestLineMessage +handleQuestLogMessage +handleRemoveGraphicalEffectMessage +handleRequestPurchaseDataMessage +handleResourceBalanceMessage +handleRestingAreaStateMessage +handleRightColumnMessage +handleSessionDumpStartMessage +handleSessionEndInformationMessage +handleSetInventoryMessage +handleSetStoreButtonDeeplinkMessage +handleShapedPerkReshapeOffersMessage +handleShowGameNewsMessage +handleShowMessageDialogMessage +handleShowModalDialogMessage +handleShowMultiOfflineTrainingDialogMessage +handleSkillWheelMessage +handleSoulSealsDialogMessage +handleSoundTriggerMessage +handleSpecialContainersAvailableMessage +handleStashMessage +handleStoreButtonIndicatorsMessage +handleStoreCategoriesMessage +handleStoreErrorMessage +handleStoreOffersMessage +handleStoreSuccessMessage +handleTalkMessage +handleTaskboardMessage +handleTeamFinderTeamLeaderMessage +handleTeamFinderTeamMemberMessage +handleTextForReportMessage +handleTibiaTimeMessage +handleTopFloorMessage +handleTopRowMessage +handleTrackedQuestFlagsMessage +handleTransactionDetailsMessage +handleTransactionHistoryMessage +handleTutorialHintMessage +handleUpdateExivaOptionsMessage +handleUpdateManagedContainersMessage +handleUpdatingShopBalanceMessage +handleWeaponProficiencyMessage +handleWeaponProficiencyNotificationMessage +handleXpChangedMessage +onActionBarCharacterOptionsChanged +onActionBarOptionsChanged +onActionBarsOptionsChanged +onActiveFilterTagChanged +onActiveOfferCountChanged +onActiveRaidsChanged +onActiveTabChanged +onAllowEveryoneChanged +onAllowedGroupsChanged +onAmbienceObjectStreamCountChanged +onAntialiasingChanged +onApplicationStateChanged +onAreaDonationsChanged +onAreaOrSubAreaChanged +onAsyncEmitObjectInfosChanged +onAuthenticatedChanged +onAutoTrackLootValueChanged +onBossCooldownsChanged +onBossTrackingEntriesChanged +onBountyTaskDataChanged +onButtonOptionsChanged +onCameraViewportChanged +onCategoriesChanged +onCharacterBasedLootWasteOptionsChanged +onCharacterConfigurationChanged +onCharacterHousesInfoChanged +onCharacterPresetsChanged +onChatChannelControllerOptionsChanged +onChatProtocolMessageHandlerOptionsChanged +onClickedAreaChanged +onConfigurationChanged +onConnectionsUsedChanged +onControlOptionsChanged +onControlOrLootSchemeOptionsChanged +onCounterOfferChanged +onCurrentlyHoveredCreatureChanged +onCyclopediaMapImminentRaidsChanged +onDailyRewardHistoryChanged +onDamageValuesChanged +onDataChanged +onDeadMessage +onDelayedCliendWindowChanged +onDetailListChanged +onDialogVisibleChanged +onDisplayResultMessage +onDragAndDropMousePositionChanged +onDragChanged +onEffectSoundsChanged +onEmptySearchResultReceived +onEnableConditionsChanged +onEntryFormatChanged +onErrorReceived +onExaltedCurrencyBalanceChanged +onExperienceInProgressStorageChanged +onFilterOptionChanged +onFocusChanged +onFpsTrackingActiveChanged +onFriendsInviteReceived +onFriendshipEstablishedReceived +onFusionGroupsChanged +onGameLoginChallengeMessage +onGameLoginErrorMessage +onGameLoginWaitMessage +onGameserverNetworkPacketReceived +onGamesessionChanged +onGaugeTargetValueChanged +onGoldBalanceChanged +onGraphValuesChanged +onGreaterFragmentsChanged +onGroupNameEditedReceived +onGroupNameToAddToVipListReceived +onHistoryChanged +onHomePageChanged +onHotkeyOptionsChanged +onHouseInformationChanged +onHouseViewportChanged +onHousesLimitsChanged +onIdRangeChanged +onImbuedObjectsChanged +onImbuingStorageDataChanged +onImplicitSizeChanged +onIndexChanged +onInspectObjectDataReceived +onInventoryChanged +onInventoryOptionsChanged +onIsVisibleChanged +onItemPriceConfigurationChanged +onItemPriceVisualizationChanged +onItemTrackingChanged +onItemTrackingStorageOptionsChanged +onItemsChanged +onItemsMetricsChanged +onKeyboardStatusStorageChanged +onKeywordButtonsChanged +onLeftAndRightStatusActionBarWidthChanged +onLesserFragmentsChanged +onLootBlackWhitelisteChanged +onLunarAscensionOrbsAmountChanged +onManualSortModeChanged +onMapWindowControllerOptionsChanged +onMarketHistoryChanged +onMarketItemDetailsChanged +onMarketOffersChanged +onMarketOwnOffersChanged +onMessageAtEndOfLoginRampUpReceived +onMinimapDataChanged +onMinimapMarkersChanged +onMonsterBonusEffectsChanged +onMonsterClassificationSummaryChanged +onMonsterCyclopediaNewDetailsMessage +onMonsterListChanged +onMonsterRaceDetailsChanged +onMonsterRaceListChanged +onMonsterRacesChanged +onMonsterRacesUnlockedForCharmsChanged +onNPCTradeOptionsChanged +onNewsStorageContentsChanged +onNpcDialogOptionsChanged +onNpcTalkPartnersChanged +onNpcTradeOptionsChanged +onNumberOfSidebarsChanged +onObjectCountsChanged +onObjectInfosChanged +onObjectProficiencyXPChanged +onOfferDescriptionReceived +onOffersChanged +onOptimizeConnectionStabilityOptionChanged +onOptionChanged +onOptionsChanged +onOptionsTrackingActiveChanged +onOwnOfferChanged +onPacketReceived +onPartyHuntDataChanged +onPartyLeaderIDChanged +onPassagesChanged +onPinnedChanged +onPlayerBonusPointsChanged +onPlayerDataChanged +onPlayerNameToAddToVipListReceived +onPlayerNameToExcludeFromChatChannelReceived +onPlayerNameToInviteToChatChannelReceived +onPlayerPositionChanged +onPlayerSkillStatsChanged +onPositionChanged +onPremiumStatusChanged +onPremiumTimeChanged +onPreyHuntingTaskTokensChanged +onPreyWildcardsChanged +onProficiencyDataChanged +onQuestLinePartsChanged +onQuestLinesChanged +onQuickLootBlackWhitelistConfigurationChanged +onRecentLootDropsChanged +onRemainingNumberOfAssignableBonusEffectsChanged +onRenderInfosChanged +onResourceBalanceChanged +onRestingAreaChanged +onRestingAreaStateChanged +onScreenshotMangerOptionsChanged +onSearchResultsChanged +onSelectedCharmChanged +onSelectedItemChanged +onSessiondumpNewMessage +onSettingHintsFromServerChanged +onShapedPerkReshapeOffersChanged +onShowGameNewsMessage +onShowInfoBannerOptionChanged +onShowLockerOnlyChanged +onSizeChanged +onSoundManagerPlayableSoundsChanged +onSoundMetadataChanged +onSoundOptionsChanged +onSoundsToPlayChanged +onStashContentChanged +onStatusBarVisibilityChanged +onStoreBalanceChanged +onStoreButtonIndicatorsChanged +onStoreDeeplinkChanged +onStoreImageBaseUrlChanged +onTabHighlightChanged +onTeamMembersChanged +onTeamParametersChanged +onTeamsChanged +onTextPropertiesChanged +onThisWidgetOptionsChanged +onTopLeftCoordinateChanged +onTrackedCreaturesChanged +onTrackedQuestFlagsChanged +onTradeFocusChanged +onTraderInventoryChanged +onTransactionHistoryChanged +onTransferGroupsChanged +onTriggerUpdateImpactData +onUnusedWidthChanged +onViewpointsChanged +onVipGroupDataChanged +onVipRenderInfoChanged +onVipStateChanged +onWeeklyTaskDataChanged +onWidgetDragChanged +onWidgetOptionsChanged +onWindowChanged +onWindowSizeChanged +onWorldTypeReceived +receivedAmbientLightMessage +receivedBestiaryTrackerMessage +receivedBlessingsDialogMessage +receivedBlessingsMessage +receivedBossDifficultySelectionMessage +receivedBossSlotsMessage +receivedBossTrackingMessage +receivedBosstiaryHighlightMessage +receivedBosstiaryMessage +receivedBosstiaryStaticDataMessage +receivedBottomFloorMessage +receivedBottomRowMessage +receivedBuddyDataMessage +receivedBuddyGroupDataMessage +receivedBuddyStatusChangeMessage +receivedBugReportsAllowedMessage +receivedChangeInContainerMessage +receivedChangeOnMapMessage +receivedChannelEventMessage +receivedChannelsMessage +receivedCharacterTradeConfigurationMessage +receivedClientCheckMessage +receivedCloseChannelMessage +receivedCloseContainerMessage +receivedCloseDepotSearchMessage +receivedCloseExaltationDialogMessage +receivedCloseImbuingDialogMessage +receivedCloseNPCTradeMessage +receivedCloseRewardWallMessage +receivedCloseTradeMessage +receivedConfigureCreaturePodiumMessage +receivedContainerMessage +receivedCounterOfferMessage +receivedCreateInContainerMessage +receivedCreateOnMapMessage +receivedCreatureDataMessage +receivedCreatureHealthMessage +receivedCreatureLightMessage +receivedCreatureMarksMessage +receivedCreatureOutfitMessage +receivedCreaturePartyMessage +receivedCreatureSkullMessage +receivedCreatureSpeedMessage +receivedCreatureTypeMessage +receivedCreatureUnpassMessage +receivedCreatureUpdateMessage +receivedCreditBalanceMessage +receivedCyclopediaCharacterInfoMessage +receivedCyclopediaCurrentHouseDataMessage +receivedCyclopediaHouseActionResultMessage +receivedCyclopediaMapDataMessage +receivedCyclopediaStaticHouseDataMessage +receivedDailyRewardBasicMessage +receivedDailyRewardCollectionStateMessage +receivedDailyRewardHistoryMessage +receivedDeadMessage +receivedDeleteInContainerMessage +receivedDeleteInventoryMessage +receivedDeleteOnMapMessage +receivedDepotSearchDetailListMessage +receivedDepotSearchResultMessage +receivedEditGuildMessageMessage +receivedEditListMessage +receivedEditTextMessage +receivedExaltationBaseDataMessage +receivedExaltationDialogRefreshMessage +receivedExaltationHistoryMessage +receivedExaltationResultMessage +receivedExivaSuppressedMessage +receivedFieldDataMessage +receivedFriendSystemDataMessage +receivedFullMapMessage +receivedGameEventMessage +receivedGemAtelierGemRevealedMessage +receivedGraphicalEffectsMessage +receivedHighscoresMessage +receivedHirelingNameChangeMessage +receivedImbuementDurationsMessage +receivedImbuingDialogRefreshMessage +receivedImpactTrackingMessage +receivedInspectionListMessage +receivedInspectionStateMessage +receivedItemLootedMessage +receivedItemWastedMessage +receivedKillTrackingMessage +receivedLeftColumnMessage +receivedLoginAdviceMessage +receivedLoginChallengeMessage +receivedLoginErrorMessage +receivedLoginSuccessMessage +receivedLoginWaitMessage +receivedMarketBrowseMessage +receivedMarketDetailMessage +receivedMarketEnterMessage +receivedMarketLeaveMessage +receivedMarketStatisticsMessage +receivedMessageMessage +receivedMonsterCyclopediaBonusEffectsMessage +receivedMonsterCyclopediaMessage +receivedMonsterCyclopediaMonstersMessage +receivedMonsterCyclopediaNewDetailsMessage +receivedMonsterCyclopediaRaceMessage +receivedMoveCreatureMessage +receivedMultiUseDelayMessage +receivedNPCOfferMessage +receivedNpcTalkPartersMessage +receivedObjectInfoMessage +receivedOfferDescriptionMessage +receivedOpenChannelMessage +receivedOpenOwnChannelMessage +receivedOpenRewardWallMessage +receivedOutfitMemorialMessage +receivedOutfitMessage +receivedOwnOfferMessage +receivedPartyHuntAnalyserMessage +receivedPassiveAbilityDataMessage +receivedPendingStateEnteredMessage +receivedPingBackMessage +receivedPingMessage +receivedPlayerDataBasicMessage +receivedPlayerDataCurrentMessage +receivedPlayerGoodsMessage +receivedPlayerInventoryMessage +receivedPlayerSkillsMessage +receivedPlayerStateMessage +receivedPremiumTriggerMessage +receivedPreyDataMessage +receivedPreyPricesMessage +receivedPreyTimeLeftMessage +receivedPrivateChannelMessage +receivedPvpSituationsMessage +receivedQuestLineMessage +receivedQuestLogMessage +receivedReadyForSecondaryConnectionMessage +receivedRemoveGraphicalEffectMessage +receivedRequestPurchaseDataMessage +receivedResourceBalanceMessage +receivedRestingAreaStateMessage +receivedRightColumnMessage +receivedSessionDumpStartMessage +receivedSessionEndInformationMessage +receivedSetInventoryMessage +receivedSetStoreButtonDeeplinkMessage +receivedSetTacticsMessage +receivedShapedPerkReshapeOffersMessage +receivedShowGameNewsMessage +receivedShowMessageDialogMessage +receivedShowModalDialogMessage +receivedShowMultiOfflineTrainingDialogMessage +receivedSkillWheelMessage +receivedSnapBackMessage +receivedSoulSealsDialogMessage +receivedSoundTriggerMessage +receivedSpecialContainersAvailableMessage +receivedSpellDataModificationMessage +receivedSpellDelayMessage +receivedSpellGroupDelayMessage +receivedStashMessage +receivedStopMessage +receivedStoreButtonIndicatorsMessage +receivedStoreCategoriesMessage +receivedStoreErrorMessage +receivedStoreOffersMessage +receivedStoreSuccessMessage +receivedSwitchPresetMessage +receivedTalkMessage +receivedTaskboardMessage +receivedTeamFinderTeamLeaderMessage +receivedTeamFinderTeamMemberMessage +receivedTextForReportMessage +receivedTibiaTimeMessage +receivedTopFloorMessage +receivedTopRowMessage +receivedTrackedQuestFlagsMessage +receivedTransactionDetailsMessage +receivedTransactionHistoryMessage +receivedTutorialHintMessage +receivedUnjustifiedPointsMessage +receivedUnlockedSpellsMessage +receivedUpdateExivaOptionsMessage +receivedUpdateManagedContainersMessage +receivedUpdateTargetMessage +receivedUpdatingShopBalanceMessage +receivedVocationSpecificPlayerDataMessage +receivedWaitMessage +receivedWeaponProficiencyMessage +receivedWeaponProficiencyNotificationMessage +receivedWorldEnteredMessage +receivedXpChangedMessage diff --git a/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/known-anchor-vptr-resolution.json b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/known-anchor-vptr-resolution.json new file mode 100644 index 0000000000..c7166174a6 --- /dev/null +++ b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/known-anchor-vptr-resolution.json @@ -0,0 +1,41 @@ +{ + "schema": "otclient.tibia-runtime-bridge.discovery.v1", + "binary": "/client", + "targets": { + "container_storage": { + "expected_qt_class": "tibia::container::TContainerStorage", + "primary_vptr_candidates": ["0x308a1a0"], + "unique": true + }, + "creature_storage": { + "expected_qt_class": "tibia::creatures::TCreatureStorage", + "primary_vptr_candidates": ["0x308d078"], + "unique": true + }, + "game_client": { + "expected_qt_class": "tibia::client::TGameClient", + "primary_vptr_candidates": ["0x3076908"], + "unique": true + }, + "gameserver_game_session": { + "expected_qt_class": "tibia::game::TGameserverGameSession", + "primary_vptr_candidates": ["0x3078ba0"], + "unique": true + }, + "player_data": { + "expected_qt_class": "tibia::game::TPlayerData", + "primary_vptr_candidates": ["0x308ca70"], + "unique": true + }, + "player_protocol_handler": { + "expected_qt_class": "tibia::game::TPlayerProtocolMessageHandler", + "primary_vptr_candidates": ["0x308a008"], + "unique": true + }, + "worldmap_handler": { + "expected_qt_class": "tibia::worldmap::TWorldmapProtocolMessageHandler", + "primary_vptr_candidates": ["0x30871d8"], + "unique": true + } + } +} diff --git a/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/protocol-client-to-server.txt b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/protocol-client-to-server.txt new file mode 100644 index 0000000000..077c4bf2d5 --- /dev/null +++ b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/protocol-client-to-server.txt @@ -0,0 +1,160 @@ +GameclientMessageAcceptTrade +GameclientMessageAddBuddy +GameclientMessageAnswerModalDialog +GameclientMessageApplyClearingCharm +GameclientMessageApplyImbuement +GameclientMessageApplySkillWheel +GameclientMessageAttack +GameclientMessageBlessingsDialog +GameclientMessageBossDifficultySelection +GameclientMessageBrowseField +GameclientMessageBuddyGroup +GameclientMessageBugReport +GameclientMessageBuyObject +GameclientMessageBuyStoreOffer +GameclientMessageCancel +GameclientMessageCharacterTradeConfigurationAction +GameclientMessageClientCheck +GameclientMessageClientDetails +GameclientMessageCloseContainer +GameclientMessageCloseDepotSearch +GameclientMessageCloseImbuingDialog +GameclientMessageCloseNPCChannel +GameclientMessageCloseNPCTrade +GameclientMessageCollectDailyReward +GameclientMessageConfigureShowOffSocket +GameclientMessageConnectionPingBack +GameclientMessageContainerAction +GameclientMessageCyclopediaHouseAction +GameclientMessageCyclopediaMapAction +GameclientMessageDailyRewardHistory +GameclientMessageDepotSearchRetrieve +GameclientMessageDepotSearchType +GameclientMessageDisbandParty +GameclientMessageEditBossSlot +GameclientMessageEditBuddy +GameclientMessageEditGuildMessage +GameclientMessageEditList +GameclientMessageEditText +GameclientMessageEnterWorld +GameclientMessageEquipObject +GameclientMessageExaltationAction +GameclientMessageExcludeFromChannel +GameclientMessageFollow +GameclientMessageFriendSystemAction +GameclientMessageGatherAll +GameclientMessageGemAtelier +GameclientMessageGetChannels +GameclientMessageGetObjectInfo +GameclientMessageGetOfferDescription +GameclientMessageGetOutfit +GameclientMessageGetQuestLine +GameclientMessageGetQuestLog +GameclientMessageGetTextForReport +GameclientMessageGetTransactionDetails +GameclientMessageGetTransactionHistory +GameclientMessageGoEast +GameclientMessageGoNorth +GameclientMessageGoNorthEast +GameclientMessageGoNorthWest +GameclientMessageGoPath +GameclientMessageGoSouth +GameclientMessageGoSouthEast +GameclientMessageGoSouthWest +GameclientMessageGoWest +GameclientMessageGreet +GameclientMessageGuildMessage +GameclientMessageHighscores +GameclientMessageInspectObject +GameclientMessageInspectPlayer +GameclientMessageInviteToChannel +GameclientMessageInviteToParty +GameclientMessageJoinAggression +GameclientMessageJoinChannel +GameclientMessageJoinParty +GameclientMessageLeaveChannel +GameclientMessageLeaveParty +GameclientMessageLogin +GameclientMessageLook +GameclientMessageLookAtCreature +GameclientMessageLookNPCTrade +GameclientMessageLookTrade +GameclientMessageManagedContainer +GameclientMessageMarketAccept +GameclientMessageMarketBrowse +GameclientMessageMarketCancel +GameclientMessageMarketCreate +GameclientMessageMarketLeave +GameclientMessageMarketStatistics +GameclientMessageMonsterBonusEffectAction +GameclientMessageMount +GameclientMessageMoveObject +GameclientMessageOpenBossSlots +GameclientMessageOpenBosstiary +GameclientMessageOpenChannel +GameclientMessageOpenCyclopediaCharacterInfo +GameclientMessageOpenDepotSearch +GameclientMessageOpenExaltationHistory +GameclientMessageOpenMonsterCyclopedia +GameclientMessageOpenMonsterCyclopediaMonsters +GameclientMessageOpenMonsterCyclopediaRace +GameclientMessageOpenParentContainer +GameclientMessageOpenRewardWall +GameclientMessageOpenTransactionHistory +GameclientMessagePartyHuntAnalyser +GameclientMessagePassLeadership +GameclientMessagePickObjectToImbue +GameclientMessagePing +GameclientMessagePingBack +GameclientMessagePreyAction +GameclientMessagePrivateChannel +GameclientMessageQuickLoot +GameclientMessageQuickLootBlackWhitelist +GameclientMessageQuitGame +GameclientMessageRejectTrade +GameclientMessageRemoveBuddy +GameclientMessageRequestResourceBalance +GameclientMessageRequestSkillWheel +GameclientMessageRequestStoreCategories +GameclientMessageRequestStoreOffers +GameclientMessageRevokeInvitation +GameclientMessageRotateEast +GameclientMessageRotateNorth +GameclientMessageRotateSouth +GameclientMessageRotateWest +GameclientMessageRuleViolationReport +GameclientMessageSecondaryLogin +GameclientMessageSeekInContainer +GameclientMessageSellObject +GameclientMessageSetClientOptions +GameclientMessageSetCreaturePodiumConfiguration +GameclientMessageSetHirelingName +GameclientMessageSetOutfit +GameclientMessageSetTactics +GameclientMessageSetVocation +GameclientMessageShareExperience +GameclientMessageSoulSealsFightMonster +GameclientMessageSpellTargetConfig +GameclientMessageStartOfflineTraining +GameclientMessageStashAction +GameclientMessageStop +GameclientMessageStoreEvent +GameclientMessageTalk +GameclientMessageTaskboard +GameclientMessageTeamFinderAssembleTeam +GameclientMessageTeamFinderJoinTeam +GameclientMessageTeleport +GameclientMessageToggleWrapState +GameclientMessageTrackBestiaryRace +GameclientMessageTrackImbuements +GameclientMessageTrackQuestFlags +GameclientMessageTradeObject +GameclientMessageTransferCurrency +GameclientMessageTurnObject +GameclientMessageType +GameclientMessageUpContainer +GameclientMessageUpdateExivaOptions +GameclientMessageUseObject +GameclientMessageUseOnCreature +GameclientMessageUseTwoObjects +GameclientMessageWeaponProficiencyCommand diff --git a/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/protocol-handler-code-xrefs.tsv b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/protocol-handler-code-xrefs.tsv new file mode 100644 index 0000000000..54bd275e9d --- /dev/null +++ b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/protocol-handler-code-xrefs.tsv @@ -0,0 +1,48 @@ +instruction_va type_string evidence_strength semantic_dispatcher_edge_proven +0xd0e22d tibia::authentication::TLoginProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd0e2dd tibia::bossbestiary::TBossBestiaryProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd0e50d tibia::chat::TChatProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd290dd tibia::container::TContainerProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2943d tibia::creatures::TCreatureProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2952d tibia::creatures::TUnjustifiedPointsProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2961d tibia::creatures::TVipProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2989d tibia::cyclopedia::TBestiaryTrackerProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd29a3d tibia::cyclopedia::TCyclopediaProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd29ffd tibia::dailyreward::TDailyRewardProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2a0ed tibia::effects::TEffectProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2a1dd tibia::exaltation::TExaltationProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2a2cd tibia::exivaoptions::TExivaOptionsProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2a45d tibia::friends::TFriendsProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2a5ed tibia::game::TBlessingsProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2a69d tibia::game::TBossDifficultySelectionProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2a73d tibia::game::TEditTextProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2a87d tibia::game::TGameEventProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2a8cd tibia::game::TGameProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2ad4d tibia::game::TPlayerProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2ae4d tibia::game::TPremiumProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2af1d tibia::game::TServerModalDialogProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xd2b04d tibia::game::TSpellBookProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdd493d tibia::highscores::THighscoresProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdd4a2d tibia::imbuing::TImbuingProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdd4e8d tibia::input::TGatherAllProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdd536d tibia::quickloot::TManagedContainersProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdd556d tibia::market::TMarketProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdd583d tibia::minimap::TMinimapProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdd5bad tibia::network::TNetworkQualityProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdd5cfd tibia::news::TNewsProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdd5f4d tibia::prey::TPreyProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdd5fed tibia::proficiency::TProficiencyProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdfe0ed tibia::questlog::TQuestLogProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdfe30d tibia::reporting::TBugReportProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdfe35d tibia::reporting::TRuleViolationProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdfe5dd tibia::skillwheel::TSkillWheelProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdfea5d tibia::sound::TSoundProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdfebad tibia::spells::TSpellsProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdfeebd tibia::store::TStoreProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdff27d tibia::taskboard::TTaskboardProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdff36d tibia::teamfinder::TTeamFinderProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdff4ad tibia::trade::TCharacterTradeProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdff54d tibia::trade::TNPCTradeProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdff68d tibia::trade::TPlayerTradeProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdff7dd tibia::tutorial::TTutorialProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false +0xdffb2d tibia::worldmap::TWorldmapProtocolMessageHandler DIRECT_CODE_TO_STRING_XREF false diff --git a/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/protocol-server-to-client.txt b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/protocol-server-to-client.txt new file mode 100644 index 0000000000..85eac79a83 --- /dev/null +++ b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/protocol-server-to-client.txt @@ -0,0 +1,189 @@ +GameserverMessageAmbientLight +GameserverMessageBestiaryTracker +GameserverMessageBlessings +GameserverMessageBlessingsDialog +GameserverMessageBossDifficultySelection +GameserverMessageBossSlots +GameserverMessageBossTracking +GameserverMessageBosstiary +GameserverMessageBosstiaryHighlight +GameserverMessageBosstiaryStaticData +GameserverMessageBottomFloor +GameserverMessageBottomRow +GameserverMessageBuddyData +GameserverMessageBuddyGroupData +GameserverMessageBuddyStatusChange +GameserverMessageBugReportsAllowed +GameserverMessageChangeInContainer +GameserverMessageChangeOnMap +GameserverMessageChannelEvent +GameserverMessageChannels +GameserverMessageCharacterTradeConfiguration +GameserverMessageClientCheck +GameserverMessageCloseChannel +GameserverMessageCloseContainer +GameserverMessageCloseDepotSearch +GameserverMessageCloseExaltationDialog +GameserverMessageCloseImbuingDialog +GameserverMessageCloseNPCTrade +GameserverMessageCloseRewardWall +GameserverMessageCloseTrade +GameserverMessageConfigureCreaturePodium +GameserverMessageContainer +GameserverMessageCounterOffer +GameserverMessageCreateInContainer +GameserverMessageCreateOnMap +GameserverMessageCreatureData +GameserverMessageCreatureHealth +GameserverMessageCreatureLight +GameserverMessageCreatureMarks +GameserverMessageCreatureOutfit +GameserverMessageCreatureParty +GameserverMessageCreatureSkull +GameserverMessageCreatureSpeed +GameserverMessageCreatureType +GameserverMessageCreatureUnpass +GameserverMessageCreatureUpdate +GameserverMessageCreditBalance +GameserverMessageCyclopediaCharacterInfo +GameserverMessageCyclopediaCurrentHouseData +GameserverMessageCyclopediaHouseActionResult +GameserverMessageCyclopediaMapData +GameserverMessageCyclopediaStaticHouseData +GameserverMessageDailyRewardBasic +GameserverMessageDailyRewardCollectionState +GameserverMessageDailyRewardHistory +GameserverMessageDead +GameserverMessageDeleteInContainer +GameserverMessageDeleteInventory +GameserverMessageDeleteOnMap +GameserverMessageDepotSearchDetailList +GameserverMessageDepotSearchResult +GameserverMessageEditGuildMessage +GameserverMessageEditList +GameserverMessageEditText +GameserverMessageExaltationBaseData +GameserverMessageExaltationDialogRefresh +GameserverMessageExaltationHistory +GameserverMessageExaltationResult +GameserverMessageExivaSuppressed +GameserverMessageFieldData +GameserverMessageFriendSystemData +GameserverMessageFullMap +GameserverMessageGameEvent +GameserverMessageGemAtelierGemRevealed +GameserverMessageGraphicalEffects +GameserverMessageHighscores +GameserverMessageHirelingNameChange +GameserverMessageImbuementDurations +GameserverMessageImbuingDialogRefresh +GameserverMessageImpactTracking +GameserverMessageInspectionList +GameserverMessageInspectionState +GameserverMessageItemLooted +GameserverMessageItemWasted +GameserverMessageKillTracking +GameserverMessageLeftColumn +GameserverMessageLoginAdvice +GameserverMessageLoginChallenge +GameserverMessageLoginError +GameserverMessageLoginSuccess +GameserverMessageLoginWait +GameserverMessageMarketBrowse +GameserverMessageMarketDetail +GameserverMessageMarketEnter +GameserverMessageMarketLeave +GameserverMessageMarketStatistics +GameserverMessageMessage +GameserverMessageMonsterCyclopedia +GameserverMessageMonsterCyclopediaBonusEffects +GameserverMessageMonsterCyclopediaMonsters +GameserverMessageMonsterCyclopediaNewDetails +GameserverMessageMonsterCyclopediaRace +GameserverMessageMoveCreature +GameserverMessageMultiUseDelay +GameserverMessageNPCOffer +GameserverMessageNpcTalkParters +GameserverMessageObjectInfo +GameserverMessageOfferDescription +GameserverMessageOpenChannel +GameserverMessageOpenOwnChannel +GameserverMessageOpenRewardWall +GameserverMessageOutfit +GameserverMessageOutfitMemorial +GameserverMessageOwnOffer +GameserverMessagePartyHuntAnalyser +GameserverMessagePassiveAbilityData +GameserverMessagePendingStateEntered +GameserverMessagePing +GameserverMessagePingBack +GameserverMessagePlayerDataBasic +GameserverMessagePlayerDataCurrent +GameserverMessagePlayerGoods +GameserverMessagePlayerInventory +GameserverMessagePlayerSkills +GameserverMessagePlayerState +GameserverMessagePremiumTrigger +GameserverMessagePreyData +GameserverMessagePreyPrices +GameserverMessagePreyTimeLeft +GameserverMessagePrivateChannel +GameserverMessagePvpSituations +GameserverMessageQuestLine +GameserverMessageQuestLog +GameserverMessageReadyForSecondaryConnection +GameserverMessageRemoveGraphicalEffect +GameserverMessageRequestPurchaseData +GameserverMessageResourceBalance +GameserverMessageRestingAreaState +GameserverMessageRightColumn +GameserverMessageSessionDumpStart +GameserverMessageSessionEndInformation +GameserverMessageSetInventory +GameserverMessageSetStoreButtonDeeplink +GameserverMessageSetTactics +GameserverMessageShapedPerkReshapeOffers +GameserverMessageShowGameNews +GameserverMessageShowMessageDialog +GameserverMessageShowModalDialog +GameserverMessageShowMultiOfflineTrainingDialog +GameserverMessageSkillWheel +GameserverMessageSnapBack +GameserverMessageSoulSealsDialog +GameserverMessageSoundTrigger +GameserverMessageSpecialContainersAvailable +GameserverMessageSpellDataModification +GameserverMessageSpellDelay +GameserverMessageSpellGroupDelay +GameserverMessageStash +GameserverMessageStop +GameserverMessageStoreButtonIndicators +GameserverMessageStoreCategories +GameserverMessageStoreError +GameserverMessageStoreOffers +GameserverMessageStoreSuccess +GameserverMessageSwitchPreset +GameserverMessageTalk +GameserverMessageTaskboard +GameserverMessageTeamFinderTeamLeader +GameserverMessageTeamFinderTeamMember +GameserverMessageTextForReport +GameserverMessageTibiaTime +GameserverMessageTopFloor +GameserverMessageTopRow +GameserverMessageTrackQuestFlags +GameserverMessageTransactionDetails +GameserverMessageTransactionHistory +GameserverMessageTutorialHint +GameserverMessageUnjustifiedPoints +GameserverMessageUnlockedSpells +GameserverMessageUpdateExivaOptions +GameserverMessageUpdateManagedContainers +GameserverMessageUpdateTarget +GameserverMessageUpdatingShopBalance +GameserverMessageVocationSpecificPlayerData +GameserverMessageWait +GameserverMessageWeaponProficiency +GameserverMessageWeaponProficiencyNotification +GameserverMessageWorldEntered +GameserverMessageXpChanged diff --git a/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/received-message-methods.txt b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/received-message-methods.txt new file mode 100644 index 0000000000..894c9f09dc --- /dev/null +++ b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/received-message-methods.txt @@ -0,0 +1,189 @@ +receivedAmbientLightMessage +receivedBestiaryTrackerMessage +receivedBlessingsDialogMessage +receivedBlessingsMessage +receivedBossDifficultySelectionMessage +receivedBossSlotsMessage +receivedBossTrackingMessage +receivedBosstiaryHighlightMessage +receivedBosstiaryMessage +receivedBosstiaryStaticDataMessage +receivedBottomFloorMessage +receivedBottomRowMessage +receivedBuddyDataMessage +receivedBuddyGroupDataMessage +receivedBuddyStatusChangeMessage +receivedBugReportsAllowedMessage +receivedChangeInContainerMessage +receivedChangeOnMapMessage +receivedChannelEventMessage +receivedChannelsMessage +receivedCharacterTradeConfigurationMessage +receivedClientCheckMessage +receivedCloseChannelMessage +receivedCloseContainerMessage +receivedCloseDepotSearchMessage +receivedCloseExaltationDialogMessage +receivedCloseImbuingDialogMessage +receivedCloseNPCTradeMessage +receivedCloseRewardWallMessage +receivedCloseTradeMessage +receivedConfigureCreaturePodiumMessage +receivedContainerMessage +receivedCounterOfferMessage +receivedCreateInContainerMessage +receivedCreateOnMapMessage +receivedCreatureDataMessage +receivedCreatureHealthMessage +receivedCreatureLightMessage +receivedCreatureMarksMessage +receivedCreatureOutfitMessage +receivedCreaturePartyMessage +receivedCreatureSkullMessage +receivedCreatureSpeedMessage +receivedCreatureTypeMessage +receivedCreatureUnpassMessage +receivedCreatureUpdateMessage +receivedCreditBalanceMessage +receivedCyclopediaCharacterInfoMessage +receivedCyclopediaCurrentHouseDataMessage +receivedCyclopediaHouseActionResultMessage +receivedCyclopediaMapDataMessage +receivedCyclopediaStaticHouseDataMessage +receivedDailyRewardBasicMessage +receivedDailyRewardCollectionStateMessage +receivedDailyRewardHistoryMessage +receivedDeadMessage +receivedDeleteInContainerMessage +receivedDeleteInventoryMessage +receivedDeleteOnMapMessage +receivedDepotSearchDetailListMessage +receivedDepotSearchResultMessage +receivedEditGuildMessageMessage +receivedEditListMessage +receivedEditTextMessage +receivedExaltationBaseDataMessage +receivedExaltationDialogRefreshMessage +receivedExaltationHistoryMessage +receivedExaltationResultMessage +receivedExivaSuppressedMessage +receivedFieldDataMessage +receivedFriendSystemDataMessage +receivedFullMapMessage +receivedGameEventMessage +receivedGemAtelierGemRevealedMessage +receivedGraphicalEffectsMessage +receivedHighscoresMessage +receivedHirelingNameChangeMessage +receivedImbuementDurationsMessage +receivedImbuingDialogRefreshMessage +receivedImpactTrackingMessage +receivedInspectionListMessage +receivedInspectionStateMessage +receivedItemLootedMessage +receivedItemWastedMessage +receivedKillTrackingMessage +receivedLeftColumnMessage +receivedLoginAdviceMessage +receivedLoginChallengeMessage +receivedLoginErrorMessage +receivedLoginSuccessMessage +receivedLoginWaitMessage +receivedMarketBrowseMessage +receivedMarketDetailMessage +receivedMarketEnterMessage +receivedMarketLeaveMessage +receivedMarketStatisticsMessage +receivedMessageMessage +receivedMonsterCyclopediaBonusEffectsMessage +receivedMonsterCyclopediaMessage +receivedMonsterCyclopediaMonstersMessage +receivedMonsterCyclopediaNewDetailsMessage +receivedMonsterCyclopediaRaceMessage +receivedMoveCreatureMessage +receivedMultiUseDelayMessage +receivedNPCOfferMessage +receivedNpcTalkPartersMessage +receivedObjectInfoMessage +receivedOfferDescriptionMessage +receivedOpenChannelMessage +receivedOpenOwnChannelMessage +receivedOpenRewardWallMessage +receivedOutfitMemorialMessage +receivedOutfitMessage +receivedOwnOfferMessage +receivedPartyHuntAnalyserMessage +receivedPassiveAbilityDataMessage +receivedPendingStateEnteredMessage +receivedPingBackMessage +receivedPingMessage +receivedPlayerDataBasicMessage +receivedPlayerDataCurrentMessage +receivedPlayerGoodsMessage +receivedPlayerInventoryMessage +receivedPlayerSkillsMessage +receivedPlayerStateMessage +receivedPremiumTriggerMessage +receivedPreyDataMessage +receivedPreyPricesMessage +receivedPreyTimeLeftMessage +receivedPrivateChannelMessage +receivedPvpSituationsMessage +receivedQuestLineMessage +receivedQuestLogMessage +receivedReadyForSecondaryConnectionMessage +receivedRemoveGraphicalEffectMessage +receivedRequestPurchaseDataMessage +receivedResourceBalanceMessage +receivedRestingAreaStateMessage +receivedRightColumnMessage +receivedSessionDumpStartMessage +receivedSessionEndInformationMessage +receivedSetInventoryMessage +receivedSetStoreButtonDeeplinkMessage +receivedSetTacticsMessage +receivedShapedPerkReshapeOffersMessage +receivedShowGameNewsMessage +receivedShowMessageDialogMessage +receivedShowModalDialogMessage +receivedShowMultiOfflineTrainingDialogMessage +receivedSkillWheelMessage +receivedSnapBackMessage +receivedSoulSealsDialogMessage +receivedSoundTriggerMessage +receivedSpecialContainersAvailableMessage +receivedSpellDataModificationMessage +receivedSpellDelayMessage +receivedSpellGroupDelayMessage +receivedStashMessage +receivedStopMessage +receivedStoreButtonIndicatorsMessage +receivedStoreCategoriesMessage +receivedStoreErrorMessage +receivedStoreOffersMessage +receivedStoreSuccessMessage +receivedSwitchPresetMessage +receivedTalkMessage +receivedTaskboardMessage +receivedTeamFinderTeamLeaderMessage +receivedTeamFinderTeamMemberMessage +receivedTextForReportMessage +receivedTibiaTimeMessage +receivedTopFloorMessage +receivedTopRowMessage +receivedTrackedQuestFlagsMessage +receivedTransactionDetailsMessage +receivedTransactionHistoryMessage +receivedTutorialHintMessage +receivedUnjustifiedPointsMessage +receivedUnlockedSpellsMessage +receivedUpdateExivaOptionsMessage +receivedUpdateManagedContainersMessage +receivedUpdateTargetMessage +receivedUpdatingShopBalanceMessage +receivedVocationSpecificPlayerDataMessage +receivedWaitMessage +receivedWeaponProficiencyMessage +receivedWeaponProficiencyNotificationMessage +receivedWorldEnteredMessage +receivedXpChangedMessage diff --git a/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/result.md b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/result.md new file mode 100644 index 0000000000..02c3f14a31 --- /dev/null +++ b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/result.md @@ -0,0 +1,201 @@ +# Track A S1 unfiltered static census — result + +Task: `OTC-20260818-track-a-s1-unfiltered-static-census` +PR: `#509` +Execution: `github_hosted`, `runtime_access: none` +Exact client: `15.32.df7b29` / `51965216` / `e6c244bd39fe2e0632f6f000efd3147164696efa8e901718668e0442325ff7fe` + +## Result + +The bounded exact-file producer completed successfully without launching or observing the official client: + +```text +run 32112814216 +job 95635760592 +result SUCCESS +artifact 9315562574 +sha256 583c8c217fa2eaa2411f79995473cd910b8803d8599f80574491ca27b8ab9860 +``` + +The raw compressed/unpacked official client was deleted before artifact upload. The artifact contains sanitized text/JSON only. No Synology, X11/VNC, process memory, credential/session value, login, gameplay, packet capture or PR #475 runtime surface was accessed. + +## FACT — exhaustive generated-message denominator + +Fresh exact-build census: + +```text +PROTOCOL_MESSAGE_TOTAL=349 +CLIENT_TO_SERVER=160 +SERVER_TO_CLIENT=189 +``` + +The fresh lists are byte-for-byte identical to the independent sanitized #473 control artifact (`run 32022209943`, artifact `9285763750`): + +```text +protocol-all.txt +sha256 55f7cf2d6d4a63df6e24b8b156e38f1a2a64a9d6394357aa914661ab48fd983b + +protocol-client-to-server.txt +sha256 621ecb7aa1a62aae559e8d793d1aebe9289d84811bc43c4339a7153458b553f0 + +protocol-server-to-client.txt +sha256 e642f661546c2e6e89ddcd77ac5e8aa9cd517408a309f95a3a367af943550d96 +``` + +The complete 160/189 registries are persisted beside this report. The old 98-message capability-regex subset is therefore conclusively not an exhaustive protocol denominator. + +## FACT — complete `received*Message` string denominator + +The broader producer selector retained `542` candidate method strings, but full review split that set rather than calling all 542 inbound handlers: + +```text +handle* 149 +received* 189 +on* 204 +TOTAL 542 +``` + +The exact result that matters for the inbound S1 denominator is: + +```text +GENERATED_SERVER_MESSAGES=189 +RECEIVED_MESSAGE_METHOD_STRINGS=189 +EXACT_STEM_MATCHES=188 +NAMING_VARIANTS=1 +``` + +The complete 189-method receive surface is persisted in `received-message-methods.txt`. + +For 188 entries the mapping obtained by removing `GameserverMessage` and `received...Message` wrappers is exactly equal. The sole name variant is: + +```text +GameserverMessageTrackQuestFlags +receivedTrackedQuestFlagsMessage +``` + +The binary also contains `handleTrackedQuestFlagsMessage` and `onTrackedQuestFlagsChanged`. + +Presence and denominator counts are **FACT**. The apparent one-to-one generated-message ↔ receive-method naming alignment is **INFERENCE_STATIC_LEXICAL_ONLY** until exact static dispatch/dataflow proves the edge. + +## FACT — protocol-handler type/code surface + +The fresh exact binary produced: + +```text +148 relevant demangled protocol/storage/session/data types in the producer artifact +51 interesting strings with direct executable code xrefs +52 total retained direct code-to-string xrefs +47 distinct *ProtocolMessageHandler class names with direct code-to-class-string xrefs +``` + +Examples: + +```text +tibia::authentication::TLoginProtocolMessageHandler +tibia::chat::TChatProtocolMessageHandler +tibia::container::TContainerProtocolMessageHandler +tibia::creatures::TCreatureProtocolMessageHandler +tibia::game::TGameProtocolMessageHandler +tibia::game::TPlayerProtocolMessageHandler +tibia::game::TServerModalDialogProtocolMessageHandler +tibia::market::TMarketProtocolMessageHandler +tibia::network::TNetworkQualityProtocolMessageHandler +tibia::quickloot::TManagedContainersProtocolMessageHandler +tibia::trade::TPlayerTradeProtocolMessageHandler +tibia::worldmap::TWorldmapProtocolMessageHandler +``` + +All 47 direct class-string xrefs are persisted in `protocol-handler-code-xrefs.tsv`. These xrefs prove exact executable references to the class-name strings. They do **not** prove that the referring instruction is the semantic message dispatcher. + +The many domain-specific handler types prove a partitioned native handler **type surface**. They do not prove or disprove a shared upstream dispatcher/queue that routes into those handlers; that remains `UNKNOWN`. + +## FACT — current-main exact-build anchors still resolve + +The repository's relocation-aware resolver re-resolved every configured exact-build target uniquely: + +```text +TGameClient primary vptr 0x3076908 +TGameserverGameSession primary vptr 0x3078ba0 +TPlayerProtocolMessageHandler primary vptr 0x308a008 +TPlayerData primary vptr 0x308ca70 +TContainerStorage primary vptr 0x308a1a0 +TCreatureStorage primary vptr 0x308d078 +TWorldmapProtocolMessageHandler primary vptr 0x30871d8 +``` + +This is exact-file structural evidence only; no current runtime instance is claimed. + +## High-value non-worldmap lexical correlations + +These are name-surface correlations only, not proven call edges. + +```text +GameserverMessagePlayerDataCurrent -> receivedPlayerDataCurrentMessage +GameserverMessagePlayerState -> receivedPlayerStateMessage +GameserverMessagePlayerInventory -> receivedPlayerInventoryMessage +GameserverMessagePlayerSkills -> receivedPlayerSkillsMessage + +GameserverMessageCreatureData -> receivedCreatureDataMessage +GameserverMessageCreatureHealth -> receivedCreatureHealthMessage +GameserverMessageCreatureUpdate -> receivedCreatureUpdateMessage +GameserverMessageMoveCreature -> receivedMoveCreatureMessage + +GameserverMessageContainer -> receivedContainerMessage +GameserverMessageCreateInContainer -> receivedCreateInContainerMessage +GameserverMessageChangeInContainer -> receivedChangeInContainerMessage +GameserverMessageDeleteInContainer -> receivedDeleteInContainerMessage + +GameserverMessageTalk -> receivedTalkMessage +GameserverMessageChannels -> receivedChannelsMessage +GameserverMessageChannelEvent -> receivedChannelEventMessage +GameserverMessagePrivateChannel -> receivedPrivateChannelMessage +``` + +## UNKNOWN — exact inbound dispatch graph + +This task does not prove: + +```text +GameserverMessageX -> exact concrete handler function +receivedXMessage -> exact concrete handler owner +handler -> exact storage/controller mutation +one global/common inbound dispatcher +runtime delivery or causal state mutation +``` + +The producer deliberately reports `semantic_common_inbound_dispatcher = UNKNOWN`. + +The direct class-string xrefs occur in several address clusters and are compatible with generated Qt metaobject/metacast-related code, but that role is not promoted without a bounded instruction/control-flow discriminator. + +## Diagnostic family-bucket correction + +The producer emitted convenience lexical family buckets. They are **not promoted** because naive substring rules can create false grouping, for example `Mark` inside `Market` or `row` inside `Browse`. Exact generated names, received method names, class types and xrefs are the durable evidence. + +## Ranked non-conflicting S2 frontiers + +While PR #475 owns the physical native-login/worldmap runtime lane, the best next static frontiers are: + +1. `TPlayerProtocolMessageHandler` QMeta/dispatch graph for `PlayerDataCurrent`, `PlayerState`, `PlayerInventory`, `PlayerSkills`, followed by the static edge into `TPlayerData` where provable. +2. `TCreatureProtocolMessageHandler` dispatch graph for `CreatureData/Health/Update/MoveCreature`, followed by the static edge into `TCreatureStorage` where provable. +3. `TContainerProtocolMessageHandler` dispatch graph for `Container/Create/Change/DeleteInContainer`, followed by the static edge into `TContainerStorage` where provable. +4. `TChatProtocolMessageHandler` graph for `Talk/Channels/ChannelEvent/Open/Close/PrivateChannel`, followed by chat-storage/controller ownership where provable. + +Worldmap semantic/runtime work remains excluded because PR #475 currently owns that physical frontier. Login/session runtime propagation is also not selected as the immediate follow-up while #475 is actively working the native world-entry chain. + +## Classification + +```yaml +GENERATED_MESSAGE_DENOMINATOR: FACT +COMPLETE_160_OUTBOUND_REGISTRY: FACT +COMPLETE_189_INBOUND_REGISTRY: FACT +COMPLETE_189_RECEIVED_METHOD_STRING_SURFACE: FACT_STRING_PRESENCE +188_EXACT_STEM_MATCHES_PLUS_1_NAMING_VARIANT: FACT_STRING_COMPARISON +GENERATED_MESSAGE_TO_RECEIVED_METHOD_EDGE: INFERENCE_STATIC_LEXICAL_ONLY +PROTOCOL_HANDLER_TYPE_PRESENCE: FACT +DIRECT_CODE_TO_HANDLER_CLASS_STRING_XREFS: FACT +MESSAGE_TO_CONCRETE_HANDLER_DISPATCH: UNKNOWN +RECEIVED_METHOD_TO_HANDLER_OWNER: UNKNOWN +HANDLER_TO_STORAGE_CONTROLLER_EDGE: UNKNOWN +COMMON_UPSTREAM_INBOUND_DISPATCHER: UNKNOWN +RUNTIME_BEHAVIOR: NOT_OBSERVED +``` diff --git a/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/summary.json b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/summary.json new file mode 100644 index 0000000000..a70749559e --- /dev/null +++ b/docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/summary.json @@ -0,0 +1,83 @@ +{ + "schema": "track-a-s1-unfiltered-static-census-result-v2", + "task": "OTC-20260818-track-a-s1-unfiltered-static-census", + "pr": 509, + "exact_client": { + "version": "15.32.df7b29", + "size": 51965216, + "sha256": "e6c244bd39fe2e0632f6f000efd3147164696efa8e901718668e0442325ff7fe", + "packed_lzma_sha256": "496c5b3517c0996a1bbd0e76a7738d450f79d0bf4fef140a807044776042dc9b" + }, + "execution": { + "class": "github_hosted", + "runtime_access": "none", + "client_executed": false, + "secret_access": false, + "pr475_runtime_touched": false, + "raw_client_committed_or_uploaded": false + }, + "fresh_producer": { + "head": "cb575cec2077c8002bb6712ffac4d4dc77420499", + "run": 32112814216, + "job": 95635760592, + "conclusion": "SUCCESS", + "artifact": 9315562574, + "artifact_digest": "sha256:583c8c217fa2eaa2411f79995473cd910b8803d8599f80574491ca27b8ab9860" + }, + "independent_control": { + "source_pr": 473, + "run": 32022209943, + "artifact": 9285763750, + "artifact_digest": "sha256:0f71be3021885f3f8881199c5f74839fca6c6c5081594fab48998298abaadbd6", + "protocol_all_sha256": "55f7cf2d6d4a63df6e24b8b156e38f1a2a64a9d6394357aa914661ab48fd983b", + "client_to_server_sha256": "621ecb7aa1a62aae559e8d793d1aebe9289d84811bc43c4339a7153458b553f0", + "server_to_client_sha256": "e642f661546c2e6e89ddcd77ac5e8aa9cd517408a309f95a3a367af943550d96" + }, + "protocol": { + "total": 349, + "client_to_server": 160, + "server_to_client": 189, + "fresh_lists_byte_identical_to_control": true, + "all_189_inbound_names_persisted": true, + "all_160_outbound_names_persisted": true + }, + "static_method_surface": { + "broad_candidate_method_strings": 542, + "handle_prefixed": 149, + "received_prefixed": 189, + "on_prefixed": 204, + "received_message_methods_persisted": 189, + "server_message_stems_matching_received_method_stems_exactly": 188, + "sole_stem_variant": { + "generated": "GameserverMessageTrackQuestFlags", + "received_method": "receivedTrackedQuestFlagsMessage" + }, + "received_surface_is_dispatch_proof": false, + "relevant_demangled_types_in_artifact": 148, + "direct_code_to_string_xref_strings": 51, + "direct_code_to_string_xrefs": 52, + "protocol_message_handler_classes_with_direct_code_string_xref": 47, + "semantic_common_inbound_dispatcher": "UNKNOWN" + }, + "exact_build_anchor_resolution": { + "player_protocol_handler": "0x308a008", + "player_data": "0x308ca70", + "creature_storage": "0x308d078", + "container_storage": "0x308a1a0", + "gameserver_game_session": "0x3078ba0", + "game_client": "0x3076908", + "worldmap_handler": "0x30871d8", + "all_unique": true + }, + "classification": { + "generated_message_denominator": "FACT", + "complete_received_method_name_denominator": "FACT_STRING_PRESENCE", + "received_method_to_generated_message_name_alignment": "INFERENCE_STATIC_LEXICAL_ONLY", + "handler_class_type_presence": "FACT", + "direct_code_to_handler_class_string_xrefs": "FACT", + "generated_message_to_concrete_handler_dispatch": "UNKNOWN", + "handler_to_storage_or_controller_edge": "UNKNOWN", + "one_common_inbound_dispatcher": "UNKNOWN" + }, + "diagnostic_family_bucket_warning": "Producer protocol-server-families.json used substring-only diagnostics and is not promoted as semantic evidence; e.g. Market names can collide with Mark/row substrings. Durable conclusions use exact names and explicit evidence classes instead." +} diff --git a/docs/agents/reports/OTCLIENT-20260818-track-a-s1-unfiltered-static-census.md b/docs/agents/reports/OTCLIENT-20260818-track-a-s1-unfiltered-static-census.md new file mode 100644 index 0000000000..b141dacb24 --- /dev/null +++ b/docs/agents/reports/OTCLIENT-20260818-track-a-s1-unfiltered-static-census.md @@ -0,0 +1,224 @@ +# OTCLIENT Track A — exhaustive inbound static census + +Date: 2026-08-18 +Task: `OTC-20260818-track-a-s1-unfiltered-static-census` +PR: `#509` +Track: `official-client-re` +Execution: GitHub-hosted static exact-file analysis only (`runtime_access: none`) + +## Executive result + +The exact official Linux Tibia `15.32.df7b29` client has a stable generated protocol denominator: + +```text +349 total generated protocol message types +160 client -> server +189 server -> client +``` + +Fresh run `32112814216` reproduced all three registries byte-for-byte against the independent sanitized #473 control artifact. The historical 98-message capability-regex set is therefore a discovery subset, not the protocol denominator. + +The broad static method selector returned `542` strings, but they are not all inbound handlers: + +```text +handle* 149 +received* 189 +on* 204 +TOTAL 542 +``` + +The clean inbound receive-surface result is **189 exact `received*Message` strings** for **189 generated `GameserverMessage*` names**. Comparing stems gives `188` exact name matches and one naming variant: + +```text +GameserverMessageTrackQuestFlags +receivedTrackedQuestFlagsMessage +``` + +This is FACT about exact-binary string presence and string comparison. It is not yet proof of a generated-message -> concrete receive-method dispatch edge. + +The client also contains at least `47` distinct `*ProtocolMessageHandler` class names with direct executable code-to-class-string xrefs. This proves a broad, domain-partitioned protocol-handler **type surface**. It neither proves nor disproves a shared upstream dispatcher; that remains `UNKNOWN`. + +## Exact client fence and producer + +```yaml +version: 15.32.df7b29 +size: 51965216 +sha256: e6c244bd39fe2e0632f6f000efd3147164696efa8e901718668e0442325ff7fe +packed_lzma_sha256: 496c5b3517c0996a1bbd0e76a7738d450f79d0bf4fef140a807044776042dc9b +platform: official_native_linux_only +producer_run: 32112814216 +producer_job: 95635760592 +producer_result: SUCCESS +producer_artifact: 9315562574 +producer_artifact_digest: sha256:583c8c217fa2eaa2411f79995473cd910b8803d8599f80574491ca27b8ab9860 +``` + +The producer did not execute the client. It deleted compressed/unpacked proprietary client bytes before artifact upload. It did not use Synology, X11/VNC, process memory, credentials, account/session values, login/gameplay or PR #475 runtime state. + +## Independent denominator control + +Prior sanitized exact-build control: + +```text +run 32022209943 +artifact 9285763750 +digest sha256:0f71be3021885f3f8881199c5f74839fca6c6c5081594fab48998298abaadbd6 +``` + +Fresh and control registry hashes are identical: + +| Registry | SHA-256 | +|---|---| +| all 349 | `55f7cf2d6d4a63df6e24b8b156e38f1a2a64a9d6394357aa914661ab48fd983b` | +| 160 client -> server | `621ecb7aa1a62aae559e8d793d1aebe9289d84811bc43c4339a7153458b553f0` | +| 189 server -> client | `e642f661546c2e6e89ddcd77ac5e8aa9cd517408a309f95a3a367af943550d96` | + +Complete durable registries: + +```text +docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/protocol-client-to-server.txt +docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/protocol-server-to-client.txt +docs/agents/evidence/OTC-20260818-track-a-s1-unfiltered-static-census/received-message-methods.txt +``` + +## Receive-method name surface + +For `188/189` generated inbound names, removing wrappers gives exactly the same stem: + +```text +GameserverMessagePlayerDataCurrent -> receivedPlayerDataCurrentMessage +GameserverMessagePlayerState -> receivedPlayerStateMessage +GameserverMessagePlayerInventory -> receivedPlayerInventoryMessage +GameserverMessagePlayerSkills -> receivedPlayerSkillsMessage + +GameserverMessageCreatureData -> receivedCreatureDataMessage +GameserverMessageCreatureHealth -> receivedCreatureHealthMessage +GameserverMessageCreatureUpdate -> receivedCreatureUpdateMessage +GameserverMessageMoveCreature -> receivedMoveCreatureMessage + +GameserverMessageContainer -> receivedContainerMessage +GameserverMessageCreateInContainer -> receivedCreateInContainerMessage +GameserverMessageChangeInContainer -> receivedChangeInContainerMessage +GameserverMessageDeleteInContainer -> receivedDeleteInContainerMessage + +GameserverMessageTalk -> receivedTalkMessage +GameserverMessageChannels -> receivedChannelsMessage +GameserverMessageChannelEvent -> receivedChannelEventMessage +GameserverMessagePrivateChannel -> receivedPrivateChannelMessage +``` + +The sole stem variant is `TrackQuestFlags` vs `TrackedQuestFlags`; the binary separately contains `handleTrackedQuestFlagsMessage` and `onTrackedQuestFlagsChanged`. + +Classification: + +```yaml +COMPLETE_189_RECEIVED_METHOD_STRING_SURFACE: FACT_STRING_PRESENCE +188_EXACT_STEM_MATCHES_PLUS_1_NAMING_VARIANT: FACT_STRING_COMPARISON +GENERATED_MESSAGE_TO_RECEIVED_METHOD_DISPATCH: INFERENCE_STATIC_LEXICAL_ONLY +``` + +## Protocol-handler type/code surface + +The producer retained `148` relevant demangled protocol/storage/session/data types and `47` distinct `*ProtocolMessageHandler` class strings with direct executable xrefs. Representative classes: + +```text +tibia::authentication::TLoginProtocolMessageHandler +tibia::chat::TChatProtocolMessageHandler +tibia::container::TContainerProtocolMessageHandler +tibia::creatures::TCreatureProtocolMessageHandler +tibia::game::TGameProtocolMessageHandler +tibia::game::TPlayerProtocolMessageHandler +tibia::game::TServerModalDialogProtocolMessageHandler +tibia::market::TMarketProtocolMessageHandler +tibia::network::TNetworkQualityProtocolMessageHandler +tibia::quickloot::TManagedContainersProtocolMessageHandler +tibia::questlog::TQuestLogProtocolMessageHandler +tibia::sound::TSoundProtocolMessageHandler +tibia::store::TStoreProtocolMessageHandler +tibia::trade::TPlayerTradeProtocolMessageHandler +tibia::worldmap::TWorldmapProtocolMessageHandler +``` + +The complete 47-entry catalogue is `protocol-handler-code-xrefs.tsv`. Every row is explicitly classified only as: + +```text +DIRECT_CODE_TO_STRING_XREF +semantic_dispatcher_edge_proven=false +``` + +The xrefs are compatible with generated Qt/metaobject-related code, but this task does not promote that role without a bounded instruction/control-flow proof. + +## Exact-build anchor revalidation + +The current-main relocation-aware resolver uniquely re-resolved all configured anchors: + +| Target | Primary vptr | +|---|---:| +| `TGameClient` | `0x3076908` | +| `TGameserverGameSession` | `0x3078ba0` | +| `TPlayerProtocolMessageHandler` | `0x308a008` | +| `TPlayerData` | `0x308ca70` | +| `TContainerStorage` | `0x308a1a0` | +| `TCreatureStorage` | `0x308d078` | +| `TWorldmapProtocolMessageHandler` | `0x30871d8` | + +These are exact-file anchors, not current runtime addresses or live-object proof. + +## Negative control: rejected family buckets + +The temporary producer emitted convenience substring family buckets. Final audit rejected them as semantic evidence because substring collisions exist, e.g. `Mark` inside `Market` and `row` inside `Browse`. No durable conclusion depends on those buckets. + +## Proven / inferred / unknown + +```yaml +FACT: + exact_generated_protocol_denominator: 349 + client_to_server_registry: 160 + server_to_client_registry: 189 + fresh_lists_match_independent_control_byte_for_byte: true + broad_candidate_method_strings: 542 + handle_prefixed_strings: 149 + received_message_strings: 189 + on_prefixed_strings: 204 + exact_received_stem_matches: 188 + received_naming_variants: 1 + protocol_handler_classes_with_direct_code_string_xref: 47 + current_profile_vptr_anchors_unique: true + +INFERENCE: + generated_message_to_received_method_name_alignment: static_lexical_only + native_protocol_handler_type_surface: domain_partitioned + +UNKNOWN: + generated_message_to_concrete_handler_dispatch + received_method_to_handler_owner + handler_to_storage_controller_mutation_edge + common_upstream_inbound_dispatcher + runtime_object_identity + runtime_message_delivery +``` + +## Next non-conflicting static work + +While PR #475 owns native-login/worldmap runtime work, the highest-value independent S2 frontiers are: + +```text +1. TPlayerProtocolMessageHandler + -> PlayerDataCurrent / PlayerState / PlayerInventory / PlayerSkills + -> exact QMeta/dispatch targets + -> static TPlayerData owner/mutation edge where provable + +2. TCreatureProtocolMessageHandler + -> CreatureData / CreatureHealth / CreatureUpdate / MoveCreature + -> static TCreatureStorage edge + +3. TContainerProtocolMessageHandler + -> Container / Create / Change / DeleteInContainer + -> static TContainerStorage edge + +4. TChatProtocolMessageHandler + -> Talk / Channels / ChannelEvent / PrivateChannel + -> chat storage/controller edge +``` + +These are exact-file static tasks. They do not need to consume or observe PR #475's physical runtime. diff --git a/docs/agents/tasks/archive/OTC-20260818-track-a-s1-unfiltered-static-census.md b/docs/agents/tasks/archive/OTC-20260818-track-a-s1-unfiltered-static-census.md new file mode 100644 index 0000000000..cc35790eb8 --- /dev/null +++ b/docs/agents/tasks/archive/OTC-20260818-track-a-s1-unfiltered-static-census.md @@ -0,0 +1,155 @@ +--- +task_id: OTC-20260818-track-a-s1-unfiltered-static-census +status: completed +agent: ChatGPT +session_role: researcher_then_coordinator_review +project_lane: otclient +lane: P2-NETWORK +track_id: official-client-re +task_kind: discovery +phase: archived +execution_mode: github_only +EXECUTION_CLASS: github_hosted +RUNTIME_ACCESS: none +PERSISTENT_SESSION_ROLE: none +PHYSICAL_E2E_REQUIRED: false +runtime_access: none +mutation_authorized: false +source_pr: 509 +source_branch: research/OTC-20260818-track-a-s1-unfiltered-static-census +source_final_head: b381a2a614c503f3d021af98432df99a069305c7 +base_main: ed09418b431c28087775b419f85bed404fa85d70 +completed: 2026-08-18T10:08:00+02:00 +risk: medium +owned_paths_released: true +--- + +# Terminal result + +```yaml +RESEARCH_RESULT: COMPLETE +PROMOTION_DECISION: ACCEPT_WITH_EDITS +EXACT_CLIENT: 15.32.df7b29 +EXACT_CLIENT_SIZE: 51965216 +EXACT_CLIENT_SHA256: e6c244bd39fe2e0632f6f000efd3147164696efa8e901718668e0442325ff7fe +PROTOCOL_MESSAGE_TOTAL: 349 +CLIENT_TO_SERVER_MESSAGE_TOTAL: 160 +SERVER_TO_CLIENT_MESSAGE_TOTAL: 189 +RECEIVED_MESSAGE_STRING_TOTAL: 189 +RECEIVED_EXACT_STEM_MATCHES: 188 +RECEIVED_NAMING_VARIANTS: 1 +PROTOCOL_MESSAGE_HANDLER_CLASS_XREFS: 47 +COMMON_UPSTREAM_INBOUND_DISPATCHER: UNKNOWN +RUNTIME_ACCESS: none +PR475_RUNTIME_TOUCHED: false +``` + +## Accepted evidence + +Fresh exact-client producer: + +```text +run 32112814216 +job 95635760592 +result SUCCESS +artifact 9315562574 +digest sha256:583c8c217fa2eaa2411f79995473cd910b8803d8599f80574491ca27b8ab9860 +``` + +Independent #473 control: + +```text +run 32022209943 +artifact 9285763750 +digest sha256:0f71be3021885f3f8881199c5f74839fca6c6c5081594fab48998298abaadbd6 +``` + +Fresh and control protocol registries are byte-identical: + +```text +all 349 55f7cf2d6d4a63df6e24b8b156e38f1a2a64a9d6394357aa914661ab48fd983b +160 client -> server 621ecb7aa1a62aae559e8d793d1aebe9289d84811bc43c4339a7153458b553f0 +189 server -> client e642f661546c2e6e89ddcd77ac5e8aa9cd517408a309f95a3a367af943550d96 +``` + +## Accepted classification + +```yaml +FACT: + generated_protocol_denominator: 349 + client_to_server_registry: 160 + server_to_client_registry: 189 + broad_candidate_method_strings: 542 + handle_prefixed_strings: 149 + received_message_strings: 189 + on_prefixed_strings: 204 + received_exact_stem_matches: 188 + received_naming_variants: 1 + protocol_handler_classes_with_direct_code_string_xref: 47 + exact_profile_vptr_targets_unique: 7 + +INFERENCE: + generated_message_to_received_method_name_alignment: static_lexical_only + native_protocol_handler_type_surface: domain_partitioned + +UNKNOWN: + generated_message_to_concrete_handler_dispatch + received_method_to_handler_owner + handler_to_storage_controller_mutation_edge + common_upstream_inbound_dispatcher + runtime_delivery_or_state_mutation +``` + +## Coordinator edits / falsification + +Three overclaims were caught and repaired before promotion: + +1. substring-only diagnostic family buckets (`Mark`/`Market`, `row`/`Browse`) were rejected as semantic evidence; +2. the broad 542-method set was split into `149 handle* + 189 received* + 204 on*`; only the exact 189 `received*Message` strings are retained as the inbound receive-method string denominator; +3. many domain-specific handler types were not used to infer absence of a common upstream router; that topology remains `UNKNOWN`. + +## Source exact-head validation + +Source final head `b381a2a614c503f3d021af98432df99a069305c7`: + +```text +Track A agent runtime governance run 32114161352 = SUCCESS + Fresh admission behavior audit 95639845377 = SUCCESS + Deterministic admission-policy 95639845470 = SUCCESS +CI run 32114161531 = SUCCESS + CI / Required 95639907436 = SUCCESS +reviews = 0 +unresolved review threads = 0 +main freshness = PASS at ed09418b431c28087775b419f85bed404fa85d70 +``` + +Physical E2E is `NOT_APPLICABLE`: the task performed static exact-file discovery only and did not execute or observe the official client. + +## Safety / non-overlap + +```yaml +synology_used: false +x11_or_vnc_used: false +process_memory_used: false +credentials_used: false +login_performed: false +gameplay_performed: false +raw_client_committed_or_uploaded: false +pr475_runtime_observed: false +pr475_runtime_mutated: false +``` + +The temporary producer workflow was removed before promotion. + +## Next independent frontier + +The highest-value non-runtime continuation while PR #475 owns native login/worldmap runtime is: + +```text +TPlayerProtocolMessageHandler + -> PlayerDataCurrent / PlayerState / PlayerInventory / PlayerSkills + -> exact static QMeta/dispatch targets + -> static TPlayerData owner/mutation edge where provable +``` + +Then creature, container and chat handler graphs may be resolved independently.