docs: accept partial send sandbox evidence

This commit is contained in:
zhaoyilun
2026-07-10 19:11:52 +08:00
parent 89d7f65b45
commit 138615a29c
7 changed files with 446 additions and 6 deletions

View File

@@ -28,7 +28,7 @@
| Search contacts | Registered MCP tool; deterministic exact-match ranking and case-insensitive de-duplication across log/JID candidates and optional copied-DB MsgLib display enrichment. | Optional richer fields such as department/title remain future enrichment, not a core search blocker. | complete for core search; optional enrichment later |
| Search groups | Registered MCP tool; deterministic exact-match ranking and case-insensitive de-duplication across groupchat/conference candidates and optional copied-DB MsgLib display enrichment. | Optional member count, owner refs, and nested/group hierarchy remain future enrichment, not a core search blocker. | complete for core search; optional enrichment later |
| Receive messages | PacketReader source works; copied `MsgLib.db` explicit receive works with `source_preference="msglib_readonly"`; R1 precheck says default should remain PacketReader until a future reconciliation helper is implemented. | Future reconciliation helper, source confidence scoring, pagination policy. | future receive helper after R2/R3 |
| Send messages | `isphere_send_message` preview/dry-run is registered; R6a confirms B-route entrypoint metadata; R6c has a consolidated online sandbox recording package plus a separate offline capability-test package. | Need returned online sandbox evidence proving success/ack and no duplicate send before production. | next R6d returned sandbox evidence intake |
| Send messages | `isphere_send_message` preview/dry-run is registered; R6a confirms B-route entrypoint metadata; R6d partial returned package is usable for sandbox-only connector-shell/idempotency work. | Full production still needs after-recorder output and manual send timestamps, or a later complete returned package. | next R6e sandbox-only connector shell |
| Receive files | List mode exists from message-derived file metadata; R3/R3b confirm DB file metadata exists but current cache/archive evidence does not map to local files. | R4 download is blocked until better cache evidence or a UI/client download connector is available. | blocked; continue R5 |
| Send files | Contract exists; R6a/C31 metadata confirms file-upload/offline-file/file-message candidates and A-route file menu classifier support. | Blocked behind returned send-message sandbox evidence plus upload/file-transfer dry-run. | wait for R6d, then file-send upload preflight |
@@ -510,6 +510,47 @@ powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-go-mcp.ps1
**Stop condition:**
- Do not infer success from screenshots or vague operator notes alone. Require the structured returned package fields and before/after recorder output.
**R6d Result:**
- Added `scripts/validate-returned-send-sandbox-package.ps1`.
- Added `scripts/test-validate-returned-send-sandbox-package.ps1`.
- Created `docs/source-discovery/2026-07-10-returned-send-sandbox-analysis.md`.
- Validated `C:\Users\zhaoy\Downloads\1631.zip` as partial evidence:
- `partial_evidence_usable=true`;
- `r6d_gate_pass=false`;
- capability test passed with 9 tools;
- production send remained disabled;
- content hash matched;
- idempotency key, operator observed success, success record, and no-second-send confirmation were present;
- after-recorder output and manual send timestamps were missing.
- Decision: use the returned package to proceed with sandbox-only connector shell and idempotency/audit hardening, but keep production `isphere_send_message` blocked.
---
### R6e: Sandbox-only send connector shell and idempotency audit hardening
**Purpose:** Use R6d partial evidence to build the non-production connector control plane before any real send connector is enabled.
**Files:**
- Modify: `internal/tools/isphere_send_message.go`
- Modify tests: `internal/tools/isphere_send_message_test.go`
- Modify docs: this roadmap, `docs/current-status-card.md`, and `docs/go-mcp-runbook.md`
**Execution policy:**
- `execution_mode="preview"` remains no-send.
- `execution_mode="production"` remains blocked.
- Add or harden idempotency/audit state so duplicate idempotency keys can be detected before any future production connector is attached.
- If a connector interface is introduced, tests must use a fake connector only.
- No helper click/type/send op, no upload, no hook, no network replay.
**Acceptance gate:**
- Duplicate idempotency-key behavior is tested.
- Audit records remain redacted and do not store raw message body.
- Standard MCP smoke still reports `production_send_enabled=false`.
**Stop condition:**
- Do not wire a real send entrypoint until a full returned package or controlled online sandbox connector test is available.
---
### R6: Send-message preview and production path