From cc2321aa869993ebdb082ee602d7ec73fe0ca0ee Mon Sep 17 00:00:00 2001 From: Rogee Date: Tue, 22 Sep 2026 18:44:54 +0800 Subject: [PATCH] Record connection authorization acceptance --- ...xAgent-会话消息同步-P4-build-manifest.json | 18 ++++---- ...WxAgent-会话消息同步-P4-live-evidence.json | 46 +++++++++---------- .../WxAgent-会话消息同步-P4-验收记录.md | 14 +++--- docs/validation/raw/README.md | 2 +- docs/validation/raw/p4-live-commands.log | 34 +++++++------- docs/validation/raw/p4-live-operations.jsonl | 14 +++--- 6 files changed, 64 insertions(+), 64 deletions(-) diff --git a/docs/validation/WxAgent-会话消息同步-P4-build-manifest.json b/docs/validation/WxAgent-会话消息同步-P4-build-manifest.json index 0f552aa..c8180f7 100644 --- a/docs/validation/WxAgent-会话消息同步-P4-build-manifest.json +++ b/docs/validation/WxAgent-会话消息同步-P4-build-manifest.json @@ -1,13 +1,13 @@ { - "implementation_commit": "58a459b", + "implementation_commit": "0bede18", "build_commands": [ "cd control-plane && go build -o ./cmd/wxagent-control-plane", "dotnet publish node-agent/WxAgent.Tray -c Release -r win-x64 --self-contained true -p:EnableWindowsTargeting=true -p:PublishSingleFile=true -p:PublishTrimmed=false" ], "artifacts": { - "control_plane_sha256": "bcb6d8c7d29dd968cb2011fae5e2aec9de340329ee957a399ae6052adf342473", - "tray_sha256": "1f82a427adda5b00a208018b0af1a472c09ad28495cd84ecbb9aa98c5a92dbaf", - "windows_deployed_tray_sha256": "1f82a427adda5b00a208018b0af1a472c09ad28495cd84ecbb9aa98c5a92dbaf" + "control_plane_sha256": "f7bc17f39da3d643ef6cfefd3d96a6c1ac57b95ea5148dddefea3103f51a1c40", + "tray_sha256": "285e042c236930142f6164676f3f14b788581215bf949f73ad269a83dd827533", + "windows_deployed_tray_sha256": "285e042c236930142f6164676f3f14b788581215bf949f73ad269a83dd827533" }, "validation_environment": { "windows_host": "DESKTOP-EGI7QCK", @@ -58,10 +58,10 @@ "mutation_boundary_test": "passed" }, "connection_authorization": { - "offline_queue_items": 27, - "offline_queue_bytes": 13884423, + "offline_queue_items": 26, + "offline_queue_bytes": 13369019, "replay_queue_items": 0, - "replay_messages": 1725, + "replay_messages": 278, "replay_conversations": 451, "revoke_without_reconnect_data_status": 403, "valid_batch_rejection_before_reconnect": 403, @@ -79,8 +79,8 @@ "replayable_harness": "docs/validation/raw/collect-live-operations.sh", "capacity_metrics": "docs/validation/raw/capacity-metrics.txt", "cursor_transcript_sha256": "af9771c27fd2776f9973b4ffaffd9e9b55a8dad05f063148b6f3a6bbd714dd33", - "live_operations_sha256": "f24d6fe066f2cb137c59fcbb46ac57fa0540ed6431ffdfade15c9d94c2a3c59c", - "live_command_trace_sha256": "de53a602dfd0e28a414f046c77f830d5fb521c0a54663184ea630fac3f5b8b13", + "live_operations_sha256": "02a575f62379ebec419fe309a9a9fbf7fba05d581de2c0c6f65e51ff3d8dfbb0", + "live_command_trace_sha256": "cb1c48da2b3f8e6655d91b7cd728db470d405e1dce13b2a4801ae30b53907135", "capacity_metrics_sha256": "1fbd8b2d2266db102123f40bca68382ed01073294200f21df62bc0c11cf41767" }, "notes": [ diff --git a/docs/validation/WxAgent-会话消息同步-P4-live-evidence.json b/docs/validation/WxAgent-会话消息同步-P4-live-evidence.json index 098fbad..cf7b21b 100644 --- a/docs/validation/WxAgent-会话消息同步-P4-live-evidence.json +++ b/docs/validation/WxAgent-会话消息同步-P4-live-evidence.json @@ -1,6 +1,6 @@ { - "captured_at": "2026-09-22T09:41:00Z", - "implementation_commit": "58a459b", + "captured_at": "2026-09-22T10:08:00Z", + "implementation_commit": "0bede18", "build_manifest": "docs/validation/WxAgent-会话消息同步-P4-build-manifest.json", "replayable_harness": "docs/validation/raw/collect-live-operations.sh", "raw_evidence": [ @@ -10,9 +10,9 @@ "docs/validation/raw/capacity-metrics.txt" ], "artifacts": { - "control_plane_sha256": "bcb6d8c7d29dd968cb2011fae5e2aec9de340329ee957a399ae6052adf342473", - "tray_sha256": "1f82a427adda5b00a208018b0af1a472c09ad28495cd84ecbb9aa98c5a92dbaf", - "windows_deployed_tray_sha256": "1f82a427adda5b00a208018b0af1a472c09ad28495cd84ecbb9aa98c5a92dbaf" + "control_plane_sha256": "f7bc17f39da3d643ef6cfefd3d96a6c1ac57b95ea5148dddefea3103f51a1c40", + "tray_sha256": "285e042c236930142f6164676f3f14b788581215bf949f73ad269a83dd827533", + "windows_deployed_tray_sha256": "285e042c236930142f6164676f3f14b788581215bf949f73ad269a83dd827533" }, "authorization_model": { "boundary": "successful Agent connection", @@ -26,16 +26,16 @@ "current_live_sync": { "node_status": "Online", "capabilities_include": ["db-messages", "db-merged"], - "replay_confirmed_sequence": 25, - "replay_messages": 1725, + "replay_confirmed_sequence": 2, + "replay_messages": 278, "replay_conversations": 451, "replay_coverage": "complete", "directory_cursor_present": true, "conversation_source": "session/session.db/SessionTable", "directory_states": ["visible"], "title_equals_chat_id": 0, - "final_control_plane_messages_after_reconnect": 9629, - "final_control_plane_batches_after_reconnect": 89 + "final_control_plane_messages_after_reconnect": 8201, + "final_control_plane_batches_after_reconnect": 66 }, "platform_pagination": { "messages_sql": "keyset ORDER BY source_time DESC, message_id DESC", @@ -66,24 +66,24 @@ "offline_replay_current_binary": { "control_plane_unreachable": true, "agent_session": 1, - "queue_pending_while_unreachable": 27, - "queue_bytes_while_unreachable": 13884423, + "queue_pending_while_unreachable": 26, + "queue_bytes_while_unreachable": 13369019, "queue_file_hash_captured": true, "state_file_hash_captured": true, "queue_pending_after_reconnect": 0, "node_status_after_reconnect": "Online", - "messages_after_replay": 1725, - "confirmed_batches_after_replay": 25, + "messages_after_replay": 278, + "confirmed_batches_after_replay": 2, "coverage_after_replay": "complete" }, "agent_restart_current_binary": { "tray_restarted_session": 1, "node_status_after_restart": "Online", "queue_pending_after_restart": 0, - "messages_before": 1725, - "messages_after": 1725, - "confirmed_sequence_before": 25, - "confirmed_sequence_after": 25, + "messages_before": 278, + "messages_after": 278, + "confirmed_sequence_before": 2, + "confirmed_sequence_after": 2, "duplicate_batch_observed": false }, "control_plane_crash_recovery_current_binary": { @@ -91,16 +91,16 @@ "integrity_before_restart": "ok", "integrity_after_restart": "ok", "node_status_after_restart": "Online", - "messages_before": 9629, - "messages_after": 9629, - "batches_before": 89, - "batches_after": 89, + "messages_before": 8201, + "messages_after": 8201, + "batches_before": 66, + "batches_after": 66, "coverage_after_restart": "complete" }, "administrative_revoke_and_connection_restore": { "pending_queue_before_reconnect": { - "items": 12, - "bytes": 6137665, + "items": 10, + "bytes": 5096948, "queue_hash_captured": true }, "web_revoke_http_status": 200, diff --git a/docs/validation/WxAgent-会话消息同步-P4-验收记录.md b/docs/validation/WxAgent-会话消息同步-P4-验收记录.md index 8215737..342e4bc 100644 --- a/docs/validation/WxAgent-会话消息同步-P4-验收记录.md +++ b/docs/validation/WxAgent-会话消息同步-P4-验收记录.md @@ -1,10 +1,10 @@ # 会话消息同步与分账号存储:P4 验收记录 > 验收日期:2026-09-22(+08:00) -> 实现源码提交:`58a459b`;构建/部署映射见 [`P4 build manifest`](WxAgent-会话消息同步-P4-build-manifest.json) +> 实现源码提交:`0bede18`;构建/部署映射见 [`P4 build manifest`](WxAgent-会话消息同步-P4-build-manifest.json) > 原始记录:[`raw/`](raw/) -> 控制面 SHA-256:`bcb6d8c7d29dd968cb2011fae5e2aec9de340329ee957a399ae6052adf342473` -> Tray SHA-256(Linux 构建与 Windows 部署一致):`1f82a427adda5b00a208018b0af1a472c09ad28495cd84ecbb9aa98c5a92dbaf` +> 控制面 SHA-256:`f7bc17f39da3d643ef6cfefd3d96a6c1ac57b95ea5148dddefea3103f51a1c40` +> Tray SHA-256(Linux 构建与 Windows 部署一致):`285e042c236930142f6164676f3f14b788581215bf949f73ad269a83dd827533` ## 1. 自动化回归 @@ -60,11 +60,11 @@ SQLite 运行约束:WAL、`synchronous=FULL`、foreign keys、5 秒 busy timeo - **真实会话目录**:当前二进制从 `session/session.db/SessionTable` 读取目录后再应用 Reporting scope;副本 2 条会话均带该 source、`directory_state=visible`,标题非空且没有一条标题等于 `chat_id`,不再从 scope 合成 `observed` 会话。 - **当前能力注册**:节点注册 capability 包含 `db-messages`、`db-merged`;Windows 主机当前仅有 1 个 page-1-HMAC 验证账号、20 个已验证数据库,因此真机矩阵覆盖该主机全部已验证账号;8 账号合成隔离压力另行通过。 - **稳定游标分页**:原始 fixture HTTP 记录见 [`raw/cursor-http-transcript.txt`](raw/cursor-http-transcript.txt)。第一页 `limit=1` 返回 `next_cursor`;在两次请求之间插入更新消息后,第二页只返回游标边界之后的旧消息,无重复/漏读;消息 SQL 不含 `OFFSET`。 -- **可重放真机记录**:[`collect-live-operations.sh`](raw/collect-live-operations.sh) 从提交 `58a459b` 构建/部署 Tray,并在同一次运行中记录远程 SHA、Session/PID、queue/state SHA、控制面 PID 和原始 PowerShell 输出;`verify-p4-live-operations.sh` 验证跨事件不变量。 -- **断线补传**:原始 JSONL 记录控制面不可达时 durable queue=27 pending batches(13884423 bytes,含 queue/state SHA),恢复后 queue=0,节点 `Online`,副本 1725 消息/25 批次、coverage=`complete`。 -- **Agent 进程重启**:原始记录包含 PID、Session 1 和前后 sync-status;停止 Tray 15 秒后重启,前后均 sequence=25、1725 消息、25 批次,无重复批次。 +- **可重放真机记录**:[`collect-live-operations.sh`](raw/collect-live-operations.sh) 从提交 `0bede18` 构建/部署 Tray,并在同一次运行中记录远程 SHA、Session/PID、queue/state SHA、控制面 PID 和原始 PowerShell 输出;`verify-p4-live-operations.sh` 验证跨事件不变量。 +- **断线补传**:原始 JSONL 记录控制面不可达时 durable queue=26 pending batches(13369019 bytes,含 queue/state SHA),恢复后 queue=0,节点 `Online`,副本 278 消息/2 批次、coverage=`complete`。 +- **Agent 进程重启**:原始记录包含 PID、Session 1 和前后 sync-status;停止 Tray 15 秒后重启,前后均 sequence=2、278 消息、2 批次,无重复批次。 - **连接即授权**:原始 Web Bearer 操作 revoke=200;未重连时 conversations/messages=403、有效 batch=403,Agent 重连后自动授予连接账号,conversations/messages/sync-status=200 且队列在回放完成后为 0,无需单独确认。 -- **控制面崩溃恢复**:原始记录当前 live 控制面 stop/restart 前后 SQLite `integrity_check=ok`,消息/批次保持 9629/89。 +- **控制面崩溃恢复**:原始记录当前 live 控制面 stop/restart 前后 SQLite `integrity_check=ok`,消息/批次保持 8201/66。 - **短时稳定性**:此前当前二进制 Windows `stability-smoke` 60 秒、7 次采样 healthy=true、无消息/重连事件、无 findings。 Agent 安装并成功连接控制面即完成已验证账号的数据同步授权,无需单独用户确认;`EnableDataSync` 仅作为旧 `service.json` 兼容字段,连接授权不由它决定。连接授权范围为规范化只读数据,不包含原始数据库、密钥和写操作。 diff --git a/docs/validation/raw/README.md b/docs/validation/raw/README.md index b61946a..d8c010e 100644 --- a/docs/validation/raw/README.md +++ b/docs/validation/raw/README.md @@ -23,4 +23,4 @@ docs/validation/raw/verify-p4-live-operations.sh rg 'capacity_metrics=' docs/validation/raw/capacity-metrics.txt ``` -现场记录对应实现提交 `58a459b` 的 control-plane/Tray 构建;Windows Tray 的远程部署 SHA 在同一次 harness 运行中核验。Agent 安装并成功连接控制面即完成已验证账号的数据同步授权,无需单独确认;`EnableDataSync` 仅为旧 `service.json` 兼容字段。验收结束后 Tray 已停止,连接不再保持。 +现场记录对应实现提交 `0bede18` 的 control-plane/Tray 构建;Windows Tray 的远程部署 SHA 在同一次 harness 运行中核验。Agent 安装并成功连接控制面即完成已验证账号的数据同步授权,无需单独确认;`EnableDataSync` 仅为旧 `service.json` 兼容字段。验收结束后 Tray 已停止,连接不再保持。 diff --git a/docs/validation/raw/p4-live-commands.log b/docs/validation/raw/p4-live-commands.log index dacc667..06d4c33 100644 --- a/docs/validation/raw/p4-live-commands.log +++ b/docs/validation/raw/p4-live-commands.log @@ -8,7 +8,7 @@ $dir="C:/Users/Rogee/wx-agent01"; Get-Process -Name WxAgent.Tray -ErrorAction Si (Get-FileHash "C:/Users/Rogee/wx-agent01/WxAgent.Tray.exe" -Algorithm SHA256).Hash --- RAW OUTPUT --- #< CLIXML -1F82A427ADDA5B00A208018B0AF1A472C09AD28495CD84ECBB9AA98C5A92DBAF +285E042C236930142F6164676F3F14B788581215BF949F73AD269A83DD827533 System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 2׼״ʹģ顣0-1-1Completed-1 --- POWERSHELL COMMAND --- $dir = "C:/Users/Rogee/wx-agent01" @@ -24,26 +24,26 @@ $p = Get-Process -Name WxAgent.Tray | Select-Object -First 1 [ordered]@{pid=$p.Id;session=$p.SessionId}|ConvertTo-Json -Compress --- RAW OUTPUT --- #< CLIXML -{"pid":20312,"session":1} +{"pid":21560,"session":1} System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 2Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null1160743012-1100Completed0 1/13New-ScheduledTaskAction -Execute "$dir/WxAgent.Tray.exe" -WorkingDirectory $dir1388290517-1100Completed0 1/11׼״ʹģ顣0-1-1Completed-1 4New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1)1037316879-1100Completed0 1/15New-ScheduledTaskPrincipal -UserId "DESKTOP-EGI7QCK\Rogee" -LogonType Interactive -RunLevel Highest1632621290-1100Completed0 1/16Register-ScheduledTask -TaskName $task -Action $action -Trigger $trigger -Principal $principal -Force | Out-Null1327847536-1100Completed0 1/17Start-ScheduledTask -TaskName $task553280372-1100Completed0 1/11׼״ʹģ顣0-1-1Completed-1 --- POWERSHELL COMMAND --- $q="C:/Users/Rogee/wx-agent01/data/remote-data-queue.json"; $pending=0; $bytes=0; if(Test-Path $q){$bytes=(Get-Item $q).Length; try{$pending=@((Get-Content -Raw $q|ConvertFrom-Json).items).Count}catch{}}; $queueSha=if(Test-Path $q){(Get-FileHash $q -Algorithm SHA256).Hash}else{""}; $state="C:/Users/Rogee/wx-agent01/data/remote-data-sync-state.json"; $stateSha=if(Test-Path $state){(Get-FileHash $state -Algorithm SHA256).Hash}else{""}; [ordered]@{queue_bytes=$bytes;queue_pending=$pending;queue_sha256=$queueSha;state_sha256=$stateSha}|ConvertTo-Json -Compress --- RAW OUTPUT --- #< CLIXML -{"queue_bytes":13884423,"queue_pending":27,"queue_sha256":"10D0F3D2A81C94A435B6B648B881F4F2E34CE158F1FCC46CEF5CC28E2D78602C","state_sha256":""} -System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 1׼״ʹģ顣0-1-1Completed-1 LOCAL_START_SERVER pid=2988233 sha256=bcb6d8c7d29dd968cb2011fae5e2aec9de340329ee957a399ae6052adf342473 +{"queue_bytes":13369019,"queue_pending":26,"queue_sha256":"41892D5C3BD748E05BDAC8C81453774378067008FA216976463BB1C843F3F3EA","state_sha256":""} +System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 1׼״ʹģ顣0-1-1Completed-1 LOCAL_START_SERVER pid=3114889 sha256=f7bc17f39da3d643ef6cfefd3d96a6c1ac57b95ea5148dddefea3103f51a1c40 --- POWERSHELL COMMAND --- $q="C:/Users/Rogee/wx-agent01/data/remote-data-queue.json"; $pending=0; $bytes=0; if(Test-Path $q){$bytes=(Get-Item $q).Length; try{$pending=@((Get-Content -Raw $q|ConvertFrom-Json).items).Count}catch{}}; $queueSha=if(Test-Path $q){(Get-FileHash $q -Algorithm SHA256).Hash}else{""}; $state="C:/Users/Rogee/wx-agent01/data/remote-data-sync-state.json"; $stateSha=if(Test-Path $state){(Get-FileHash $state -Algorithm SHA256).Hash}else{""}; [ordered]@{queue_bytes=$bytes;queue_pending=$pending;queue_sha256=$queueSha;state_sha256=$stateSha}|ConvertTo-Json -Compress --- RAW OUTPUT --- #< CLIXML -{"queue_bytes":2599493,"queue_pending":4,"queue_sha256":"18E25F17E91DFF39C21369B3754E5CB60F0F4D2B6F55A84BB4979CF02B81ADDA","state_sha256":""} +{"queue_bytes":16441355,"queue_pending":31,"queue_sha256":"32A1D03FC5D9A0BC52597EB0B4B9B7690721C557EF1D10D9EFE66CCC59B2FE3F","state_sha256":""} System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 1׼״ʹģ顣0-1-1Completed-1 --- POWERSHELL COMMAND --- $q="C:/Users/Rogee/wx-agent01/data/remote-data-queue.json"; $pending=0; $bytes=0; if(Test-Path $q){$bytes=(Get-Item $q).Length; try{$pending=@((Get-Content -Raw $q|ConvertFrom-Json).items).Count}catch{}}; $queueSha=if(Test-Path $q){(Get-FileHash $q -Algorithm SHA256).Hash}else{""}; $state="C:/Users/Rogee/wx-agent01/data/remote-data-sync-state.json"; $stateSha=if(Test-Path $state){(Get-FileHash $state -Algorithm SHA256).Hash}else{""}; [ordered]@{queue_bytes=$bytes;queue_pending=$pending;queue_sha256=$queueSha;state_sha256=$stateSha}|ConvertTo-Json -Compress --- RAW OUTPUT --- #< CLIXML -{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"FC715E57A2423FF04B8B6A127C1421D2D6AE0EE3756CC2769DC44BF7BC9A19A5"} +{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"F61FDE11D6485F655E64EF8F4ADF9BF76866AF0AD4A2060D13D0D21F0321C3D4"} System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 1׼״ʹģ顣0-1-1Completed-1 --- POWERSHELL COMMAND --- Get-Process -Name WxAgent.Tray -ErrorAction SilentlyContinue | Stop-Process -Force; Start-Sleep -Seconds 15 @@ -64,13 +64,13 @@ $p = Get-Process -Name WxAgent.Tray | Select-Object -First 1 [ordered]@{pid=$p.Id;session=$p.SessionId}|ConvertTo-Json -Compress --- RAW OUTPUT --- #< CLIXML -{"pid":5768,"session":1} +{"pid":19560,"session":1} System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 2Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null1160743012-10Processing-1 0/2+2Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null1160743012-1100Completed0 2/23New-ScheduledTaskAction -Execute "$dir/WxAgent.Tray.exe" -WorkingDirectory $dir873048984-1100Completed0 1/11׼״ʹģ顣0-1-1Completed-1 4New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1)1448532725-1100Completed0 1/15New-ScheduledTaskPrincipal -UserId "DESKTOP-EGI7QCK\Rogee" -LogonType Interactive -RunLevel Highest1897014162-1100Completed0 1/16Register-ScheduledTask -TaskName $task -Action $action -Trigger $trigger -Principal $principal -Force | Out-Null1685929126-1100Completed0 1/17Start-ScheduledTask -TaskName $task1611635638-1100Completed0 1/11׼״ʹģ顣0-1-1Completed-1 --- POWERSHELL COMMAND --- Get-Process -Name WxAgent.Tray -ErrorAction SilentlyContinue | Stop-Process -Force; Start-Sleep -Seconds 15 --- RAW OUTPUT --- #< CLIXML -System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 1׼״ʹģ顣0-1-1Completed-1 LOCAL_STOP_SERVER pid=2988233 +System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 1׼״ʹģ顣0-1-1Completed-1 LOCAL_STOP_SERVER pid=3114889 --- POWERSHELL COMMAND --- Remove-Item "C:/Users/Rogee/wx-agent01/data/remote-data-sync-state.json","C:/Users/Rogee/wx-agent01/data/remote-data-queue.json" -Force -ErrorAction SilentlyContinue @@ -91,19 +91,19 @@ $p = Get-Process -Name WxAgent.Tray | Select-Object -First 1 [ordered]@{pid=$p.Id;session=$p.SessionId}|ConvertTo-Json -Compress --- RAW OUTPUT --- #< CLIXML -{"pid":1188,"session":1} +{"pid":3604,"session":1} System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 2Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null1160743012-10Processing-1 0/2+2Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null1160743012-1100Completed0 2/23New-ScheduledTaskAction -Execute "$dir/WxAgent.Tray.exe" -WorkingDirectory $dir873048984-1100Completed0 1/11׼״ʹģ顣0-1-1Completed-1 4New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1)1448532725-1100Completed0 1/15New-ScheduledTaskPrincipal -UserId "DESKTOP-EGI7QCK\Rogee" -LogonType Interactive -RunLevel Highest1897014162-1100Completed0 1/16Register-ScheduledTask -TaskName $task -Action $action -Trigger $trigger -Principal $principal -Force | Out-Null1685929126-1100Completed0 1/17Start-ScheduledTask -TaskName $task1611635638-1100Completed0 1/11׼״ʹģ顣0-1-1Completed-1 --- POWERSHELL COMMAND --- $q="C:/Users/Rogee/wx-agent01/data/remote-data-queue.json"; $pending=0; $bytes=0; if(Test-Path $q){$bytes=(Get-Item $q).Length; try{$pending=@((Get-Content -Raw $q|ConvertFrom-Json).items).Count}catch{}}; $queueSha=if(Test-Path $q){(Get-FileHash $q -Algorithm SHA256).Hash}else{""}; $state="C:/Users/Rogee/wx-agent01/data/remote-data-sync-state.json"; $stateSha=if(Test-Path $state){(Get-FileHash $state -Algorithm SHA256).Hash}else{""}; [ordered]@{queue_bytes=$bytes;queue_pending=$pending;queue_sha256=$queueSha;state_sha256=$stateSha}|ConvertTo-Json -Compress --- RAW OUTPUT --- #< CLIXML -{"queue_bytes":6137665,"queue_pending":12,"queue_sha256":"5834BE4C08D2DD90D580BF2347E7A50EC04DF629108AA86B8395F19B656700E0","state_sha256":""} +{"queue_bytes":5096948,"queue_pending":10,"queue_sha256":"16C406742DD100994A25BDF182EB5AF98760F286CE009A11105C8BA27ECE095E","state_sha256":""} System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 1׼״ʹģ顣0-1-1Completed-1 --- POWERSHELL COMMAND --- Get-Process -Name WxAgent.Tray -ErrorAction SilentlyContinue | Stop-Process -Force; Start-Sleep -Seconds 15 --- RAW OUTPUT --- #< CLIXML -System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 1׼״ʹģ顣0-1-1Completed-1 LOCAL_START_SERVER pid=2998413 sha256=bcb6d8c7d29dd968cb2011fae5e2aec9de340329ee957a399ae6052adf342473 +System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 1׼״ʹģ顣0-1-1Completed-1 LOCAL_START_SERVER pid=3125463 sha256=f7bc17f39da3d643ef6cfefd3d96a6c1ac57b95ea5148dddefea3103f51a1c40 --- POWERSHELL COMMAND --- $dir = "C:/Users/Rogee/wx-agent01" @@ -119,27 +119,27 @@ $p = Get-Process -Name WxAgent.Tray | Select-Object -First 1 [ordered]@{pid=$p.Id;session=$p.SessionId}|ConvertTo-Json -Compress --- RAW OUTPUT --- #< CLIXML -{"pid":3684,"session":1} +{"pid":19296,"session":1} System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 2Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null1160743012-10Processing-1 0/2+2Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null1160743012-1100Completed0 2/23New-ScheduledTaskAction -Execute "$dir/WxAgent.Tray.exe" -WorkingDirectory $dir873048984-1100Completed0 1/11׼״ʹģ顣0-1-1Completed-1 4New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1)1448532725-1100Completed0 1/15New-ScheduledTaskPrincipal -UserId "DESKTOP-EGI7QCK\Rogee" -LogonType Interactive -RunLevel Highest1897014162-1100Completed0 1/16Register-ScheduledTask -TaskName $task -Action $action -Trigger $trigger -Principal $principal -Force | Out-Null1685929126-1100Completed0 1/17Start-ScheduledTask -TaskName $task1611635638-1100Completed0 1/11׼״ʹģ顣0-1-1Completed-1 --- POWERSHELL COMMAND --- $q="C:/Users/Rogee/wx-agent01/data/remote-data-queue.json"; $pending=0; $bytes=0; if(Test-Path $q){$bytes=(Get-Item $q).Length; try{$pending=@((Get-Content -Raw $q|ConvertFrom-Json).items).Count}catch{}}; $queueSha=if(Test-Path $q){(Get-FileHash $q -Algorithm SHA256).Hash}else{""}; $state="C:/Users/Rogee/wx-agent01/data/remote-data-sync-state.json"; $stateSha=if(Test-Path $state){(Get-FileHash $state -Algorithm SHA256).Hash}else{""}; [ordered]@{queue_bytes=$bytes;queue_pending=$pending;queue_sha256=$queueSha;state_sha256=$stateSha}|ConvertTo-Json -Compress --- RAW OUTPUT --- #< CLIXML -{"queue_bytes":5679963,"queue_pending":11,"queue_sha256":"5DDA8091F4CE677E6E8811CC0D08311533EE3FE79C192BC20D94B25EACDA74F3","state_sha256":"FC715E57A2423FF04B8B6A127C1421D2D6AE0EE3756CC2769DC44BF7BC9A19A5"} +{"queue_bytes":5679978,"queue_pending":11,"queue_sha256":"0E54C9A20386C066F9D87A4B0D8CCE512FE79F84BF25D13E79DD048745AF50BE","state_sha256":"F61FDE11D6485F655E64EF8F4ADF9BF76866AF0AD4A2060D13D0D21F0321C3D4"} System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 1׼״ʹģ顣0-1-1Completed-1 --- POWERSHELL COMMAND --- $q="C:/Users/Rogee/wx-agent01/data/remote-data-queue.json"; $pending=0; $bytes=0; if(Test-Path $q){$bytes=(Get-Item $q).Length; try{$pending=@((Get-Content -Raw $q|ConvertFrom-Json).items).Count}catch{}}; $queueSha=if(Test-Path $q){(Get-FileHash $q -Algorithm SHA256).Hash}else{""}; $state="C:/Users/Rogee/wx-agent01/data/remote-data-sync-state.json"; $stateSha=if(Test-Path $state){(Get-FileHash $state -Algorithm SHA256).Hash}else{""}; [ordered]@{queue_bytes=$bytes;queue_pending=$pending;queue_sha256=$queueSha;state_sha256=$stateSha}|ConvertTo-Json -Compress --- RAW OUTPUT --- #< CLIXML -{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"A82FFDDF3685A6160923D2D590C01759E7680183A900CCC1841FCD708729E3C1"} +{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"0E5ADF4A1C3EA260959FB3AD01E291BD1ECA9606C2BC28AE77ED8E42ABA40FF6"} System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 1׼״ʹģ顣0-1-1Completed-1 --- POWERSHELL COMMAND --- $q="C:/Users/Rogee/wx-agent01/data/remote-data-queue.json"; $pending=0; $bytes=0; if(Test-Path $q){$bytes=(Get-Item $q).Length; try{$pending=@((Get-Content -Raw $q|ConvertFrom-Json).items).Count}catch{}}; $queueSha=if(Test-Path $q){(Get-FileHash $q -Algorithm SHA256).Hash}else{""}; $state="C:/Users/Rogee/wx-agent01/data/remote-data-sync-state.json"; $stateSha=if(Test-Path $state){(Get-FileHash $state -Algorithm SHA256).Hash}else{""}; [ordered]@{queue_bytes=$bytes;queue_pending=$pending;queue_sha256=$queueSha;state_sha256=$stateSha}|ConvertTo-Json -Compress --- RAW OUTPUT --- #< CLIXML -{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"A82FFDDF3685A6160923D2D590C01759E7680183A900CCC1841FCD708729E3C1"} -System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 1׼״ʹģ顣0-1-1Completed-1 LOCAL_STOP_SERVER pid=2998413 -LOCAL_START_SERVER pid=3008874 sha256=bcb6d8c7d29dd968cb2011fae5e2aec9de340329ee957a399ae6052adf342473 +{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"0E5ADF4A1C3EA260959FB3AD01E291BD1ECA9606C2BC28AE77ED8E42ABA40FF6"} +System.Management.Automation.PSCustomObjectSystem.Object1׼״ʹģ顣0-1-1Completed-1 1׼״ʹģ顣0-1-1Completed-1 LOCAL_STOP_SERVER pid=3125463 +LOCAL_START_SERVER pid=3135242 sha256=f7bc17f39da3d643ef6cfefd3d96a6c1ac57b95ea5148dddefea3103f51a1c40 --- POWERSHELL COMMAND --- $dir = "C:/Users/Rogee/wx-agent01" diff --git a/docs/validation/raw/p4-live-operations.jsonl b/docs/validation/raw/p4-live-operations.jsonl index 7023d25..6b19ab8 100644 --- a/docs/validation/raw/p4-live-operations.jsonl +++ b/docs/validation/raw/p4-live-operations.jsonl @@ -1,7 +1,7 @@ -{"event":"deployment","source_commit":"58a459bb15a736f245f6f2ccf1e9fcc8a6375568","tray_sha256":"1F82A427ADDA5B00A208018B0AF1A472C09AD28495CD84ECBB9AA98C5A92DBAF"} -{"event":"offline-queue","process":{"pid":20312,"session":1},"queue":{"queue_bytes":13884423,"queue_pending":27,"queue_sha256":"10D0F3D2A81C94A435B6B648B881F4F2E34CE158F1FCC46CEF5CC28E2D78602C","state_sha256":""}} -{"event":"replay","queue":{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"FC715E57A2423FF04B8B6A127C1421D2D6AE0EE3756CC2769DC44BF7BC9A19A5"},"sync":{"state":"complete","confirmed_sequence":25,"last_success_at":"2026-09-22T09:39:47.169668469Z"},"shard":{"messages": 1725, "conversations": 451, "batches": 25, "coverage": "complete", "integrity": "ok", "sources": ["session/session.db/SessionTable"], "title_equals_chat_id": 0}} -{"event":"agent-restart","process":{"pid":5768,"session":1},"before":{"state":"complete","confirmed_sequence":25,"last_success_at":"2026-09-22T09:39:47.169668469Z"},"after":{"state":"complete","confirmed_sequence":25,"last_success_at":"2026-09-22T09:39:47.169668469Z"}} -{"event":"authorization-revoke","pending_process":{"pid":1188,"session":1},"pending_queue":{"queue_bytes":6137665,"queue_pending":12,"queue_sha256":"5834BE4C08D2DD90D580BF2347E7A50EC04DF629108AA86B8395F19B656700E0","state_sha256":""},"revoke":200,"conversations":403,"messages":403,"sync_status":200,"batch_rejected":403,"revoked_process":{"pid":3684,"session":1},"revoked_queue":{"queue_bytes":5679963,"queue_pending":11,"queue_sha256":"5DDA8091F4CE677E6E8811CC0D08311533EE3FE79C192BC20D94B25EACDA74F3","state_sha256":"FC715E57A2423FF04B8B6A127C1421D2D6AE0EE3756CC2769DC44BF7BC9A19A5"},"revoked_queue_after":{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"A82FFDDF3685A6160923D2D590C01759E7680183A900CCC1841FCD708729E3C1"},"reconnect_conversations":200,"reconnect_messages":200,"reconnect_sync_status":200,"reconnect_queue":{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"A82FFDDF3685A6160923D2D590C01759E7680183A900CCC1841FCD708729E3C1"}} -{"event":"authorization-restore","process":{"pid":3684,"session":1},"conversations":200,"messages":200,"queue":{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"A82FFDDF3685A6160923D2D590C01759E7680183A900CCC1841FCD708729E3C1"}} -{"event":"control-plane-restart","old_pid":2998413,"new_pid":3008874,"before":{"messages": 9629, "conversations": 451, "batches": 89, "coverage": "complete", "integrity": "ok", "sources": ["session/session.db/SessionTable"], "title_equals_chat_id": 0},"after":{"messages": 9629, "conversations": 451, "batches": 89, "coverage": "complete", "integrity": "ok", "sources": ["session/session.db/SessionTable"], "title_equals_chat_id": 0}} +{"event":"deployment","source_commit":"0bede18fce3b44dc89c13fe886d9a02a5f02d0d6","tray_sha256":"285E042C236930142F6164676F3F14B788581215BF949F73AD269A83DD827533"} +{"event":"offline-queue","process":{"pid":21560,"session":1},"queue":{"queue_bytes":13369019,"queue_pending":26,"queue_sha256":"41892D5C3BD748E05BDAC8C81453774378067008FA216976463BB1C843F3F3EA","state_sha256":""}} +{"event":"replay","queue":{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"F61FDE11D6485F655E64EF8F4ADF9BF76866AF0AD4A2060D13D0D21F0321C3D4"},"sync":{"state":"complete","confirmed_sequence":2,"last_success_at":"2026-09-22T10:07:48.136501631Z"},"shard":{"messages": 278, "conversations": 451, "batches": 2, "coverage": "complete", "integrity": "ok", "sources": ["session/session.db/SessionTable"], "title_equals_chat_id": 0}} +{"event":"agent-restart","process":{"pid":19560,"session":1},"before":{"state":"complete","confirmed_sequence":2,"last_success_at":"2026-09-22T10:07:48.136501631Z"},"after":{"state":"complete","confirmed_sequence":2,"last_success_at":"2026-09-22T10:07:48.136501631Z"}} +{"event":"authorization-revoke","pending_process":{"pid":3604,"session":1},"pending_queue":{"queue_bytes":5096948,"queue_pending":10,"queue_sha256":"16C406742DD100994A25BDF182EB5AF98760F286CE009A11105C8BA27ECE095E","state_sha256":""},"revoke":200,"conversations":403,"messages":403,"sync_status":200,"batch_rejected":403,"revoked_process":{"pid":19296,"session":1},"revoked_queue":{"queue_bytes":5679978,"queue_pending":11,"queue_sha256":"0E54C9A20386C066F9D87A4B0D8CCE512FE79F84BF25D13E79DD048745AF50BE","state_sha256":"F61FDE11D6485F655E64EF8F4ADF9BF76866AF0AD4A2060D13D0D21F0321C3D4"},"revoked_queue_after":{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"0E5ADF4A1C3EA260959FB3AD01E291BD1ECA9606C2BC28AE77ED8E42ABA40FF6"},"reconnect_conversations":200,"reconnect_messages":200,"reconnect_sync_status":200,"reconnect_queue":{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"0E5ADF4A1C3EA260959FB3AD01E291BD1ECA9606C2BC28AE77ED8E42ABA40FF6"}} +{"event":"authorization-restore","process":{"pid":19296,"session":1},"conversations":200,"messages":200,"queue":{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"0E5ADF4A1C3EA260959FB3AD01E291BD1ECA9606C2BC28AE77ED8E42ABA40FF6"}} +{"event":"control-plane-restart","old_pid":3125463,"new_pid":3135242,"before":{"messages": 8201, "conversations": 451, "batches": 66, "coverage": "complete", "integrity": "ok", "sources": ["session/session.db/SessionTable"], "title_equals_chat_id": 0},"after":{"messages": 8201, "conversations": 451, "batches": 66, "coverage": "complete", "integrity": "ok", "sources": ["session/session.db/SessionTable"], "title_equals_chat_id": 0}}