# Send Message Connector Selection Date: 2026-07-10 ## Goal Select the first safe connector for `isphere_send_message`, or block send implementation with an exact evidence request. This node does not implement message sending, does not click/type in the client, does not send a test message, and does not capture network traffic. It reviews committed repo evidence and the current local implementation only. ## Current prerequisites Target resolution is now usable for connector work: - `isphere_search_contacts` has deterministic exact-match-first ranking and case-insensitive de-duplication. - `isphere_search_groups` has deterministic exact-match-first ranking and case-insensitive de-duplication. - MCP send contract already defines preview/production modes, `content_sha256`, `idempotency_key`, target metadata, and write errors. The missing part is the write connector. ## Connector candidates | Priority | Candidate | Evidence reviewed | Can preview target/content? | Can execute exactly once? | Can confirm success? | Decision | | --- | --- | --- | --- | --- | --- | --- | | 1 | Existing bridge/API/local service | Repository search and committed docs/code. | No callable bridge/API/local write service found. | No. | No. | Not selected. | | 2 | UIA helper action chain | `native/ISphereWinHelper/Program.cs`, `internal/uiaselector/catalog.go`, internal-sandbox runbook. | No validated conversation-open, draft, send-button, or result selectors. | No helper op for click/type/send/invoke. | No post-send confirmation evidence. | Not selected. | | 3 | Network/protocol connector | Current PacketReader/Smark/SaveToDB evidence and protocol docs. | Read/transport evidence exists, but no authorized sent-message capture or replay/wrapper contract. | No idempotent write operation proven. | No ack/result mapping proven. | Not selected. | | 4 | Preview-only mock/contract | `docs/mcp-core-tools-contract.md`. | Contract shape exists. | Production send unavailable. | Not applicable. | Not enough for R6 production path. | ## Evidence details ### Existing bridge/API/local service No committed callable local service or API wrapper was found for sending messages. Current Go MCP code registers read/observation tools only. ### UIA helper action chain Current helper operations are limited to: ```text version self_check scan_windows dump_uia ``` Current selector catalog uses `AllowedUseReadOnlyLocate`. It identifies structural areas such as main window, panels, roster, and fuzzy search edit, but it does not validate: - target search execution; - conversation open; - message editor focus; - draft insertion; - send button location/action; - pre-send preview confirmation; - post-send success/failure confirmation. The internal-sandbox operator runbook also only authorizes read-only capture actions. It does not provide an approved write-action evidence package. ### Network/protocol connector Current evidence includes decrypted receive-side/transport logs, but there is no scoped authorized capture of a sent test message and no stable write request/response contract. Missing protocol evidence: - endpoint or stanza used for text send; - auth/session model at a wrapper level without storing secrets; - target id format for direct and group sends; - request id/idempotency field or equivalent exactly-once guard; - success ack/failure state mapping; - rate limit/retry behavior. ## Decision No send-message connector is selected for R6. `isphere_send_message` remains blocked for production implementation. R6 should not start until one of the evidence packages below is available. ## Exact evidence request Any one of these can unblock R6: ### Option A: bridge/API/local service evidence Provide a committed or operator-supplied wrapper spec that proves: - endpoint/command name; - accepted target ids for contact and group; - preview/dry-run behavior; - production execution call; - idempotency key handling; - success/failure response shape; - sandbox-only verification command. ### Option B: UIA action-chain evidence package Provide a new internal-sandbox package that explicitly allows and records a test send workflow: - manually logged-in sandbox account; - test target only; - selector evidence for search/open conversation/message editor/send control; - pre-send preview state; - one intentional test send; - post-send confirmation state; - failure states such as target not found or disabled send button; - operator note that the send was approved and limited to the test target. ### Option C: network/protocol evidence package Provide an authorized scoped capture for one test send: - capture scope and timing; - host/port/protocol classification; - redacted request/response shape; - target id and message id fields, redacted where needed; - success ack/failure mapping; - session/auth handling at a high level without secrets. ## Next route Because R5 did not select a connector: - R6 production send implementation is blocked. - R7/R8 send-file work is also blocked behind the send-message connector and upload/file-transfer evidence. - The project should pause write-side implementation and request one of the evidence packages above. ## R5b update from returned live probe The later returned live-probe package is documented in `docs/source-discovery/2026-07-10-returned-live-probe-analysis.md`. It changes this R5 conclusion from “waiting for any connector evidence” to “connector evidence exists, but production send remains blocked”: - B-route runtime discovery now passes for a real x86 `IMPlatformClient.exe` `4.1.2.6842` process. - The live install contains the expected B-route DLL candidates. - A-route UIA selectors for search, draft editor, send button, and file-send menu are visible. - Runtime send entrypoint reachability and success/ack mapping are still unproven. - The captured chat windows show an offline-send blocker. The next node is therefore R6a/C31 non-mutating send connector preflight, not R6 production send.