docs: record send sent diagnostic intake

This commit is contained in:
zhaoyilun
2026-07-11 00:25:54 +08:00
parent c8b619c254
commit 6164703a9a
5 changed files with 440 additions and 2 deletions

View File

@@ -59,7 +59,7 @@ N13/N14/N15 are pre-business validation results. They can help identify UI eleme
## Current loop
Current loop: `R10 receive-file download resolver v2 diagnostic complete`; next R11 receive-file download preview contract.
Current loop: `R10a returned send-sent record diagnostic intake complete`; next R11 receive-file download preview contract.
Active continuous execution plan: `docs/superpowers/plans/2026-07-10-r6f-r14-continuous-execution-plan.md`.
@@ -240,7 +240,7 @@ Continuous execution plan R6f-R14 is approved and execution has started:
- Plan file: `docs/superpowers/plans/2026-07-10-r6f-r14-continuous-execution-plan.md`.
- Scope: 15 ordered rounds covering send-message connector/gate hardening, send-file preview/idempotency/package, receive-file download preview, receive-message reconciliation, end-to-end business smoke, and release-candidate report.
- Execution rule after approval: one round at a time, status-card update, verification, commit, push, then continue automatically until an evidence-only blocker requires user action.
- Last completed round: R10 receive-file download resolver v2 diagnostic.
- Last completed round: R10a returned send-sent record diagnostic intake.
- Next active round: R11 receive-file download preview contract.
R6g send audit and idempotency replay diagnostics is complete:
@@ -334,4 +334,13 @@ R10 receive-file download resolver v2 diagnostic is complete:
- Fixture result: `records_checked=3`, `cache_candidates_checked=4`, `accepted_matches=2`, `ambiguous_matches=0`, `score_100_matches=1`, `score_80_matches=1`, and `score_40_only_matches=1`.
- Diagnostic output keeps `raw_paths_printed=false`, `file_contents_read=false`, and `file_paths_returned=false`.
- Decision: resolver logic is proven, but real production file download remains blocked until a real cache mapping package produces accepted non-ambiguous matches.
- Next node: R10a returned send-sent record diagnostic intake, because two new operator packages arrived.
R10a returned send-sent record diagnostic intake is complete:
- Added `scripts\validate-send-sent-record-diagnostic-package.ps1` and `scripts\test-validate-send-sent-record-diagnostic-package.ps1`.
- Reviewed `send-sent-record-diagnostic-package1(1).zip` and `send-sent-record-diagnostic-package2(1).zip` from Downloads using safe summary output only.
- Both packages report `operator_observed_success=true`, `do_not_send_second_time_confirmed=true`, and `content_sha256_matches_input=true`.
- Both packages also report `exact_content_seen_after=false`, `content_sha256_seen_after=false`, `after_offline_blocked=true`, `strict_send_record_pass=false`, and `production_send_unlock_recommended=false`.
- Decision: production `isphere_send_message` remains blocked; the packages are useful manual evidence but not enough to open the send gate.
- Next node: R11 receive-file download preview contract.

View File

@@ -0,0 +1,55 @@
# Returned send-sent record diagnostic intake - 2026-07-10
## Inputs reviewed
- `send-sent-record-diagnostic-package1(1).zip`
- `send-sent-record-diagnostic-package2(1).zip`
The raw packages stay outside the repository. This note records only safe summary fields.
## Validator
Added `scripts/validate-send-sent-record-diagnostic-package.ps1` for this package family. It outputs booleans and counts only; it does not print raw target id, raw message body, raw idempotency key, or local operator paths.
## Safe validation summaries
Package 1:
```json
{"ok":true,"package_type":"send-sent-record-diagnostic","package_file_name":"send-sent-record-diagnostic-package1(1).zip","summary_json_present":false,"input_json_present":true,"content_sha256_matches_input":true,"before_run_count":1,"after_run_count":1,"exact_content_seen_after":false,"content_sha256_seen_after":false,"after_offline_blocked":true,"operator_observed_success":true,"do_not_send_second_time_confirmed":true,"production_send_enabled":false,"automatic_send_enabled":false,"strict_send_record_pass":false,"production_send_unlock_recommended":false,"decision":"manual_success_without_machine_sent_record"}
```
Package 2:
```json
{"ok":true,"package_type":"send-sent-record-diagnostic","package_file_name":"send-sent-record-diagnostic-package2(1).zip","summary_json_present":true,"input_json_present":true,"content_sha256_matches_input":true,"before_run_count":1,"after_run_count":1,"exact_content_seen_after":false,"content_sha256_seen_after":false,"after_offline_blocked":true,"latest_after_route_hints":["A_ROUTE_INCOMPLETE","A_ROUTE_OFFLINE_BLOCKED"],"operator_observed_success":true,"do_not_send_second_time_confirmed":true,"production_send_enabled":false,"automatic_send_enabled":false,"strict_send_record_pass":false,"production_send_unlock_recommended":false,"decision":"manual_success_without_machine_sent_record"}
```
Strict mode was also checked against package 2 and failed, as expected, because `strict_send_record_pass=false`.
## Business interpretation
The two packages improve confidence that a human operator successfully sent the fixed sandbox message once. They do not prove that the bridge can safely enable production send, because the machine-verifiable sent-record evidence is still missing:
- `exact_content_seen_after=false`
- `content_sha256_seen_after=false`
- `after_offline_blocked=true`
- package 2 after route hints include `A_ROUTE_INCOMPLETE` and `A_ROUTE_OFFLINE_BLOCKED`
## Decision
Production `isphere_send_message` remains blocked. Current usable state remains:
- send-message preview/dry-run: usable
- audit and idempotency: usable
- production send: blocked by missing strict machine sent-record evidence
## Next requirement for unlocking production send
A future online package must show all of the following without printing raw body/target/path values:
1. before and after recorder outputs are present;
2. content hash or sent-record marker is visible after send;
3. offline blocker is absent after send;
4. operator confirms only one send was performed;
5. strict validator returns `strict_send_record_pass=true` and `production_send_unlock_recommended=true`.

View File

@@ -752,6 +752,41 @@ git push gitea main
---
### R10a: Returned send-sent record diagnostic intake
**Purpose:** 用户在 R10 后提供了两个 `send-sent-record-diagnostic` 返回包。本插入轮次只做安全复核:判断是否能打开生产发消息门禁;不能则记录明确阻断。
**Files:**
- Create: `scripts/validate-send-sent-record-diagnostic-package.ps1`
- Create: `scripts/test-validate-send-sent-record-diagnostic-package.ps1`
- Create: `docs/source-discovery/2026-07-10-returned-send-sent-record-diagnostic.md`
- Modify: `docs/current-status-card.md`
- [x] **Step 1: Write validator test first**
Test covers a blocked fixture and a strict-pass fixture. Initial run failed before the validator existed.
- [x] **Step 2: Implement safe validator**
Validator accepts `-ZipPath`, emits booleans/counts only, and supports `-Strict` non-zero exit when strict sent-record evidence is missing.
- [x] **Step 3: Validate returned packages**
Both returned packages produced `decision="manual_success_without_machine_sent_record"` and `strict_send_record_pass=false`.
- [x] **Step 4: Document decision**
Created `docs/source-discovery/2026-07-10-returned-send-sent-record-diagnostic.md`. Production send remains blocked.
**R10a Result:**
- Package 1 and package 2 both have before/after runs and operator success.
- Neither package has machine-verifiable after sent-record/content-hash evidence.
- Both show `after_offline_blocked=true`.
- `production_send_unlock_recommended=false`; default `isphere_send_message` remains production-blocked.
---
### R11: Receive-file download preview contract
**Purpose:** 即使真实下载还不能做,也让 `isphere_receive_files` 对 download 请求返回可机器解析的 preview/blocked 结果,而不是只有泛化拒绝。