# 2026-07-10 R9 Send-file sandbox evidence gate ## Decision Local development still cannot log in to iSphere/IMPlatformClient, so real file upload must not be enabled from local-only evidence. R9 prepares a one-pass online/internal sandbox package for collecting the missing evidence. The package is intentionally operator-driven: - it does not click, type, upload, hook, inject, or send automatically; - the operator manually sends exactly one approved sandbox file; - before/after read-only recorder output and completed operator fields are returned for validation; - production `isphere_send_file` remains blocked until the returned package passes validation. ## Package Builder: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File scripts\package-send-file-sandbox-gate.ps1 ``` Verifier: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-send-file-sandbox-gate-package.ps1 ``` Expected generated zip: ```text runs\send-file-sandbox-gate-package.zip ``` ## Returned-package validator Use this after an online/internal sandbox operator returns a zip: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File scripts\validate-returned-send-file-sandbox-package.ps1 -ZipPath -Strict ``` The validator checks only sanitized booleans/counts/metadata: - target fields are present; - `ISPHERE_SEND_FILE_ALLOWED_DIR` is recorded; - `sandbox_file_path`, `file_sha256`, `file_size_bytes`, and `idempotency_key` are present; - before and after recorder output exists; - operator timestamps are present; - file upload/sent-record evidence is present; - duplicate second file send was not attempted; - `production_file_send_enabled=false`. ## Current status No returned R9 package has been reviewed in this repository state. `isphere_send_file` remains preview/idempotency/audit only: - `send_file_preview_tool_present=true` - `send_file_duplicate_detected=true` - `send_file_conflict_blocked=true` - `send_file_production_enabled=false` ## Next decision If a returned package passes `strict_file_gate_pass`, the next implementation round may design a gated file-upload connector path. If no returned package is available, keep file sending at preview only and continue local-safe rounds.