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

130 lines
6.4 KiB
Markdown

# 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.