feat: add send message preview contract

This commit is contained in:
zhaoyilun
2026-07-10 14:04:33 +08:00
parent 1f99681348
commit ac3f10f53c
12 changed files with 686 additions and 55 deletions

View File

@@ -344,18 +344,17 @@ connector_stage = "preview" | "sandbox_send" | "production"
## Next implementation loop
R6a/C31 non-mutating send connector preflight is now complete. WinHelper `0.4.0` adds read-only `probe_send_entrypoints` and `probe_send_uia_controls`; the live recorder now emits `send_entrypoints_preflight.json` and `send_uia_controls_preflight.json`; copied install metadata reports all required B-route entrypoints available; and the UIA classifier can report offline-blocked state.
R6b B-route preview/dry-run contract is now complete. `isphere_send_message` is registered as preview/dry-run only, validates target/content-hash/idempotency input, appends redacted audit JSONL, and blocks production with all side-effect flags false.
Next node should be **R6b B-route preview/dry-run contract**:
Next node should be **R6c online sandbox-send evidence gate**:
1. Keep `isphere_send_message` in preview/dry-run only.
2. Resolve target refs from existing contact/group search output.
3. Validate `content_sha256` and `idempotency_key`.
4. Return connector metadata such as `connector="implatform-sidecar"` and `connector_stage="preview"`.
5. Append a local audit event for preview attempts.
6. Do not send, click, type, upload, attach hooks, or capture network traffic in this node.
7. Keep the later online-only sandbox-send gate separate.
1. Prepare or collect one operator-approved sandbox send evidence package.
2. Use one explicit sandbox target, one content hash, and one idempotency key.
3. Observe success/ack or local sent-record evidence.
4. Prove duplicate retry with the same idempotency key is locally rejected before any second send.
5. Capture method names, argument shape, IDs/hashes, status booleans, and refs only.
6. Do not enable production `send_message_after_approval` until the evidence gate passes.
## Current status
B is selected as the primary send/file-send route. Runtime discovery and entrypoint metadata preflight have passed enough to continue to preview/dry-run design. A remains the fallback and now has concrete UIA selector/offline-blocker classifier support. Production send remains blocked until dynamic observation, idempotent dry-run/audit, and one approved sandbox send prove success/ack behavior.
B is selected as the primary send/file-send route. Runtime discovery, entrypoint metadata preflight, and preview/dry-run audit are in place. A remains the fallback and now has concrete UIA selector/offline-blocker classifier support. Production send remains blocked until dynamic observation and one approved sandbox send prove success/ack behavior.