docs: add send upload deep dive validation items

This commit is contained in:
zhaoyilun
2026-07-12 12:33:01 +08:00
parent a9e692a574
commit 7718e2dd34
4 changed files with 890 additions and 3 deletions

View File

@@ -0,0 +1,435 @@
# Send / Upload Deep Dive
Date: 2026-07-12
## Business summary
Offline deep dive confirms the remaining work is not generic sending code. The business blocker is logged-in runtime reachability plus online proof. Text send needs reachable AppContextManager/MessageScheduling/Chat. File send needs upload parameters and server-issued FileUploadResult.FileID before Chat.sendFileMessage can be meaningful.
## Decision
| Question | Answer |
| --- | --- |
| Should work stop before login? | No |
| Highest-value offline work | Deepen send/upload decomposition and prepare login validation items |
| Can production send be enabled offline? | No |
| Next package | login reachability probe package |
## Sources
| Source | Role | Exists | Lines | Size bytes |
| --- | --- | --- | ---: | ---: |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il` | main client; high-level send, file-send orchestration, runtime auth/service state | True | 1360035 | 74148460 |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il` | Chat/XMPP send implementation and file-message primitive | True | 87425 | 5019807 |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Service.dll.il` | file upload HTTP/service implementation | True | 3351 | 207786 |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il` | FileUploadPara/FileUploadResult/FileTransferParaBase DTO contracts | True | 1641 | 93585 |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Interface.dll.il` | IAppContextManager/IFileTransfer interface contracts | True | 4429 | 227335 |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Common.dll.il` | ServiceManager/Auth DTOs and common runtime state | True | 118343 | 5703293 |
## Deep-dive findings
| Item | Stage | Status | Evidence | Business meaning |
| --- | --- | --- | ---: | --- |
| `Text send high-level entry: AppContextManager.SendTxtMessageByJid` | `text_send` | `static_evidence_found` | 6 | Best business-level text-send candidate if reachable in logged-in runtime. |
| `Text send scheduling fallback: MessageScheduling.SendChatMessage` | `text_send` | `static_evidence_found` | 16 | Fallback text-send path if AppContextManager is hard to reach but Chat/Roster args exist. |
| `Low-level text primitive: Chat.SendMessage -> XMPPConnection.send` | `text_send` | `static_evidence_found` | 20 | Confirms final XMPP send primitive; not enough alone without authenticated Chat/XMPP state. |
| `Upload parameter base: FileTransferParaBase` | `file_upload` | `static_evidence_found` | 20 | Defines host, port, domain, local path, timeout/cache and token fields required by upload/download DTOs. |
| `Upload DTO: FileUploadPara` | `file_upload` | `static_evidence_found` | 20 | Concrete upload request DTO; adds IsImg/IsPublic and invokes FileTransferParaBase constructor. |
| `Upload service: IFileTransfer/FileTransfer.FileUpload` | `file_upload` | `static_evidence_found` | 20 | Managed upload entry; returns FileUploadResult and internally writes multipart token/form data. |
| `Upload auth/server state: HTTPFileServer + Auth token` | `file_upload` | `static_evidence_found` | 20 | File upload depends on runtime server/auth state, not only a local file path. |
| `Upload result: FileUploadResult.FileID and remote metadata` | `file_upload_result` | `static_evidence_found` | 20 | Server-issued FileID is required before a chat file message is meaningful. |
| `File-message finalization: trans_UploadCompleted / SendFileMessage / Chat.sendFileMessage` | `send_file_message` | `static_evidence_found` | 20 | After upload succeeds, the client constructs offline file-transfer content and sends chat file message. |
| `Target resolution: JID -> Chat / ChatRoom` | `runtime_context` | `static_evidence_found` | 20 | Both text and file send need a target JID mapped to Chat or ChatRoom; group handling may differ. |
| `Runtime owner: frmMain / IMPPManager / MessageCenter` | `runtime_context` | `static_evidence_found` | 20 | Likely owners of initialized logged-in state and message center callbacks. |
## What this adds to tomorrow's login validation
| Priority | Category | Validation item | Evidence to capture | Unlocks |
| --- | --- | --- | --- | --- |
| P0 | runtime | Confirm logged-in IMPlatformClient.exe process and loaded assemblies | process id, module list, loaded managed assemblies | all B-route adapter tests |
| P0 | runtime | Confirm AppContextManager/IAppContextManager reachability | type visible, instance path, SendTxtMessageByJid callable shape | text send high-level path |
| P0 | runtime | Confirm Chat/XMPPConnection authenticated state | Chat instance, XMPPConnection state, target JID mapping | text and file message finalization |
| P0 | file_upload | Capture FileUploadPara required values without leaking token | host, port, domain, local path presence, IsImg/IsPublic, token-present boolean/hash only | upload_file probe |
| P0 | file_upload | Confirm IFileTransfer/FileTransfer.FileUpload reachability | service instance or constructor path, method signature, safe call readiness | file upload |
| P0 | file_upload_result | Confirm FileUploadResult.FileID after safe test upload | FileID present, size/name or URL/remote folder metadata, failure code if upload fails | send_file_message |
| P0 | send_file_message | Confirm trans_UploadCompleted/SendFileMessage consumes FileID | FileID enters payload, Chat.sendFileMessage invoked, sent file record/ack | production file send |
| P0 | ack | Correlate sent record/ack with content hash or file hash | sent record timestamp, target ref, body/file metadata hash, ack/ref id | production gate |
| P1 | group | Confirm group ChatRoom branch and permissions | ChatRoom type, speech/upload permission state, group JID | group send/file send |
| P1 | fallback | If B-route reachability fails, capture A-route UI evidence | window hwnd, rtbSendMessage, btnSend, screenshots, failure reason | demo fallback only |
## Evidence by item
### Text send high-level entry: AppContextManager.SendTxtMessageByJid
Stage: `text_send`. Status: `static_evidence_found`. Evidence count: 6.
Business meaning: Best business-level text-send candidate if reachable in logged-in runtime.
Must verify tomorrow:
- Reach AppContextManager instance
- Confirm target JID/chat type mapping
- Invoke dry/probe path without send first
- Correlate sent record/ack after real send test
| Source | Kind | Snippet | Context |
| --- | --- | --- | --- |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:542112` | `string_literal` | `IL_09bf: ldstr "SendTxtMessageByJid"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:585987` | `signature_continuation` | `instance void SendTxtMessageByJid(string jid,` | `L585986: .method public hidebysig newslot virtual final instance void SendTxtMessageByJid(string jid,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:586197` | `method_end` | `} // end of method AppContextManager::SendTxtMessageByJid` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1358068` | `string_literal` | `IL_0c3f: ldstr "SendTxtMessageByJid"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Interface.dll.il:1920` | `signature_continuation` | `instance void SendTxtMessageByJid(string jid,` | `L1919: .method public hidebysig newslot abstract virtual instance void SendTxtMessageByJid(string jid,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Interface.dll.il:1924` | `method_end` | `} // end of method IAppContextManager::SendTxtMessageByJid` | `L1919: .method public hidebysig newslot abstract virtual instance void SendTxtMessageByJid(string jid,` |
### Text send scheduling fallback: MessageScheduling.SendChatMessage
Stage: `text_send`. Status: `static_evidence_found`. Evidence count: 16.
Business meaning: Fallback text-send path if AppContextManager is hard to reach but Chat/Roster args exist.
Must verify tomorrow:
- Locate or construct RosterContactsArgs
- Locate Chat instance
- Confirm direct/group branch
- Correlate sent record/ack
| Source | Kind | Snippet | Context |
| --- | --- | --- | --- |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:728720` | `callsite` | `IL_0213: call class [smack]com.vision.smack.packet.XmppMessage IMPP.Client.Core.MessageEngine.MessageScheduling::SendChatMessage(class IMPP.Client.Business.RosterContacts.RosterContactsArgs,` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1153541` | `reference` | `SendChatMessage(class [smack]com.vision.smack.Chat chat,` | `L1153540: .method public hidebysig static class [smack]com.vision.smack.packet.XmppMessage` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1153800` | `method_end` | `} // end of method MessageScheduling::SendChatMessage` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1154128` | `reference` | `SendChatMessage(class IMPP.Client.Business.RosterContacts.RosterContactsArgs rosterArgs,` | `L1154127: .method public hidebysig static class [smack]com.vision.smack.packet.XmppMessage` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1154187` | `callsite` | `IL_006e: call class [smack]com.vision.smack.packet.XmppMessage IMPP.Client.Core.MessageEngine.MessageScheduling::SendChatMessage(class [smack]com.vision.smack.Chat,` | `L1154127: .method public hidebysig static class [smack]com.vision.smack.packet.XmppMessage` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1154225` | `method_end` | `} // end of method MessageScheduling::SendChatMessage` | `L1154127: .method public hidebysig static class [smack]com.vision.smack.packet.XmppMessage` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Common.dll.il:99274` | `reference` | `get_issendchatmessage() cil managed` | `L99273: .method public hidebysig specialname instance string` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Common.dll.il:99284` | `reference` | `set_issendchatmessage(string 'value') cil managed` | `L99283: .method public hidebysig specialname instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Common.dll.il:99582` | `property` | `.property instance string issendchatmessage()` | `L99546: .method public hidebysig specialname rtspecialname instance void .ctor() cil managed` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Common.dll.il:99586` | `reference` | `.set instance void Schedule::set_issendchatmessage(string)` | `L99546: .method public hidebysig specialname rtspecialname instance void .ctor() cil managed` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Common.dll.il:99587` | `reference` | `.get instance string Schedule::get_issendchatmessage()` | `L99546: .method public hidebysig specialname rtspecialname instance void .ctor() cil managed` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Common.dll.il:100662` | `reference` | `get_issendchatmessage() cil managed` | `L100661: .method public hidebysig specialname instance string` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Common.dll.il:100672` | `reference` | `set_issendchatmessage(string 'value') cil managed` | `L100671: .method public hidebysig specialname instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Common.dll.il:101019` | `property` | `.property instance string issendchatmessage()` | `L100976: .method public hidebysig specialname rtspecialname instance void .ctor() cil managed` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Common.dll.il:101023` | `reference` | `.get instance string ScheduleTaskDetailsDTO::get_issendchatmessage()` | `L100976: .method public hidebysig specialname rtspecialname instance void .ctor() cil managed` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Common.dll.il:101024` | `reference` | `.set instance void ScheduleTaskDetailsDTO::set_issendchatmessage(string)` | `L100976: .method public hidebysig specialname rtspecialname instance void .ctor() cil managed` |
### Low-level text primitive: Chat.SendMessage -> XMPPConnection.send
Stage: `text_send`. Status: `static_evidence_found`. Evidence count: 20.
Business meaning: Confirms final XMPP send primitive; not enough alone without authenticated Chat/XMPP state.
Must verify tomorrow:
- Locate Chat instance
- Locate authenticated XMPPConnection
- Confirm direct/group message payload
- Capture ack/sent-record
| Source | Kind | Snippet | Context |
| --- | --- | --- | --- |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:80284` | `callsite` | `IL_34d2: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:206378` | `callsite` | `IL_0010: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `L206369: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:249554` | `callsite` | `IL_0c1e: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:249857` | `callsite` | `IL_0f27: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:299997` | `callsite` | `IL_0096: callvirt instance class [smack]com.vision.smack.packet.XmppMessage [smack]com.vision.smack.Chat::SendMessage(class [smack]com.vision.smack.packet.XmppMessage)` | `L299937: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:410318` | `callsite` | `IL_2257: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:412929` | `callsite` | `IL_00d2: callvirt instance class [smack]com.vision.smack.packet.XmppMessage [smack]com.vision.smack.Chat::SendMessage(class [smack]com.vision.smack.packet.XmppMessage)` | `L412858: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:430535` | `callsite` | `IL_0357: callvirt instance class [smack]com.vision.smack.packet.XmppMessage [smack]com.vision.smack.Chat::SendMessage(class [smack]com.vision.smack.packet.XmppMessage)` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:451786` | `callsite` | `IL_00b1: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `L451702: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:451858` | `callsite` | `IL_018f: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:454073` | `callsite` | `IL_0179: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:454206` | `callsite` | `IL_00b9: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `L454118: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:454298` | `callsite` | `IL_00b9: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `L454210: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:520831` | `callsite` | `IL_017a: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:521914` | `callsite` | `IL_007a: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `L521860: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:521970` | `callsite` | `IL_0075: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `L521918: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:522012` | `callsite` | `IL_004c: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `L521974: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:540102` | `callsite` | `IL_0109: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `L539996: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:651133` | `callsite` | `IL_0136: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:651239` | `callsite` | `IL_0068: callvirt instance void [smack]com.vision.smack.XMPPConnection::send(string)` | `L651184: .method public hidebysig instance void` |
### Upload parameter base: FileTransferParaBase
Stage: `file_upload`. Status: `static_evidence_found`. Evidence count: 20.
Business meaning: Defines host, port, domain, local path, timeout/cache and token fields required by upload/download DTOs.
Must verify tomorrow:
- Host
- Port
- Domain
- LocalFilePath
- Token
- Cache/timeout flags if present
| Source | Kind | Snippet | Context |
| --- | --- | --- | --- |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:12927` | `signature_continuation` | `instance int32 get_Port() cil managed` | `L12926: .method public hidebysig newslot specialname abstract virtual instance int32 get_Port() cil managed` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:12981` | `reference` | `.get instance int32 NetFwTypeLib.INetFwOpenPort::get_Port()` | `L12962: .method public hidebysig newslot specialname abstract virtual instance void set_Enabled([in] bool Enabled) cil managed` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:13737` | `callsite` | `IL_01e1: callvirt instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileTransferParaBase::add_FileTransferNodity(class [mscorlib]System.EventHandler`1<class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileSer...` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:13918` | `callsite` | `IL_0046: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileTransferParaBase [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileTransferArgs::get_TransferPara()` | `L13878: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:13919` | `callsite` | `IL_004b: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileTransferParaBase::get_LocalFilePath()` | `L13878: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:14176` | `callsite` | `IL_0030: callvirt instance string [smack]com.vision.smack.Jid::get_Domain()` | `L14146: .method public hidebysig instance bool` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:14179` | `callsite` | `IL_003b: callvirt instance string [smack]com.vision.smack.Jid::get_Domain()` | `L14146: .method public hidebysig instance bool` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:23389` | `callsite` | `IL_0200: callvirt instance string IMPP.Client.Server::get_Port()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:56075` | `reference` | `get_domain() cil managed` | `L56074: .method public hidebysig specialname instance string` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:56183` | `reference` | `.get instance string IMPP.Client.Framework.Config.ConfigChatSizeModel::get_domain()` | `L56166: .method public hidebysig specialname rtspecialname instance void .ctor() cil managed` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:56238` | `reference` | `get_Domain() cil managed` | `L56237: .method public hidebysig specialname instance string` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:56300` | `reference` | `.get instance string IMPP.Client.Framework.Config.ConfigDiscussModel::get_Domain()` | `L56283: .method public hidebysig specialname rtspecialname instance void .ctor() cil managed` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:59266` | `callsite` | `IL_00a9: callvirt instance string [smack]com.vision.smack.Jid::get_Domain()` | `L59183: .method public hidebysig static string` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:59283` | `callsite` | `IL_00d9: callvirt instance string [smack]com.vision.smack.Jid::get_Domain()` | `L59183: .method public hidebysig static string` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:59326` | `callsite` | `IL_0142: callvirt instance string [smack]com.vision.smack.Jid::get_Domain()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:59356` | `callsite` | `IL_0195: callvirt instance string [smack]com.vision.smack.Jid::get_Domain()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:78484` | `callsite` | `IL_2094: callvirt instance string IMPP.Client.Server::get_Domain()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:80366` | `callsite` | `IL_35a2: callvirt instance string [smack]com.vision.smack.packet.TCPManage.TCPResponseMsg::get_Port()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:80403` | `callsite` | `IL_361b: callvirt instance string [smack]com.vision.smack.packet.TCPManage.TCPResponseMsg::get_Port()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:94295` | `callsite` | `IL_0113: callvirt instance string [smack]com.vision.smack.Jid::get_Domain()` | `L94177: .method private hidebysig instance void` |
### Upload DTO: FileUploadPara
Stage: `file_upload`. Status: `static_evidence_found`. Evidence count: 20.
Business meaning: Concrete upload request DTO; adds IsImg/IsPublic and invokes FileTransferParaBase constructor.
Must verify tomorrow:
- Constructor arguments
- IsImg
- IsPublic
- Token value
- Local file path normalization
| Source | Kind | Snippet | Context |
| --- | --- | --- | --- |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:511999` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara V_11,` | `L511981: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512182` | `callsite` | `IL_01d9: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512459` | `constructor_call` | `IL_04a3: newobj instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara::.ctor(string,` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608732` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara V_4,` | `L608722: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608787` | `constructor_call` | `IL_0092: newobj instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara::.ctor(string,` | `L608722: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608795` | `callsite` | `IL_009c: callvirt instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara::set_IsPublic(bool)` | `L608722: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608800` | `callsite` | `IL_00b2: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `L608722: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608847` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara V_5,` | `L608836: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608908` | `constructor_call` | `IL_00a5: newobj instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara::.ctor(string,` | `L608836: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608916` | `callsite` | `IL_00af: callvirt instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara::set_IsPublic(bool)` | `L608836: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608921` | `callsite` | `IL_00c5: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `L608836: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:679652` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara V_5,` | `L679642: .method public hidebysig static void UploadGroupImage(string jid,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:679711` | `constructor_call` | `IL_00a7: newobj instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara::.ctor(string,` | `L679642: .method public hidebysig static void UploadGroupImage(string jid,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:679721` | `callsite` | `IL_00bf: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `L679642: .method public hidebysig static void UploadGroupImage(string jid,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:699724` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara V_8,` | `L699710: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:699942` | `constructor_call` | `IL_0234: newobj instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara::.ctor(string,` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:699952` | `callsite` | `IL_024c: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:738881` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara V_5,` | `L738869: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:738939` | `constructor_call` | `IL_0094: newobj instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara::.ctor(string,` | `L738869: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:738959` | `callsite` | `IL_00bf: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `L738869: .method private hidebysig instance void` |
### Upload service: IFileTransfer/FileTransfer.FileUpload
Stage: `file_upload`. Status: `static_evidence_found`. Evidence count: 20.
Business meaning: Managed upload entry; returns FileUploadResult and internally writes multipart token/form data.
Must verify tomorrow:
- Reach IFileTransfer instance
- Call FileUpload with safe test file
- Capture FileUploadResult
- Capture HTTP server/token fields without leaking token
| Source | Kind | Snippet | Context |
| --- | --- | --- | --- |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512002` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult V_14,` | `L511981: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512182` | `callsite` | `IL_01d9: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512315` | `callsite` | `IL_0322: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608733` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult V_5,` | `L608722: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608800` | `callsite` | `IL_00b2: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `L608722: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608819` | `callsite` | `IL_00e0: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID()` | `L608722: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608848` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult V_6,` | `L608836: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608921` | `callsite` | `IL_00c5: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `L608836: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608940` | `callsite` | `IL_00f3: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID()` | `L608836: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:679653` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult V_6,` | `L679642: .method public hidebysig static void UploadGroupImage(string jid,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:679721` | `callsite` | `IL_00bf: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `L679642: .method public hidebysig static void UploadGroupImage(string jid,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:679747` | `callsite` | `IL_00f4: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID()` | `L679642: .method public hidebysig static void UploadGroupImage(string jid,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:699725` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult V_9,` | `L699710: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:699952` | `callsite` | `IL_024c: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:699993` | `callsite` | `IL_02bf: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:738882` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult V_6)` | `L738869: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:738959` | `callsite` | `IL_00bf: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `L738869: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:738963` | `callsite` | `IL_00c9: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID()` | `L738869: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:739021` | `reference` | `IL_0067: castclass [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult` | `L738968: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:739022` | `callsite` | `IL_006c: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID()` | `L738968: .method private hidebysig instance void` |
### Upload auth/server state: HTTPFileServer + Auth token
Stage: `file_upload`. Status: `static_evidence_found`. Evidence count: 20.
Business meaning: File upload depends on runtime server/auth state, not only a local file path.
Must verify tomorrow:
- HTTPFileServer host/port
- UnifiedAuthentication/Auth token
- Domain/resource
- Access token/client id if present
| Source | Kind | Snippet | Context |
| --- | --- | --- | --- |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:137179` | `callsite` | `IL_01a0: callvirt instance class IMPP.Client.Server IMPP.Client.ServerInfo::get_HTTPFileServer()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:138833` | `callsite` | `IL_018e: callvirt instance class IMPP.Client.Server IMPP.Client.ServerInfo::get_HTTPFileServer()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:182525` | `callsite` | `IL_00ea: callvirt instance string IMPP.Client.BaseConfig::UnifiedAuthenticationAddress()` | `L182428: .method public hidebysig specialname static` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:182575` | `callsite` | `IL_0027: call class [IMPP.Common]IMPP.Common.Soap.Auth [IMPP.Common]IMPP.Common.ServiceManager::get_UnifiedAuthentication()` | `L182550: .method public hidebysig instance class IMPP.Client.Business.WorkGroupManage.WorkGroupOperate.Entity.PwebWorkGroups` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:182576` | `callsite` | `IL_002c: callvirt instance string [IMPP.Common]IMPP.Common.Soap.Auth::get_token()` | `L182550: .method public hidebysig instance class IMPP.Client.Business.WorkGroupManage.WorkGroupOperate.Entity.PwebWorkGroups` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:182641` | `callsite` | `IL_003a: call class [IMPP.Common]IMPP.Common.Soap.Auth [IMPP.Common]IMPP.Common.ServiceManager::get_UnifiedAuthentication()` | `L182600: .method public hidebysig instance class IMPP.Client.Business.WorkGroupManage.WorkGroupOperate.Entity.PwebWorkGroupMembers` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:182642` | `callsite` | `IL_003f: callvirt instance string [IMPP.Common]IMPP.Common.Soap.Auth::get_token()` | `L182600: .method public hidebysig instance class IMPP.Client.Business.WorkGroupManage.WorkGroupOperate.Entity.PwebWorkGroupMembers` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:253910` | `reference` | `+ "C_APP_001\",\"clientId\":\"imp_pc\",\"appId\":\"{2}\",\"orgId\":\"{3}\"}}"` | `L253873: .method public hidebysig static void AddBehavior(string pluginID) cil managed` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:258179` | `callsite` | `IL_00ea: callvirt instance string IMPP.Client.BaseConfig::UnifiedAuthenticationAddress()` | `L258082: .method public hidebysig specialname static` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:259663` | `callsite` | `IL_00da: callvirt instance class IMPP.Client.Server IMPP.Client.ServerInfo::get_HTTPFileServer()` | `L259566: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:370968` | `callsite` | `IL_00ae: callvirt instance class IMPP.Client.Server IMPP.Client.ServerInfo::get_HTTPFileServer()` | `L370891: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:371414` | `callsite` | `IL_01b7: callvirt instance class IMPP.Client.Server IMPP.Client.ServerInfo::get_HTTPFileServer()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512436` | `callsite` | `IL_0459: callvirt instance class IMPP.Client.Server IMPP.Client.ServerInfo::get_HTTPFileServer()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512440` | `callsite` | `IL_046a: callvirt instance class IMPP.Client.Server IMPP.Client.ServerInfo::get_HTTPFileServer()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:585181` | `callsite` | `IL_0005: callvirt instance class IMPP.Client.Server IMPP.Client.ServerInfo::get_HTTPFileServer()` | `L585175: .method public hidebysig newslot virtual final instance string GetServerDomain() cil managed` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:586215` | `callsite` | `IL_000e: callvirt instance class IMPP.Client.Server IMPP.Client.ServerInfo::get_HTTPFileServer()` | `L586199: .method public hidebysig newslot virtual final instance class [mscorlib]System.Collections.Generic.List`1<string>` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:586220` | `callsite` | `IL_0023: callvirt instance class IMPP.Client.Server IMPP.Client.ServerInfo::get_HTTPFileServer()` | `L586199: .method public hidebysig newslot virtual final instance class [mscorlib]System.Collections.Generic.List`1<string>` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:586225` | `callsite` | `IL_0038: callvirt instance class IMPP.Client.Server IMPP.Client.ServerInfo::get_HTTPFileServer()` | `L586199: .method public hidebysig newslot virtual final instance class [mscorlib]System.Collections.Generic.List`1<string>` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:604500` | `callsite` | `IL_0129: callvirt instance class IMPP.Client.Server IMPP.Client.ServerInfo::get_HTTPFileServer()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608772` | `callsite` | `IL_0063: callvirt instance class IMPP.Client.Server IMPP.Client.ServerInfo::get_HTTPFileServer()` | `L608722: .method private hidebysig instance void` |
### Upload result: FileUploadResult.FileID and remote metadata
Stage: `file_upload_result`. Status: `static_evidence_found`. Evidence count: 20.
Business meaning: Server-issued FileID is required before a chat file message is meaningful.
Must verify tomorrow:
- FileID
- URL or remote folder if present
- size/name metadata
- failure code/message
| Source | Kind | Snippet | Context |
| --- | --- | --- | --- |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:365887` | `callsite` | `IL_028d: callvirt instance string [IMPP.Common]AppInfoDTO::get_url()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:388652` | `callsite` | `IL_002e: callvirt instance string IMPP.Client.Business.ISphereAssistant.ISphereTabCtrlInfo::get_url()` | `L388624: .method public hidebysig instance bool` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:413084` | `callsite` | `IL_00ff: callvirt instance string IMPP.Client.Business.ISphereAssistant.ISphereTabCtrlInfo::get_url()` | `L412984: .method public hidebysig instance bool` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:413214` | `callsite` | `IL_0272: callvirt instance string IMPP.Client.Business.ISphereAssistant.ISphereTabCtrlInfo::get_url()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:413504` | `callsite` | `IL_058d: callvirt instance string IMPP.Client.Business.ISphereAssistant.ISphereTabCtrlInfo::get_url()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:427078` | `callsite` | `IL_0a5e: callvirt instance string [IMPP.Common]IMPP.Common.HttpItem::get_URL()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:427127` | `callsite` | `IL_0ace: callvirt instance string [IMPP.Common]IMPP.Common.HttpItem::get_URL()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:427502` | `callsite` | `IL_0e6d: callvirt instance string [IMPP.Common]IMPP.Common.HttpItem::get_URL()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:427551` | `callsite` | `IL_0edb: callvirt instance string [IMPP.Common]IMPP.Common.HttpItem::get_URL()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:461320` | `reference` | `get_Url() cil managed` | `L461319: .method public hidebysig specialname instance string` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:461328` | `method_end` | `} // end of method AdvertiseImageInfo::get_Url` | `L461319: .method public hidebysig specialname instance string` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:461360` | `reference` | `.get instance string IMPP.Client.Business.AdvertisementManage.AdvertiseImageInfo::get_Url()` | `L461342: .method public hidebysig specialname rtspecialname instance void .ctor() cil managed` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512002` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult V_14,` | `L511981: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512182` | `callsite` | `IL_01d9: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512315` | `callsite` | `IL_0322: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:564370` | `callsite` | `IL_064c: callvirt instance string [IMPP.Common]AppInfoDTO::get_url()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608733` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult V_5,` | `L608722: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608800` | `callsite` | `IL_00b2: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.F...` | `L608722: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608819` | `callsite` | `IL_00e0: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID()` | `L608722: .method private hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608848` | `reference` | `class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult V_6,` | `L608836: .method private hidebysig instance void` |
### File-message finalization: trans_UploadCompleted / SendFileMessage / Chat.sendFileMessage
Stage: `send_file_message`. Status: `static_evidence_found`. Evidence count: 20.
Business meaning: After upload succeeds, the client constructs offline file-transfer content and sends chat file message.
Must verify tomorrow:
- trans_UploadCompleted receives FileID
- OFFLINE_FILE_TRANSFER payload fields
- Target Chat/JID
- Sent file record/ack
| Source | Kind | Snippet | Context |
| --- | --- | --- | --- |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:13650` | `string_literal` | `IL_010a: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:14612` | `string_literal` | `IL_00e6: ldstr "OFFLINE_FILE_TRANSFER"` | `L14529: .method public hidebysig static class [IMPP.Model]IMPP.Model.ChatRecord.tblPersonMsg` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:15245` | `string_literal` | `IL_010f: ldstr "OFFLINE_FILE_TRANSFER"` | `L15134: .method public hidebysig static class [IMPP.Model]IMPP.Model.ChatRecord.tblMsgGroupPersonMsg` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:76219` | `string_literal` | `IL_05ec: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:76335` | `string_literal` | `IL_0751: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:76471` | `string_literal` | `IL_08ef: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:76792` | `string_literal` | `IL_0cae: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:78639` | `string_literal` | `IL_2267: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:83138` | `string_literal` | `IL_030d: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:86296` | `string_literal` | `IL_01a9: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:121988` | `string_literal` | `IL_09b1: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:122534` | `string_literal` | `IL_0fbe: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:122836` | `string_literal` | `IL_12de: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:123116` | `string_literal` | `IL_15f3: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:123656` | `string_literal` | `IL_1c15: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:123706` | `string_literal` | `IL_1caa: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:123873` | `string_literal` | `IL_1e82: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:124349` | `string_literal` | `IL_23b0: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:125361` | `string_literal` | `IL_2e70: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:130922` | `string_literal` | `IL_01cf: ldstr "OFFLINE_FILE_TRANSFER"` | `` |
### Target resolution: JID -> Chat / ChatRoom
Stage: `runtime_context`. Status: `static_evidence_found`. Evidence count: 20.
Business meaning: Both text and file send need a target JID mapped to Chat or ChatRoom; group handling may differ.
Must verify tomorrow:
- Contact JID
- Group/conference JID
- ChatManager.GetChat
- ChatRoom branch and permissions
| Source | Kind | Snippet | Context |
| --- | --- | --- | --- |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:958` | `reference` | `.mresource public IMPP.Client.control.UCChatRoomMember.resources` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:961` | `reference` | `// 警告: 创建了托管资源文件 IMPP.Client.control.UCChatRoomMember.resources` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1138` | `reference` | `.mresource public IMPP.Client.Business.ChatManager.BaseControl.frmChatRoom.resources` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1141` | `reference` | `// 警告: 创建了托管资源文件 IMPP.Client.Business.ChatManager.BaseControl.frmChatRoom.resources` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1173` | `reference` | `.mresource public IMPP.Client.Business.ChatManager.WorkGroup.frmReserveChatRoom.resources` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1176` | `reference` | `// 警告: 创建了托管资源文件 IMPP.Client.Business.ChatManager.WorkGroup.frmReserveChatRoom.resources` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1193` | `reference` | `.mresource public IMPP.Client.Forms.frmTempChatRoom.resources` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1196` | `reference` | `// 警告: 创建了托管资源文件 IMPP.Client.Forms.frmTempChatRoom.resources` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1529` | `field` | `.field public string chatRoomJID` | `L1486: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1574` | `reference` | `IL_0044: ldfld string IMPP.Client.VideoChat.SingleAVDispatcher/'<>c__DisplayClass7'::chatRoomJID` | `L1540: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:2973` | `reference` | `string chatRoomJID,` | `L2970: .method family hidebysig newslot abstract virtual instance void Instance_OnAVRoomStateChange(valuetype IMPP.Client.MultiplayerAV.AVRoom.EventTypeEnum eventType,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:2983` | `reference` | `string chatRoomJID) cil managed` | `L2981: .method family hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:3000` | `reference` | `IL_0010: stfld string IMPP.Client.VideoChat.SingleAVDispatcher/'<>c__DisplayClass7'::chatRoomJID` | `L2981: .method family hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:13688` | `callsite` | `IL_0179: callvirt instance class [smack]com.vision.smack.Chat [smack]com.vision.smack.ChatManager::GetChat(class [smack]com.vision.smack.XMPPConnection,` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:14269` | `callsite` | `IL_00be: callvirt instance class [smack]com.vision.smack.Chat [smack]com.vision.smack.ChatManager::GetChat(class [smack]com.vision.smack.XMPPConnection,` | `L14190: .method public hidebysig static void OpenSetRoamMessageForm(valuetype [IMPP.Model]IMPP.Model.ChatRecord.MsgType msgSource,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:14273` | `reference` | `IL_00c3: castclass [smack]com.vision.smack.muc.ChatRoom` | `L14190: .method public hidebysig static void OpenSetRoamMessageForm(valuetype [IMPP.Model]IMPP.Model.ChatRecord.MsgType msgSource,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:15141` | `reference` | `class [smack]com.vision.smack.muc.ChatRoom V_1,` | `L15134: .method public hidebysig static class [IMPP.Model]IMPP.Model.ChatRecord.tblMsgGroupPersonMsg` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:15179` | `callsite` | `IL_0074: callvirt instance class [smack]com.vision.smack.Chat [smack]com.vision.smack.ChatManager::GetChat(class [smack]com.vision.smack.XMPPConnection,` | `L15134: .method public hidebysig static class [IMPP.Model]IMPP.Model.ChatRecord.tblMsgGroupPersonMsg` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:15183` | `reference` | `IL_0079: castclass [smack]com.vision.smack.muc.ChatRoom` | `L15134: .method public hidebysig static class [IMPP.Model]IMPP.Model.ChatRecord.tblMsgGroupPersonMsg` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:15369` | `callsite` | `IL_026e: callvirt instance string [smack]com.vision.smack.muc.ChatRoom::get_Name()` | `` |
### Runtime owner: frmMain / IMPPManager / MessageCenter
Stage: `runtime_context`. Status: `static_evidence_found`. Evidence count: 20.
Business meaning: Likely owners of initialized logged-in state and message center callbacks.
Must verify tomorrow:
- Running frmMain
- IMPPManager.UserInfo
- MessageCenter
- Reconnect success state
- loaded assemblies
| Source | Kind | Snippet | Context |
| --- | --- | --- | --- |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1714` | `field` | `.field family class IMPP.Client.frmMain mainWin` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1744` | `reference` | `IL_001d: ldfld class IMPP.Client.frmMain IMPP.Client.VideoChat.SingleAVDispatcher::mainWin` | `L1721: .method family hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1789` | `reference` | `IL_002a: ldfld class IMPP.Client.frmMain IMPP.Client.VideoChat.SingleAVDispatcher::mainWin` | `L1761: .method family hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:2777` | `reference` | `Init(class IMPP.Client.frmMain frmMain) cil managed` | `L2776: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:2791` | `reference` | `IL_000a: stfld class IMPP.Client.frmMain IMPP.Client.VideoChat.SingleAVDispatcher::mainWin` | `L2776: .method public hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:3005` | `reference` | `IL_001d: ldfld class IMPP.Client.frmMain IMPP.Client.VideoChat.SingleAVDispatcher::mainWin` | `L2981: .method family hidebysig instance void` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:3533` | `callsite` | `IL_004c: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `L3492: .method public hidebysig static void FillDataToDataGridView(class [IMPP.UI]IMPP.UI.SkinControl.SkinDataGridView dgv,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:4359` | `callsite` | `IL_01ba: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:4393` | `callsite` | `IL_021a: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:4403` | `callsite` | `IL_0236: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:5267` | `callsite` | `IL_02ea: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:5752` | `callsite` | `IL_08ac: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:5772` | `callsite` | `IL_08ee: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:6283` | `callsite` | `IL_0ea6: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:6329` | `callsite` | `IL_0f2f: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:6399` | `callsite` | `IL_1006: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:7402` | `callsite` | `IL_0141: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `L7286: .method public hidebysig static void AddUserTitle(class CSharpWin.ChatRichTextBox textBox,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:7504` | `callsite` | `IL_024f: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:7855` | `callsite` | `IL_00bf: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `L7780: .method public hidebysig static void AddLinkID(class CSharpWin.ChatRichTextBox textBox,` |
| `runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:7997` | `callsite` | `IL_023a: callvirt instance class [IMPP.Common]IMPP.Common.UserInfo IMPP.Client.IMPPManager::get_UserInfo()` | `` |
## Updated stop / continue rules
Continue B-route tomorrow if P0 runtime, text-send, upload, FileID, and ack probes produce positive or actionable evidence. Stop B-route and escalate if logged-in runtime cannot expose AppContextManager/MessageScheduling/Chat/IFileTransfer, or if upload cannot produce FileUploadResult.FileID. Keep A-route/RPA backup-only for demo continuity.