Files
isphere-ai-bridge/docs/source-discovery/2026-07-12-login-reachability-validation-items.md
2026-07-12 12:45:58 +08:00

6.4 KiB

Login Reachability Validation Items

Date: 2026-07-12

Purpose: this is the operator-facing checklist for the 2026-07-13 logged-in environment. It is generated from the offline send/upload deep dive and should be used to build the one-shot reachability probe package. P0 items are blocking; production send remains disabled until all relevant P0 evidence is collected and correlated.

Operator rules

  • Run the probe only after the target iSphere/IMPlatformClient session is visibly logged in.
  • Use a pre-agreed direct test JID and optional group test JID; record them in the output JSON.
  • Use one-shot test content and one safe small test file; record SHA256 hashes, not raw sensitive content.
  • Capture before/after sent-record snapshots around the one-shot send/upload test.
  • Do not mark production ready unless ack/sent-record correlation is machine-verifiable.

P0 items

Define one-shot test targets and operator confirmation

  • Category: test_rule
  • Evidence to capture: direct JID, optional group JID, self-send/sandbox-account flag, operator confirmation, one-send-only flag, test content/file hash seed
  • Unlocks: reliable ack and sent-record correlation

Capture before/after sent-record snapshots

  • Category: snapshot
  • Evidence to capture: before count/last summary, after count/last summary, target ref, content hash or file hash, timestamp window
  • Unlocks: machine-verifiable send result

Identify sent-record and ack source paths

  • Category: sent_record_source
  • Evidence to capture: MessageCenter::OnMessageSended availability, PacketReader/SaveToDB/MsgLib source availability, MCP audit ref, ack/ref id if present
  • Unlocks: production gate evidence

Confirm in-process adapter reachability mode

  • Category: adapter_reachability
  • Evidence to capture: process bitness, CLR/.NET version, user/session id, loaded managed assemblies, same-process/managed-harness/injection requirement, stop-condition reason if blocked
  • Unlocks: B-route implementation decision

Confirm logged-in IMPlatformClient.exe process and loaded assemblies

  • Category: runtime
  • Evidence to capture: process id, module list, loaded managed assemblies, login/user presence without leaking credentials
  • Unlocks: all B-route adapter tests

Confirm AppContextManager/IAppContextManager reachability

  • Category: runtime
  • Evidence to capture: type visible, instance path, SendTxtMessageByJid callable shape, direct/group chat type mapping
  • Unlocks: text send high-level path

Confirm Chat/XMPPConnection authenticated state

  • Category: runtime
  • Evidence to capture: Chat instance, XMPPConnection state, target JID mapping, group ChatRoom branch if target is group
  • Unlocks: text and file message finalization

Capture FileUploadPara required values without leaking token

  • Category: file_upload
  • Evidence to capture: host, port, domain, local path presence, IsImg/IsPublic, token-present boolean/hash only, timeout/cache flags if visible
  • Unlocks: upload_file probe

Confirm IFileTransfer/FileTransfer.FileUpload reachability

  • Category: file_upload
  • Evidence to capture: service instance or constructor path, method signature, safe call readiness, HTTP status/failure channel mapping
  • Unlocks: file upload

Confirm FileUploadResult.FileID after safe test upload

  • Category: file_upload_result
  • Evidence to capture: FileID present, size/name or URL/remote folder metadata, HTTP status, service error code/message if upload fails
  • Unlocks: send_file_message

Confirm trans_UploadCompleted/SendFileMessage consumes FileID

  • Category: send_file_message
  • Evidence to capture: FileID enters payload, Chat.sendFileMessage invoked, sent file record/ack, failure reason if target/permission blocks
  • Unlocks: production file send

Capture structured failure reasons for every probe step

  • Category: failure_reason
  • Evidence to capture: step name, exception type, error code, message, offline/permission/target-not-found/token/file-size/file-type/network-timeout classification
  • Unlocks: actionable next decision when probe fails

Correlate sent record/ack with content hash or file hash

  • Category: ack
  • Evidence to capture: sent record source, timestamp, target ref, body/file metadata hash, ack/ref id, before/after snapshot diff
  • Unlocks: production gate

P1 items

Confirm group ChatRoom branch and permissions

  • Category: group
  • Evidence to capture: ChatRoom type, speech/upload permission state, group JID, mute/permission failure reason
  • Unlocks: group send/file send

If B-route reachability fails, capture A-route UI evidence

  • Category: fallback
  • Evidence to capture: window hwnd, rtbSendMessage, btnSend, screenshots, failure reason
  • Unlocks: demo fallback only

Required output schema

Every probe run should emit JSON with these top-level sections:

  • run: timestamp, machine, operator confirmation, one-shot flags.
  • targets: direct JID, optional group JID, target type, source of target selection.
  • runtime: process id, bitness, CLR/.NET version, user/session, loaded assemblies.
  • reachability: AppContextManager, MessageScheduling, Chat, XMPPConnection, IFileTransfer, FileUploadPara, FileUploadResult, Chat.sendFileMessage.
  • server_auth: host, port, domain, token_present, token_hash_prefix only, accessToken/clientId presence when visible.
  • snapshots: before/after counts and last-record summaries for sent-record sources.
  • attempts: probe-only, optional one-shot text, optional safe upload, optional file-message finalization.
  • failures: structured failure code, exception type, message, classification, next action.
  • correlation: content/file hash match, target match, timestamp window, ack/ref id.

Pass criteria

  • Text send can move forward when logged-in runtime exposes AppContextManager or MessageScheduling plus Chat/XMPPConnection and sent-record/ack correlation is possible.
  • File send can move forward when logged-in runtime exposes IFileTransfer/FileUpload, FileUploadPara values, FileUploadResult.FileID, and Chat.sendFileMessage finalization evidence.
  • Production remains blocked if any P0 item is missing, if failure reasons are unstructured, or if only static evidence is available.
  • Text production can move forward only when one-shot target, before/after snapshot, sent-record source, and content-hash/ack correlation all pass.
  • File production can move forward only when FileUploadPara values, IFileTransfer reachability, FileUploadResult.FileID, file-message finalization, and file sent-record/ack correlation all pass.