docs: publish r6f r14 release candidate status

This commit is contained in:
zhaoyilun
2026-07-11 00:52:17 +08:00
parent caa7649feb
commit 456ef44e8e
5 changed files with 171 additions and 15 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
Current loop: `R13 business goals smoke complete`; next R14 release-candidate report. Current loop: `R14 release-candidate report complete`; next step is evidence-driven production gate review.
Active continuous execution plan: `docs/superpowers/plans/2026-07-10-r6f-r14-continuous-execution-plan.md`. Active continuous execution plan: `docs/superpowers/plans/2026-07-10-r6f-r14-continuous-execution-plan.md`.
@@ -240,8 +240,8 @@ 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`. - 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. - 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. - 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: R13 business goals smoke. - Last completed round: R14 release-candidate report.
- Next active round: R14 release-candidate report. - Next active round: wait for returned online evidence or start a new evidence-driven follow-up loop.
R6g send audit and idempotency replay diagnostics is complete: R6g send audit and idempotency replay diagnostics is complete:
@@ -373,3 +373,13 @@ R13 business goals smoke is complete:
- Smoke result: production send, real file download, and production file upload remain blocked. - Smoke result: production send, real file download, and production file upload remain blocked.
- Output blockers: `send_message_production_missing_strict_machine_sent_record_evidence`, `receive_files_download_missing_real_cache_mapping_and_copy_gate`, and `send_file_production_missing_upload_connector_and_returned_file_send_evidence`. - Output blockers: `send_message_production_missing_strict_machine_sent_record_evidence`, `receive_files_download_missing_real_cache_mapping_and_copy_gate`, and `send_file_production_missing_upload_connector_and_returned_file_send_evidence`.
- Next node: R14 release-candidate report. - Next node: R14 release-candidate report.
R14 release-candidate report is complete:
- Rebuilt and verified `runs\send-sandbox-gate-package.zip`.
- Rebuilt and verified `runs\send-file-sandbox-gate-package.zip`.
- Added `docs\reports\2026-07-10-r6f-r14-release-candidate.md`.
- Updated `docs\source-discovery\capability-source-matrix.md` with R10a/R11/R12/R13/R14 decisions.
- Updated `docs\go-mcp-runbook.md` with the R14 business status and package paths.
- Verification passed: package builders/verifiers, `git diff --check`, `scripts\verify-business-goals-smoke.ps1`, `go test ./...`, `go build ./cmd/isphere-mcp`, and `scripts\verify-go-mcp.ps1`.
- Final R14 business conclusion: search contacts, search groups, receive messages, and receive-file list are usable; send-message preview and send-file preview are usable; production send, real file download, and production file upload remain evidence-blocked.

View File

@@ -532,10 +532,10 @@ This package includes `isphere-capability-smoke.exe` and `runs\win-helper\ISpher
Run the business-facing smoke when you need a single status line for the four goals: Run the business-facing smoke when you need a single status line for the four goals:
```powershell ```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts erify-business-goals-smoke.ps1 powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-business-goals-smoke.ps1
``` ```
It reuses `scripts erify-go-mcp.ps1`, writes `docs/reports/2026-07-10-business-goals-smoke.md`, and prints these key fields: It reuses `scripts\verify-go-mcp.ps1`, writes `docs/reports/2026-07-10-business-goals-smoke.md`, and prints these key fields:
- `search_contacts_ready` - `search_contacts_ready`
- `search_groups_ready` - `search_groups_ready`
@@ -550,7 +550,31 @@ It reuses `scripts erify-go-mcp.ps1`, writes `docs/reports/2026-07-10-business-g
Current expected production blockers are real send-message, real file download, and real file upload. Current expected production blockers are real send-message, real file download, and real file upload.
## 17. Troubleshooting
## 17. R14 release-candidate status
Use the R14 release-candidate report when you need a business-facing answer about what is ready, what is preview-only, and what still needs online evidence:
```text
docs\reports\2026-07-10-r6f-r14-release-candidate.md
```
Current short answer:
- 已完成:搜索联系人、搜索群组、收消息基础读取、收文件列表。
- 可预览:发消息 preview、发文件 preview。
- 阻断:生产发消息、真实文件下载、生产发文件。
The two online evidence packages to send to an internal/logged-in operator are:
```text
runs\send-sandbox-gate-package.zip
runs\send-file-sandbox-gate-package.zip
```
They are generated under ignored `runs\` and are not committed.
## 18. Troubleshooting
- If C# helper build fails, run `scripts\build-win-helper.ps1` directly and check for missing .NET Framework reference assemblies. - If C# helper build fails, run `scripts\build-win-helper.ps1` directly and check for missing .NET Framework reference assemblies.
- If `win_helper_version` fails, rerun `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-win-helper.ps1` first. - If `win_helper_version` fails, rerun `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-win-helper.ps1` first.

View File

@@ -0,0 +1,108 @@
# R6f-R14 Release Candidate Status - 2026-07-10
本报告是 R6f-R14 连续轮次的业务验收材料。结论先讲清楚:数字员工现在可以用搜索、收消息基础读取、收文件列表,以及发消息/发文件 preview生产发消息、真实下载文件、生产发文件仍然需要在线可登录环境返回证据。
## Business capability status
| 业务能力 | 状态分类 | 当前结论 | 证据/说明 |
| --- | --- | --- | --- |
| 搜索联系人 | 已完成:可直接给数字员工用 | 可用 | `isphere_search_contacts` 已注册;支持 PacketReader/log-backed 候选和可选 MsgLib display enrichmentR13 smoke 通过。 |
| 搜索群组 | 已完成:可直接给数字员工用 | 可用 | `isphere_search_groups` 已注册;支持 groupchat/conference 候选、排序、去重和可选 MsgLib enrichmentR13 smoke 通过。 |
| 收消息 | 已完成:可直接给数字员工用 | 基础读取可用 | 默认 PacketReader/log-backed显式 `source_preference="msglib_readonly"` 可走只读 MsgLibR12 已有对账 helper但默认路由未切换。 |
| 收文件列表 | 已完成:可直接给数字员工用 | 可列文件元数据 | `isphere_receive_files` list mode 可用;返回文件元数据候选,不读取文件内容。 |
| 发消息 preview | 可预览:数字员工可规划但不会真实发出/下载 | 可规划,不会发送 | `isphere_send_message` 支持 target/content hash/idempotency/audit preview生产发送默认 blocked。 |
| 发文件 preview | 可预览:数字员工可规划但不会真实发出/下载 | 可规划,不会上传 | `isphere_send_file` 支持 allowed-dir 文件 SHA256/size/idempotency preview生产上传默认 blocked。 |
| 发消息生产 | 阻断:需要在线可登录环境返回证据 | 未开放 | 两个 returned sent-record 包只有人工成功观察,缺少机器可验证 after sent-record/content-hash 证据,且 after 仍有 offline blocker。 |
| 收文件下载 | 阻断:需要在线可登录环境返回证据 | 未开放 | R10 证明 resolver 评分逻辑R11 提供 download preview blocked/planned contract缺少真实 cache mapping 和 copy gate。 |
| 发文件生产 | 阻断:需要在线可登录环境返回证据 | 未开放 | R7/R8/R9 已完成 preview/idempotency/audit/package缺少上传 connector 和 returned file-send evidence。 |
## MCP tools available to digital employees
当前 Go MCP surface 共 10 个工具:
1. `win_helper_version`
2. `win_helper_self_check`
3. `win_helper_scan_windows`
4. `win_helper_dump_uia`
5. `isphere_receive_messages`
6. `isphere_search_contacts`
7. `isphere_search_groups`
8. `isphere_receive_files`
9. `isphere_send_message`
10. `isphere_send_file`
业务上可直接使用的是联系人搜索、群组搜索、收消息基础读取、收文件列表。`isphere_send_message``isphere_send_file` 目前只能用于 preview/dry-run 规划;不会真实发送、不会上传、不会点击客户端。
## Packages generated under runs
这些包位于 ignored `runs\` 目录不提交到仓库R14 本地已重建或复核相关包。
| 包路径 | 用途 | R14 状态 |
| --- | --- | --- |
| `runs\send-sandbox-gate-package.zip` | 在线/内网环境录制发消息严格证据;用于判断能否开放生产发消息 | 已重建并通过 `verify-send-sandbox-gate-package.ps1`。 |
| `runs\send-file-sandbox-gate-package.zip` | 在线/内网环境录制发文件/上传证据;用于判断能否开放生产发文件 | 已重建并通过 `verify-send-file-sandbox-gate-package.ps1`。 |
| `runs\send-capability-test-package.zip` | 离线能力测试包;验证 10-tool surface、收/搜/列表 fixture、发送 preview 和生产阻断 | 已存在;用于 operator 侧无登录能力测试。 |
| `runs\live-probe-recorder-package.zip` | 早期 live probe/recorder 包 | 保留为历史证据采集材料R14 主包以上面两个 gate package 为准。 |
## Production blockers
1. **发消息生产阻断**:缺少严格机器 sent-record/content-hash after 证据。当前两个 `send-sent-record-diagnostic` 返回包显示人工观察成功,但 `exact_content_seen_after=false``content_sha256_seen_after=false``after_offline_blocked=true`,所以不能打开生产发送门。
2. **收文件下载阻断**:缺少真实 iSphere cache/archive 到消息文件记录的可信映射,以及真实 copy gate。当前只证明 fixture resolver 逻辑,不证明生产文件可复制。
3. **发文件生产阻断**:缺少上传 connector、真实 file-send returned package、上传/发送确认和重复发送保护证据。
## Exact next evidence request if blocked
如果要继续推进真实能力,下一步只需要三类在线证据:
1. **发消息生产**:在可登录环境重新执行 `runs\send-sandbox-gate-package.zip`。返回包必须包含 before/after recorder、人工点击/成功时间、`success_ack_or_sent_record_present=true`、after 记录中能机器验证 exact content 或 content SHA256并确认没有第二次重复发送。
2. **收文件下载**:在可登录环境提供一组真实收文件记录和对应 cache/archive 根目录的 sanitized mapping 输出。验收条件是 `accepted_matches>0``ambiguous_matches=0`,并且后续 copy gate 仍保持不返回原始本地路径和不读取文件内容到报告。
3. **发文件生产**:在可登录环境执行 `runs\send-file-sandbox-gate-package.zip`。返回包必须包含 before/after recorder、文件 SHA256、人工上传/发送确认、上传或 sent-record 证据,并确认没有第二次重复发送。
## Verification commands and latest results
R14 本轮已执行并通过:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\package-send-sandbox-gate.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-send-sandbox-gate-package.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\package-send-file-sandbox-gate.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-send-file-sandbox-gate-package.ps1
git diff --check
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-business-goals-smoke.ps1
go test ./...
go build ./cmd/isphere-mcp
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-go-mcp.ps1
```
Latest machine-readable highlights:
```json
{
"business_goals_smoke": true,
"search_contacts_ready": true,
"search_groups_ready": true,
"receive_messages_ready": true,
"send_message_preview_ready": true,
"send_message_production_ready": false,
"receive_files_list_ready": true,
"receive_files_download_ready": false,
"receive_file_download_preview_blocked": true,
"send_file_preview_ready": true,
"send_file_production_ready": false,
"go_mcp_verify": true,
"tool_count": 10,
"production_send_enabled": false,
"send_file_production_enabled": false
}
```
## Business conclusion
从业务角度,四个目标拆开看:
- 搜索联系人:完成。
- 搜索群组:完成。
- 收发消息:收消息基础完成;发消息 preview 完成;生产发消息阻断。
- 收发文件:收文件列表完成;发文件 preview 完成;真实下载和生产发文件阻断。
因此当前不是“全破解完成”,而是“可读/可搜/可规划已经可交付;真实写入和真实下载进入在线证据门禁”。

View File

@@ -9,6 +9,11 @@ Send connector preflight: `docs/source-discovery/2026-07-10-send-connector-prefl
Send sandbox gate: `docs/source-discovery/2026-07-10-send-sandbox-gate.md` Send sandbox gate: `docs/source-discovery/2026-07-10-send-sandbox-gate.md`
Returned send sandbox analysis: `docs/source-discovery/2026-07-10-returned-send-sandbox-analysis.md` Returned send sandbox analysis: `docs/source-discovery/2026-07-10-returned-send-sandbox-analysis.md`
Returned send sandbox analysis v2: `docs/source-discovery/2026-07-10-returned-send-sandbox-analysis-v2.md` Returned send sandbox analysis v2: `docs/source-discovery/2026-07-10-returned-send-sandbox-analysis-v2.md`
Returned send-sent record diagnostic: `docs/source-discovery/2026-07-10-returned-send-sent-record-diagnostic.md`
File download mapping v2: `docs/source-discovery/2026-07-10-file-download-mapping-v2.md`
Send-file sandbox gate: `docs/source-discovery/2026-07-10-send-file-sandbox-gate.md`
Business goals smoke: `docs/reports/2026-07-10-business-goals-smoke.md`
R14 release candidate: `docs/reports/2026-07-10-r6f-r14-release-candidate.md`
## Source priority ## Source priority
@@ -23,12 +28,12 @@ Returned send sandbox analysis v2: `docs/source-discovery/2026-07-10-returned-se
| MCP tool | Primary source | Fallback source | Evidence file | Decision status | Next implementation slice | | MCP tool | Primary source | Fallback source | Evidence file | Decision status | Next implementation slice |
| --- | --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- | --- |
| `isphere_receive_messages` | decrypted `PacketReader.ProcessPacket` XMPP `<message>` stanzas via `internal/isphere.EncryptedPacketLogSource`; configured by `ISPHERE_PACKET_LOG_FILE` or `ISPHERE_PACKET_LOG_DIR` | copied `MsgLib.db` message tables through x86 read-only sidecar `list_messages` selected explicitly by `source_preference="msglib_readonly"`; decrypted `Smark.SendReceive` transport stanzas; decrypted `SaveToDB` `Chat_OnMessageArrived` traces | `docs/source-discovery/2026-07-09-n12-pre-zyl-schema-notes.md#field-mapping-evidence`; `docs/source-discovery/2026-07-10-dotnet-wrapper-static-analysis.md`; `docs/source-discovery/2026-07-10-db-backed-receive-source-design.md`; `docs/source-discovery/2026-07-10-receive-message-reconciliation-precheck.md` | C20 supports and validates the current safe receive-message contract args; C32 wires optional MsgLib display metadata into receive-message `sender_name` and `conversation.display_name`; C33 proves this path through a real copied-DB MCP smoke; C35 maps MsgLib message tables; C36 adds metadata-only `message_sources`; C37 defines bounded `list_messages` design; C38 implements sidecar/Go-wrapper `list_messages` with sanitized copied-DB verification; C39 adds a Go adapter from `ListMessages` to the receive-message domain model; C40 adds tool-level explicit `msglib_readonly` source selection; C41 wires env-configured MsgLib receive source and optional copied-DB smoke; R1 precheck keeps `auto` PacketReader/log-backed until a future reconciliation helper is implemented | future receive reconciliation helper after R2/R3 | | `isphere_receive_messages` | decrypted `PacketReader.ProcessPacket` XMPP `<message>` stanzas via `internal/isphere.EncryptedPacketLogSource`; configured by `ISPHERE_PACKET_LOG_FILE` or `ISPHERE_PACKET_LOG_DIR` | copied `MsgLib.db` message tables through x86 read-only sidecar `list_messages` selected explicitly by `source_preference="msglib_readonly"`; decrypted `Smark.SendReceive` transport stanzas; decrypted `SaveToDB` `Chat_OnMessageArrived` traces | `docs/source-discovery/2026-07-09-n12-pre-zyl-schema-notes.md#field-mapping-evidence`; `docs/source-discovery/2026-07-10-dotnet-wrapper-static-analysis.md`; `docs/source-discovery/2026-07-10-db-backed-receive-source-design.md`; `docs/source-discovery/2026-07-10-receive-message-reconciliation-precheck.md`; `scripts/verify-receive-source-reconciliation.ps1`; `docs/reports/2026-07-10-business-goals-smoke.md` | C41 wires env-configured explicit MsgLib receive with optional sanitized smoke; R12 adds a pure reconciliation helper with strong/medium match summary while keeping default PacketReader/log-backed routing unchanged; R13/R14 business smoke confirms receive-message basic readiness. | completed for basic digital-employee read; future optional route is switching default auto only after real reconciliation evidence |
| `isphere_search_contacts` | bare sender/receiver JIDs extracted from normalized log-backed messages loaded from configured PacketReader file or directory source | validated copied `MsgLib.db` tables: `TD_Roster`, `TD_CustomEffigy`, `tblRecent`, `tblChatLevel`, `tblPersonMsg`; decrypted roster/contact stanzas from `Smark.SendReceive`; UIA helper source if display names are still missing | `docs/source-discovery/2026-07-10-msglib-readonly-schema-extraction.md`; `internal/isphere/contacts_test.go`; `internal/tools/isphere_contacts_test.go` | C34 documents optional MsgLib contact display enrichment; R2 adds deterministic exact-match-first ranking, case-insensitive de-duplication across log/MsgLib candidates, and preserves `source`/`raw_ref` | core contact search complete; optional richer fields later | | `isphere_search_contacts` | bare sender/receiver JIDs extracted from normalized log-backed messages loaded from configured PacketReader file or directory source | validated copied `MsgLib.db` tables: `TD_Roster`, `TD_CustomEffigy`, `tblRecent`, `tblChatLevel`, `tblPersonMsg`; decrypted roster/contact stanzas from `Smark.SendReceive`; UIA helper source if display names are still missing | `docs/source-discovery/2026-07-10-msglib-readonly-schema-extraction.md`; `internal/isphere/contacts_test.go`; `internal/tools/isphere_contacts_test.go` | C34 documents optional MsgLib contact display enrichment; R2 adds deterministic exact-match-first ranking, case-insensitive de-duplication across log/MsgLib candidates, and preserves `source`/`raw_ref` | core contact search complete; optional richer fields later |
| `isphere_search_groups` | decrypted `PacketReader.ProcessPacket` `type="groupchat"` stanzas and conference/MUC JIDs loaded from configured PacketReader file or directory source | validated copied `MsgLib.db` tables: `tblMsgGroupPersonMsg`, `TD_WorkGroupAuth`, `tblRecent`; UIA helper source if group display names are still missing | `docs/source-discovery/2026-07-10-msglib-readonly-schema-extraction.md`; `internal/isphere/groups_test.go`; `internal/tools/isphere_groups_test.go`; C9 ignored-log scan: PacketReader 86 groupchat/86 conference hits; Smark 24 groupchat/658 conference/631 muc hits | C34 documents optional MsgLib group display enrichment; R2 adds deterministic exact-match-first ranking, case-insensitive de-duplication across log/MsgLib candidates, and preserves `source`/`raw_ref` | core group search complete; optional member/owner hierarchy later | | `isphere_search_groups` | decrypted `PacketReader.ProcessPacket` `type="groupchat"` stanzas and conference/MUC JIDs loaded from configured PacketReader file or directory source | validated copied `MsgLib.db` tables: `tblMsgGroupPersonMsg`, `TD_WorkGroupAuth`, `tblRecent`; UIA helper source if group display names are still missing | `docs/source-discovery/2026-07-10-msglib-readonly-schema-extraction.md`; `internal/isphere/groups_test.go`; `internal/tools/isphere_groups_test.go`; C9 ignored-log scan: PacketReader 86 groupchat/86 conference hits; Smark 24 groupchat/658 conference/631 muc hits | C34 documents optional MsgLib group display enrichment; R2 adds deterministic exact-match-first ranking, case-insensitive de-duplication across log/MsgLib candidates, and preserves `source`/`raw_ref` | core group search complete; optional member/owner hierarchy later |
| `isphere_receive_files` | decrypted `PacketReader.ProcessPacket` file-transfer message stanzas via `internal/isphere.ListFilesFromMessages` and `isphere_receive_files` list mode; configured PacketReader file or directory source; `zyl\importal\<hash>` cache entries remain unlinked | MsgLib `TD_ReceiveFileRecord` safe metadata through explicit copied-DB path; decrypted `Smark.SendReceive` and `SaveToDB` traces for file-reference reconciliation; future UIA/client connector for download | `docs/source-discovery/2026-07-09-n12-pre-zyl-schema-notes.md#c12-file-transfer-evidence-precheck`; `docs/source-discovery/2026-07-10-file-download-mapping-precheck.md`; `docs/source-discovery/2026-07-10-file-cache-mapping-diagnostic.md` | C22 verifies safe file-list contract args; R3 confirms list metadata is available; R3b diagnostic finds 0 current cache/archive matches, so R4 remains blocked | blocked pending better cache evidence or UI/client download connector | | `isphere_receive_files` | decrypted `PacketReader.ProcessPacket` file-transfer message stanzas via `internal/isphere.ListFilesFromMessages` and `isphere_receive_files` list mode; configured PacketReader file or directory source; `zyl\importal\<hash>` cache entries remain unlinked | MsgLib `TD_ReceiveFileRecord` safe metadata through explicit copied-DB path; decrypted `Smark.SendReceive` and `SaveToDB` traces for file-reference reconciliation; future UIA/client connector for download | `docs/source-discovery/2026-07-09-n12-pre-zyl-schema-notes.md#c12-file-transfer-evidence-precheck`; `docs/source-discovery/2026-07-10-file-download-mapping-precheck.md`; `docs/source-discovery/2026-07-10-file-cache-mapping-diagnostic.md`; `docs/source-discovery/2026-07-10-file-download-mapping-v2.md`; `docs/reports/2026-07-10-business-goals-smoke.md` | C22 verifies safe file-list contract args; R10 proves resolver scoring with fixture accepted matches; R11 adds structured download preview with `blocked`/`planned` status and side-effect flags false; R13/R14 confirms list is ready but real download is still blocked. | blocked for real download pending accepted real cache mapping and copy gate; list mode is complete |
| `isphere_send_message` | B-route selected: running-client sidecar / in-process connector, preferring `AppContextManager.SendTxtMessageByJid(...)` or `MessageScheduling.SendChatMessage(...)` over the unimplemented `SendP2PMessage(...)` interface path; current MCP tool exposes preview/dry-run only | A-route fallback: constrained UI/RPA wrapper only if B cannot pass runtime probe, entrypoint availability, dynamic observation, and idempotent dry-run gates; network/protocol replay remains deferred | `docs/source-discovery/2026-07-10-send-message-source-precheck.md`; `docs/source-discovery/2026-07-10-send-message-connector-selection.md`; `docs/source-discovery/2026-07-10-send-sidecar-b-first-plan.md`; `docs/source-discovery/2026-07-10-returned-live-probe-analysis.md`; `docs/source-discovery/2026-07-10-send-connector-preflight.md`; `docs/source-discovery/2026-07-10-send-sandbox-gate.md`; `docs/source-discovery/2026-07-10-returned-send-sandbox-analysis.md`; `docs/source-discovery/2026-07-10-returned-send-sandbox-analysis-v2.md`; `internal/tools/isphere_send_message_test.go`; `cmd/isphere-capability-smoke/main.go` | R6j adds strict-v2 package hardening; R6k finds no new strict-v2 returned package. Existing `1631.zip` remains `partial_use_only`, `r6d_gate_pass=false`, and `strict_v2_pass=false`. Production remains blocked because no real connector has passed a controlled online sandbox test. | next: R6l send-message production path gate closure | | `isphere_send_message` | B-route selected: running-client sidecar / in-process connector, preferring `AppContextManager.SendTxtMessageByJid(...)` or `MessageScheduling.SendChatMessage(...)` over the unimplemented `SendP2PMessage(...)` interface path; current MCP tool exposes preview/dry-run only | A-route fallback: constrained UI/RPA wrapper only if B cannot pass runtime probe, entrypoint availability, dynamic observation, and idempotent dry-run gates; network/protocol replay remains deferred | `docs/source-discovery/2026-07-10-send-message-source-precheck.md`; `docs/source-discovery/2026-07-10-send-message-connector-selection.md`; `docs/source-discovery/2026-07-10-send-sidecar-b-first-plan.md`; `docs/source-discovery/2026-07-10-returned-live-probe-analysis.md`; `docs/source-discovery/2026-07-10-send-connector-preflight.md`; `docs/source-discovery/2026-07-10-send-sandbox-gate.md`; `docs/source-discovery/2026-07-10-returned-send-sandbox-analysis.md`; `docs/source-discovery/2026-07-10-returned-send-sandbox-analysis-v2.md`; `docs/source-discovery/2026-07-10-returned-send-sent-record-diagnostic.md`; `internal/tools/isphere_send_message_test.go`; `cmd/isphere-capability-smoke/main.go`; `docs/reports/2026-07-10-business-goals-smoke.md` | R6f-R6l define connector contract, audit/idempotency replay, production gate, B-route shell, strict-v2 package, and explicit production closure. R10a validates two returned sent-record packages as manual-only evidence: `operator_observed_success=true`, but `exact_content_seen_after=false`, `content_sha256_seen_after=false`, `after_offline_blocked=true`, and `production_send_unlock_recommended=false`. Preview is complete; production remains blocked. | blocked until strict machine sent-record/content-hash after evidence passes and a connector is configured |
| `isphere_send_file` | B-route selected after send-message probe: managed offline-file path through `OffLineFileSend.sendFile()`, `IMPP.Service*.dll` `IFileTransfer.FileUpload(...)`, and `Chat.sendFileMessage(...)` | A-route fallback: constrained UI/RPA upload/send-file flow; native `TcpFileTransfer.dll` is a later candidate only after managed path is rejected | `docs/source-discovery/2026-07-10-send-message-source-precheck.md`; `docs/source-discovery/2026-07-10-send-message-connector-selection.md`; `docs/source-discovery/2026-07-10-send-sidecar-b-first-plan.md`; `docs/source-discovery/2026-07-10-returned-live-probe-analysis.md`; `docs/source-discovery/2026-07-10-send-connector-preflight.md`; `docs/source-discovery/2026-07-10-send-sandbox-gate.md` | R6a/C31 metadata confirms `FileTransfer.FileUpload`, `FileTransfer.AsynFileUpload`, `OffLineFileSend.sendFile`, and `Chat.sendFileMessage` candidates. File-send remains blocked behind returned message-send sandbox evidence plus later upload/file-message dry-run evidence. | next: wait for R6d, then file-send upload preflight | | `isphere_send_file` | B-route selected after send-message probe: managed offline-file path through `OffLineFileSend.sendFile()`, `IMPP.Service*.dll` `IFileTransfer.FileUpload(...)`, and `Chat.sendFileMessage(...)`; current MCP tool exposes preview/dry-run only | A-route fallback: constrained UI/RPA upload/send-file flow; native `TcpFileTransfer.dll` is a later candidate only after managed path is rejected | `docs/source-discovery/2026-07-10-send-message-source-precheck.md`; `docs/source-discovery/2026-07-10-send-message-connector-selection.md`; `docs/source-discovery/2026-07-10-send-sidecar-b-first-plan.md`; `docs/source-discovery/2026-07-10-returned-live-probe-analysis.md`; `docs/source-discovery/2026-07-10-send-connector-preflight.md`; `docs/source-discovery/2026-07-10-send-file-sandbox-gate.md`; `internal/tools/isphere_files_test.go`; `docs/reports/2026-07-10-business-goals-smoke.md` | R7 registers send-file preview as the tenth MCP tool; R8 adds audit/idempotency duplicate/conflict hardening without raw file paths/content; R9 builds and verifies the online send-file evidence package; R13/R14 confirms preview is ready and production upload remains blocked. | blocked until returned file-send package proves upload/sent evidence and an upload connector is gated |
## Stage C entry rule ## Stage C entry rule
@@ -45,4 +50,4 @@ Start Stage C with a narrow log-backed `isphere_receive_messages` source abstrac
## Deferred source work ## Deferred source work
`MsgLib.db` has a validated copied read-only open path through the bundled 32-bit `System.Data.SQLite.dll` and password `123`. C27 adds `MsgLibReadSidecar` as the bounded x86 .NET reader boundary, C28 adds the Go `internal/msglib` process client, C29 adds bounded `display_entities` extraction, C30 wires it as optional contact/group MCP enrichment, C31 proves real copied-DB MCP enrichment with sanitized output, C32 reuses it for receive-message display fields, C33 proves that receive display path through a real copied-DB MCP smoke without printing entity values, C34 documents the operator setup/verification path, C35 maps MsgLib message tables to receive-message contract fields without reading row values, C36 adds metadata-only `message_sources` readiness, C37 defines the bounded DB-backed receive-source design, C38 implements sidecar/Go-wrapper `list_messages` with sanitized verification, C39 adds a Go adapter from MsgLib list results to the receive-message domain model, C40 adds explicit tool-level `msglib_readonly` source selection, C41 wires env-configured explicit MsgLib receive with optional sanitized smoke, R1 documents source reconciliation keys, and R2 hardens contact/group search ranking and de-duplication. R6j/R6k confirm the send-message strict-v2 production gate is still not passed. The active continuous execution plan is `docs/superpowers/plans/2026-07-10-r6f-r14-continuous-execution-plan.md`; next step is R6l. `MsgLib.db` has a validated copied read-only open path through the bundled 32-bit `System.Data.SQLite.dll` and password `123`. C27 adds `MsgLibReadSidecar` as the bounded x86 .NET reader boundary, C28 adds the Go `internal/msglib` process client, C29 adds bounded `display_entities` extraction, C30 wires it as optional contact/group MCP enrichment, C31 proves real copied-DB MCP enrichment with sanitized output, C32 reuses it for receive-message display fields, C33 proves that receive display path through a real copied-DB MCP smoke without printing entity values, C34 documents the operator setup/verification path, C35 maps MsgLib message tables to receive-message contract fields without reading row values, C36 adds metadata-only `message_sources` readiness, C37 defines the bounded DB-backed receive-source design, C38 implements sidecar/Go-wrapper `list_messages` with sanitized verification, C39 adds a Go adapter from MsgLib list results to the receive-message domain model, C40 adds explicit tool-level `msglib_readonly` source selection, C41 wires env-configured explicit MsgLib receive with optional sanitized smoke, R1 documents source reconciliation keys, and R2 hardens contact/group search ranking and de-duplication. R6j/R6k confirm the send-message strict-v2 production gate is still not passed; R10a confirms the returned sent-record packages are manual-only evidence and do not unlock production send; R10/R11 define file-download resolver/preview behavior while keeping real copy blocked; R12 adds receive-source reconciliation without changing default routing; R13/R14 publish business-goals smoke and the release-candidate status. The active continuous execution plan `docs/superpowers/plans/2026-07-10-r6f-r14-continuous-execution-plan.md` is complete through R14; next work is evidence-driven, not local login-dependent.

View File

@@ -985,7 +985,7 @@ git push gitea main
- `## Exact next evidence request if blocked` - `## Exact next evidence request if blocked`
- `## Verification commands and latest results` - `## Verification commands and latest results`
- [ ] **Step 1: Rebuild local packages** - [x] **Step 1: Rebuild local packages**
```powershell ```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\package-send-sandbox-gate.ps1 powershell -NoProfile -ExecutionPolicy Bypass -File scripts\package-send-sandbox-gate.ps1
@@ -994,7 +994,7 @@ powershell -NoProfile -ExecutionPolicy Bypass -File scripts\package-send-file-sa
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-send-file-sandbox-gate-package.ps1 powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-send-file-sandbox-gate-package.ps1
``` ```
- [ ] **Step 2: Run full verification** - [x] **Step 2: Run full verification**
```powershell ```powershell
git diff --check git diff --check
@@ -1004,7 +1004,7 @@ go build ./cmd/isphere-mcp
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-go-mcp.ps1 powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-go-mcp.ps1
``` ```
- [ ] **Step 3: Write release-candidate report** - [x] **Step 3: Write release-candidate report**
The report must state the business status using these exact categories: The report must state the business status using these exact categories:
@@ -1014,7 +1014,7 @@ The report must state the business status using these exact categories:
阻断:需要在线可登录环境返回证据 阻断:需要在线可登录环境返回证据
``` ```
- [ ] **Step 4: Commit and push** - [x] **Step 4: Commit and push**
```powershell ```powershell
git status --short git status --short
@@ -1025,6 +1025,15 @@ git push gitea main
**Acceptance gate:** 用户可以审核一个清晰结论:哪些目标已经能给数字员工用,哪些只到 preview哪些必须回到在线环境采证。 **Acceptance gate:** 用户可以审核一个清晰结论:哪些目标已经能给数字员工用,哪些只到 preview哪些必须回到在线环境采证。
**R14 Result:**
- Rebuilt and verified `runs/send-sandbox-gate-package.zip`.
- Rebuilt and verified `runs/send-file-sandbox-gate-package.zip`.
- Added release-candidate report `docs/reports/2026-07-10-r6f-r14-release-candidate.md`.
- Updated runbook, capability matrix, and status card with the business-ready/preview/blocked split.
- Verification passed: package builders/verifiers, `git diff --check`, `scripts/verify-business-goals-smoke.ps1`, `go test ./...`, `go build ./cmd/isphere-mcp`, and `scripts/verify-go-mcp.ps1`.
- Business conclusion: search contacts, search groups, receive messages, and receive-file list are usable; send-message preview and send-file preview are usable; production send, real file download, and production file upload remain blocked on online evidence.
--- ---
## Expected Business State After R14 ## Expected Business State After R14