Files
isphere-ai-bridge/docs/source-discovery/2026-07-10-send-file-sandbox-gate.md
2026-07-11 00:08:56 +08:00

69 lines
2.2 KiB
Markdown

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