docs: publish independent P4 raw evidence

This commit is contained in:
2026-09-22 12:17:45 +08:00
parent 8c2d016bbe
commit 51c9524437
7 changed files with 275 additions and 40 deletions
@@ -1,13 +1,13 @@
{
"implementation_commit": "03f6764",
"implementation_commit": "8c2d016",
"build_commands": [
"cd control-plane && go build -o <control-plane> ./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": "db8eb86706712f6a6b9de6bcc948ca6999e8cb06dee3664ca1ec76f1a65fc159",
"tray_sha256": "72b4aae3347cc054f9787fb84924101346eceed4acc632cab555a754d7260b71",
"windows_deployed_tray_sha256": "72b4aae3347cc054f9787fb84924101346eceed4acc632cab555a754d7260b71"
"control_plane_sha256": "41cb6ef269f64e815337679978e469212519b7ab7fc0eee0ee4cb6303f614710",
"tray_sha256": "f6143d28abc85f4b861402fd33da4df460e232a5e884ec5aed1f318bd05c067c",
"windows_deployed_tray_sha256": "f6143d28abc85f4b861402fd33da4df460e232a5e884ec5aed1f318bd05c067c"
},
"validation_environment": {
"windows_host": "DESKTOP-EGI7QCK",
@@ -32,6 +32,24 @@
"reads": 16000,
"result": "passed"
},
"capacity_metrics": {
"source": "docs/validation/raw/capacity-metrics.txt",
"accounts": 8,
"messages": 800,
"reads": 16000,
"disk_bytes": 917504,
"wal_bytes": 0,
"page_count": 160,
"page_size": 4096,
"busy_timeout_ms": 5000,
"max_open_connections": 1,
"lock_wait_count": 0,
"lock_wait_ms": 0,
"pending_queue_items": 0,
"slow_query_p95_ms": 3.436,
"slow_query_p99_ms": 7.225,
"thresholds": "passed"
},
"platform_pagination": {
"scheme": "keyset cursor",
"message_key": "(chat_id, source_time, message_id)",
@@ -43,12 +61,17 @@
"raw_evidence": {
"cursor_http_transcript": "docs/validation/raw/cursor-http-transcript.txt",
"live_operations_jsonl": "docs/validation/raw/p4-live-operations.jsonl",
"live_command_trace": "docs/validation/raw/p4-live-commands.log",
"replayable_harness": "docs/validation/raw/collect-live-operations.sh",
"capacity_metrics": "docs/validation/raw/capacity-metrics.txt",
"cursor_transcript_sha256": "af9771c27fd2776f9973b4ffaffd9e9b55a8dad05f063148b6f3a6bbd714dd33",
"live_operations_sha256": "4df0459ab7e491e2d044c92ff1fa0289986e8ff9208ebd74df5736fbba9d2c95"
"live_operations_sha256": "0231705fb32215435b7d3b1b622c9b747caf2172b0d2e6bf113e9e41b7be5cd1",
"live_command_trace_sha256": "d96d90d77a477efd46075bb9b4b9d84400e80956bd173388368a02853b28baeb",
"capacity_metrics_sha256": "1fbd8b2d2266db102123f40bca68382ed01073294200f21df62bc0c11cf41767"
},
"notes": [
"The implementation commit is the code revision used to build the control-plane hash above; later evidence-only documentation commits do not change implementation files.",
"This host had one page-1-HMAC-verified account and 20 verified database shards, so the real-device matrix covers every verified account present on the host; multi-account isolation is additionally covered by the synthetic eight-account test.",
"The committed harness built and deployed the Tray, verified the Windows SHA-256 remotely, and emitted JSONL from the same run; p4-live-commands.log preserves raw PowerShell output, queue/state hashes, process Session/PID records, and local binary hashes.",
"The host had one page-1-HMAC-verified account and 20 verified database shards, so the real-device matrix covers every verified account present on the host; multi-account isolation and capacity metrics are covered by the synthetic eight-account test.",
"EnableDataSync=false is an intentional safety invariant required by the project boundary. P4 acceptance verifies the explicitly authorized opt-in path and the default-off regression test; it does not claim an unsafe global auto-enable.",
"Long-duration endurance, power-loss, production-scale capacity, and multi-control-plane HA remain explicitly outside this single-node P0-P4 acceptance scope."
]
@@ -1,15 +1,18 @@
{
"captured_at": "2026-09-22T03:05:00Z",
"implementation_commit": "03f6764",
"captured_at": "2026-09-22T04:03:37Z",
"implementation_commit": "8c2d016",
"build_manifest": "docs/validation/WxAgent-会话消息同步-P4-build-manifest.json",
"replayable_harness": "docs/validation/raw/collect-live-operations.sh",
"raw_evidence": [
"docs/validation/raw/p4-live-operations.jsonl",
"docs/validation/raw/p4-live-commands.log",
"docs/validation/raw/cursor-http-transcript.txt",
"docs/validation/raw/p4-live-operations.jsonl"
"docs/validation/raw/capacity-metrics.txt"
],
"artifacts": {
"control_plane_sha256": "db8eb86706712f6a6b9de6bcc948ca6999e8cb06dee3664ca1ec76f1a65fc159",
"tray_sha256": "72b4aae3347cc054f9787fb84924101346eceed4acc632cab555a754d7260b71",
"windows_deployed_tray_sha256": "72b4aae3347cc054f9787fb84924101346eceed4acc632cab555a754d7260b71"
"control_plane_sha256": "41cb6ef269f64e815337679978e469212519b7ab7fc0eee0ee4cb6303f614710",
"tray_sha256": "f6143d28abc85f4b861402fd33da4df460e232a5e884ec5aed1f318bd05c067c",
"windows_deployed_tray_sha256": "f6143d28abc85f4b861402fd33da4df460e232a5e884ec5aed1f318bd05c067c"
},
"account_scope": {
"account_id_prefix": "a2e8a1ea",
@@ -44,13 +47,33 @@
"conversations_sql": "keyset ORDER BY COALESCE(last_activity_at, observed_at) DESC, chat_id ASC",
"offset_sql_present": false,
"mutation_boundary": "newer message inserted between page requests was not returned on the next cursor page",
"raw_transcript": "cursor-http-transcript.txt"
"raw_transcript": "docs/validation/raw/cursor-http-transcript.txt"
},
"capacity": {
"accounts": 8,
"messages": 800,
"reads": 16000,
"disk_bytes": 917504,
"wal_bytes": 0,
"page_count": 160,
"page_size": 4096,
"busy_timeout_ms": 5000,
"max_open_connections": 1,
"lock_wait_count": 0,
"lock_wait_ms": 0,
"pending_queue_items": 0,
"slow_query_p95_ms": 3.436,
"slow_query_p99_ms": 7.225,
"thresholds": "passed",
"raw_metrics": "docs/validation/raw/capacity-metrics.txt"
},
"offline_replay_current_binary": {
"control_plane_unreachable": true,
"agent_session": 1,
"queue_pending_while_unreachable": 1,
"queue_bytes_while_unreachable": 188751,
"queue_file_hash_captured": true,
"state_file_hash_captured": true,
"queue_pending_after_reconnect": 0,
"node_status_after_reconnect": "Online",
"messages_after_replay": 460,
@@ -71,7 +94,7 @@
"duplicate_batch_observed": false
},
"control_plane_crash_recovery_current_binary": {
"termination": "SIGKILL",
"termination": "process stop/restart in committed harness",
"integrity_before_restart": "ok",
"integrity_after_restart": "ok",
"node_status_after_restart": "Online",
@@ -86,17 +109,16 @@
"conversations_http_status_while_revoked": 403,
"messages_http_status_while_revoked": 403,
"sync_status_http_status_while_revoked": 200,
"valid_batch_rejection_while_revoked": 403,
"node_re_registration_restored_authorization": true,
"conversations_http_status_after_restore": 200,
"messages_http_status_after_restore": 200
"messages_http_status_after_restore": 200,
"queue_pending_after_restore": 0
},
"windows_current_binary": {
"session": 1,
"interactive": true,
"doctor_exit": 0,
"inspect_ui_exit": 0,
"smoke_exit": 0,
"ui_tree_nodes": 163,
"remote_deployed_hash_verified": true,
"wechat_version": "4.1.13.65",
"windows_build": "10.0.19044.0",
"scope": "File Transfer Assistant and approved test chats only"
@@ -107,6 +129,7 @@
"meaning": "intentional safety boundary; only explicitly authorized accounts are enabled for shadow sync"
},
"notes": [
"The committed live harness performed the deployment hash check, interactive Session 1 process start, outage/replay, restart, Web revoke, valid-batch rejection, restore, and control-plane restart in one run; raw PowerShell and local process output is in p4-live-commands.log.",
"The real-device host had exactly one page-1-HMAC-verified account and 20 verified database shards; the real-device matrix therefore covered every verified account present on that host.",
"No raw WeChat database, database key, message body, contact name, or secret was committed.",
"EnableDataSync=false is required by the project boundary and is not a failed global rollout claim; the acceptance target is the explicit authorized opt-in path.",
@@ -1,10 +1,10 @@
# 会话消息同步与分账号存储:P4 验收记录
> 验收日期:2026-09-22(+08:00)
> 实现源码提交:`03f6764`;构建/部署映射见 [`P4 build manifest`](WxAgent-会话消息同步-P4-build-manifest.json)
> 实现源码提交:`8c2d016`;构建/部署映射见 [`P4 build manifest`](WxAgent-会话消息同步-P4-build-manifest.json)
> 原始记录:[`raw/`](raw/)
> 控制面 SHA-256:`db8eb86706712f6a6b9de6bcc948ca6999e8cb06dee3664ca1ec76f1a65fc159`
> Tray SHA-256(Linux 构建与 Windows 部署一致):`72b4aae3347cc054f9787fb84924101346eceed4acc632cab555a754d7260b71`
> 控制面 SHA-256:`41cb6ef269f64e815337679978e469212519b7ab7fc0eee0ee4cb6303f614710`
> Tray SHA-256(Linux 构建与 Windows 部署一致):`f6143d28abc85f4b861402fd33da4df460e232a5e884ec5aed1f318bd05c067c`
## 1. 自动化回归
@@ -30,11 +30,12 @@
## 2. 合成压力
`TestAccountStoreSyntheticConcurrentReadWrite`:
`TestAccountStoreSyntheticConcurrentReadWrite` 的原始指标见 [`raw/capacity-metrics.txt`](raw/capacity-metrics.txt),并由测试阈值断言:
- 8 个账号、800 条合成消息、16,000 次并发读取。
- 总耗时约 47.8 ms,最慢账号约 44.6 ms。
- 账号 scope 隔离和分片查询均通过。
- 8 个账号、800 条合成消息、16,000 次并发读取;磁盘 917,504 bytes,WAL 0 bytes。
- SQLite page_count=160、page_size=4096、busy_timeout=5000ms、max open connections=1。
- lock wait count/time=0,pending queue items=0;慢查询 P95=3.436ms、P99=7.225ms。
- 阈值通过:P95<25ms、P99<100ms、分片<2MiB、无 WAL/锁等待;账号 scope 隔离和分片查询均通过。
SQLite 运行约束:WAL、`synchronous=FULL`、foreign keys、5 秒 busy timeout、每分片单写连接;消息查询使用 chat/time、observed-time 索引,会话查询使用 activity 索引。
@@ -59,11 +60,12 @@ 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`。
- **断线补传**:使用实现提交 `03f6764` 的 control-plane 与已审计 Tray;控制面不可达时 durable queue 原始记录为 1 个 pending batch(188751 bytes),控制面恢复后队列降为 0,节点回到 `Online`,副本达到 460 条消息/4 批次,coverage=`complete`。
- **Agent 进程重启**:原始 JSONL 记录包含 PID、Session 1 和前后 sync-status;停止 Tray 15 秒后重启,前后均为 sequence=4、460 条消息、4 批次,无重复批次。
- **授权撤销**:原始 JSONL 记录 Web Bearer 操作:revoke=200,撤销期间 conversations/messages=403、sync-status=200;Tray 重新注册后查询恢复 200。
- **控制面崩溃恢复**:原始 JSONL 记录当前 live 控制面 SIGKILL,前后 SQLite `integrity_check=ok`,消息/批次保持 460/4,节点重新 `Online`。
- **短时稳定性**:当前二进制 Windows `stability-smoke` 60 秒、7 次采样通过,healthy=true、messageEvents=0、reconnectEvents=0、无 findings。
- **可重放真机记录**:[`collect-live-operations.sh`](raw/collect-live-operations.sh) 从提交 `8c2d016` 构建/部署 Tray,并在同一次运行中记录远程 SHA、Session/PID、queue/state SHA、控制面 PID 和原始 PowerShell 输出;`verify-p4-live-operations.sh` 验证跨事件不变量。
- **断线补传**:原始 JSONL 记录控制面不可达时 durable queue=1 pending batch(188751 bytes,含 queue/state SHA),恢复后 queue=0,节点 `Online`,副本 460 消息/4 批次、coverage=`complete`。
- **Agent 进程重启**:原始记录包含 PID、Session 1 和前后 sync-status;停止 Tray 15 秒后重启,前后均 sequence=4、460 消息、4 批次,无重复批次。
- **授权撤销**:原始 Web Bearer 操作 revoke=200,conversations/messages=403、sync-status=200;有效数据 batch 被拒绝为 403;重新注册后 conversations/messages=200 且 queue=0。
- **控制面崩溃恢复**:原始记录当前 live 控制面 stop/restart 前后 SQLite `integrity_check=ok`,消息/批次保持 460/4。
- **短时稳定性**:此前当前二进制 Windows `stability-smoke` 60 秒、7 次采样 healthy=true、无消息/重连事件、无 findings。
`EnableDataSync=false` 是项目要求的安全不变量,并非遗漏的“默认上线”:本轮验证的是明确授权、白名单账号的 opt-in 生产路径;`DatabaseSyncIsExplicitOptInByDefault` 回归测试固定默认关闭,验收结束已恢复关闭。Reporting 白名单仍只包含文件传输助手、Hao 豪、吉祥三宝和消息测试专用群组范围。
+6 -1
View File
@@ -3,7 +3,9 @@
这些文件不是摘要:它们是由可重放脚本或现场命令直接生成的脱敏记录。
- `cursor-http-transcript.sh/.txt`:启动当前 control-plane fixture,注册合成账号,提交两批消息,在第一页读取后插入更晚消息,再用第一页返回的 `next_cursor` 读取下一页。第二页只包含游标边界之后的旧消息,证明 `(source_time, message_id)` keyset 分页不会被插入的新消息推移。
- `p4-live-operations.jsonl`:Windows 交互 Session 1 的原始计数记录,包含 durable queue 断线/恢复、Tray 进程重启、Web Bearer revoke/403/重新注册恢复,以及 control-plane SIGKILL 前后 SQLite integrity/counts。只保留 PID、Session、HTTP 状态和计数,不包含正文、联系人名称、密钥或 token。
- `p4-live-operations.jsonl`:由可重放 harness 直接 stdout 生成的 Windows 交互 Session 1 原始 JSONL,包含部署 SHA、durable queue 断线/恢复、Tray 进程重启、Web Bearer revoke/403/有效 batch 拒绝/重新注册恢复,以及 control-plane stop/restart 前后 SQLite integrity/counts。只保留 PID、Session、HTTP 状态、文件 SHA 和计数。
- `p4-live-commands.log`:同一次 harness 的原始 PowerShell/本地命令与输出,包含远程 `Get-FileHash`、`Get-Process`、queue/state 文件 hash 和 local control-plane PID;含有的 CLIXML 是 SSH 原始输出,不作摘要替代。
- `capacity-metrics.txt`:Go capacity test 的 `t.Log` 原始输出,包含磁盘/WAL/page、busy timeout、连接、锁等待、积压和 P95/P99。
## 复核方式
@@ -16,6 +18,9 @@ CONTROL_PLANE_BIN=/tmp/wxagent-control-plane-cursor \
# 核对现场记录的 JSONL 格式和跨事件不变量
jq -c . docs/validation/raw/p4-live-operations.jsonl
docs/validation/raw/verify-p4-live-operations.sh
# 复核容量原始指标
rg 'capacity_metrics=' docs/validation/raw/capacity-metrics.txt
```
现场记录对应实现提交 `03f6764` 的 control-plane 构建;Windows Tray 仍使用已审计的 `e534e46` 自包含构建。`EnableDataSync=false` 是项目安全边界要求的默认值;现场只对明确授权、白名单账号临时开启,验收后已恢复关闭。
+174
View File
@@ -0,0 +1,174 @@
--- POWERSHELL COMMAND ---
$dir="C:/Users/Rogee/wx-agent01"; Get-Process -Name WxAgent.Tray -ErrorAction SilentlyContinue | Stop-Process -Force; Get-ScheduledTask -TaskName "WxAgent-P4-Audit-*" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$false; Remove-Item "$dir/data/remote-data-sync-state.json","$dir/data/remote-data-queue.json" -Force -ErrorAction SilentlyContinue; $cfg=Get-Content -Raw "$dir/service.json"|ConvertFrom-Json; $cfg|Add-Member -MemberType NoteProperty -Name enableDataSync -Value $true -Force; $cfg|ConvertTo-Json -Depth 30|Set-Content -Encoding UTF8 "$dir/service.json"
--- RAW OUTPUT ---
#< CLIXML
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="2"><TNRef RefId="0" /><MS><I64 N="SourceId">2</I64><PR N="Record"><AV>Get-ScheduledTask -TaskName "WxAgent-P4-Audit-*" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$false; Remove-Item "$dir/data/remote-data-sync-state.json","$dir/data/remote-data-queue.json" -Force -ErrorAction SilentlyContinue; $cfg=Get-Content -Raw "$dir/service.json"|ConvertFrom-Json; $cfg|Add-Member -MemberType NoteProperty -Name enableDataSync -Value $true -Force; $cfg|ConvertTo-Json -Depth 30|Set-Content -Encoding UTF8 "$dir/service.json"</AV><AI>690403420</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="3"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- POWERSHELL COMMAND ---
(Get-FileHash "C:/Users/Rogee/wx-agent01/WxAgent.Tray.exe" -Algorithm SHA256).Hash
--- RAW OUTPUT ---
#< CLIXML
F6143D28ABC85F4B861402FD33DA4DF460E232A5E884EC5AED1F318BD05C067C
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">2</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- POWERSHELL COMMAND ---
$dir = "C:/Users/Rogee/wx-agent01"
$task = "WxAgent-P4-Audit-Tray"
Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null
$action = New-ScheduledTaskAction -Execute "$dir/WxAgent.Tray.exe" -WorkingDirectory $dir
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1)
$principal = New-ScheduledTaskPrincipal -UserId "DESKTOP-EGI7QCK\Rogee" -LogonType Interactive -RunLevel Highest
Register-ScheduledTask -TaskName $task -Action $action -Trigger $trigger -Principal $principal -Force | Out-Null
Start-ScheduledTask -TaskName $task
Start-Sleep -Seconds 35
$p = Get-Process -Name WxAgent.Tray | Select-Object -First 1
[ordered]@{pid=$p.Id;session=$p.SessionId}|ConvertTo-Json -Compress
--- RAW OUTPUT ---
#< CLIXML
{"pid":22380,"session":1}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">2</I64><PR N="Record"><AV>Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null</AV><AI>1160743012</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="2"><TNRef RefId="0" /><MS><I64 N="SourceId">3</I64><PR N="Record"><AV>New-ScheduledTaskAction -Execute "$dir/WxAgent.Tray.exe" -WorkingDirectory $dir</AV><AI>1388290517</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="3"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="4"><TNRef RefId="0" /><MS><I64 N="SourceId">4</I64><PR N="Record"><AV>New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1)</AV><AI>1037316879</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="5"><TNRef RefId="0" /><MS><I64 N="SourceId">5</I64><PR N="Record"><AV>New-ScheduledTaskPrincipal -UserId "DESKTOP-EGI7QCK\Rogee" -LogonType Interactive -RunLevel Highest</AV><AI>1632621290</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="6"><TNRef RefId="0" /><MS><I64 N="SourceId">6</I64><PR N="Record"><AV>Register-ScheduledTask -TaskName $task -Action $action -Trigger $trigger -Principal $principal -Force | Out-Null</AV><AI>1327847536</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="7"><TNRef RefId="0" /><MS><I64 N="SourceId">7</I64><PR N="Record"><AV>Start-ScheduledTask -TaskName $task</AV><AI>553280372</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="8"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":188751,"queue_pending":1,"queue_sha256":"9D9A348A7B0E01B496960D8953A8751ACB94E295366ECAE5EEC25FF268CE4178","state_sha256":"4954FF69D66D20C611F8459A70A72E10B6BAA112CE7A9D799AF615BC49D219FE"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>LOCAL_START_SERVER pid=1472887 sha256=41cb6ef269f64e815337679978e469212519b7ab7fc0eee0ee4cb6303f614710
--- 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":159162,"queue_pending":1,"queue_sha256":"3C7AC8FB6A2CF7540CFD75B90941E61A40A0B7D21F86E6AA0C6DE5F5ACFEB520","state_sha256":"FFB9D9F4285CED202BA716D515F263295655A9C6DADDEFD570E5F73C9B2C1043"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":159162,"queue_pending":1,"queue_sha256":"3C7AC8FB6A2CF7540CFD75B90941E61A40A0B7D21F86E6AA0C6DE5F5ACFEB520","state_sha256":"FFB9D9F4285CED202BA716D515F263295655A9C6DADDEFD570E5F73C9B2C1043"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":159162,"queue_pending":1,"queue_sha256":"3C7AC8FB6A2CF7540CFD75B90941E61A40A0B7D21F86E6AA0C6DE5F5ACFEB520","state_sha256":"FFB9D9F4285CED202BA716D515F263295655A9C6DADDEFD570E5F73C9B2C1043"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":159162,"queue_pending":1,"queue_sha256":"3C7AC8FB6A2CF7540CFD75B90941E61A40A0B7D21F86E6AA0C6DE5F5ACFEB520","state_sha256":"FFB9D9F4285CED202BA716D515F263295655A9C6DADDEFD570E5F73C9B2C1043"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":97644,"queue_pending":1,"queue_sha256":"BCBD39692C0A939C6046A940E8895DC97BDAFC92CF7C41C34B8D62BA3A3F9CE0","state_sha256":"CA12B288E50346AAC66743B68881BA1CAA9F526C9A58F99836F55B1BD98C5147"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":97644,"queue_pending":1,"queue_sha256":"BCBD39692C0A939C6046A940E8895DC97BDAFC92CF7C41C34B8D62BA3A3F9CE0","state_sha256":"CA12B288E50346AAC66743B68881BA1CAA9F526C9A58F99836F55B1BD98C5147"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":97644,"queue_pending":1,"queue_sha256":"BCBD39692C0A939C6046A940E8895DC97BDAFC92CF7C41C34B8D62BA3A3F9CE0","state_sha256":"CA12B288E50346AAC66743B68881BA1CAA9F526C9A58F99836F55B1BD98C5147"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":97644,"queue_pending":1,"queue_sha256":"BCBD39692C0A939C6046A940E8895DC97BDAFC92CF7C41C34B8D62BA3A3F9CE0","state_sha256":"CA12B288E50346AAC66743B68881BA1CAA9F526C9A58F99836F55B1BD98C5147"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":31745,"queue_pending":1,"queue_sha256":"823C69D588F7685E597254D6816775BE2C84EAC8D03856B0C8CCDB0E7E8C09DA","state_sha256":"E1AF66AFB00C9F77F295CB941E42AEFB57D130E8696F9950643B999742D0630A"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":31745,"queue_pending":1,"queue_sha256":"823C69D588F7685E597254D6816775BE2C84EAC8D03856B0C8CCDB0E7E8C09DA","state_sha256":"E1AF66AFB00C9F77F295CB941E42AEFB57D130E8696F9950643B999742D0630A"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":31745,"queue_pending":1,"queue_sha256":"823C69D588F7685E597254D6816775BE2C84EAC8D03856B0C8CCDB0E7E8C09DA","state_sha256":"E1AF66AFB00C9F77F295CB941E42AEFB57D130E8696F9950643B999742D0630A"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":31745,"queue_pending":1,"queue_sha256":"823C69D588F7685E597254D6816775BE2C84EAC8D03856B0C8CCDB0E7E8C09DA","state_sha256":"E1AF66AFB00C9F77F295CB941E42AEFB57D130E8696F9950643B999742D0630A"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":"C480279C3ACE174DA283C43441599B6099D23865539A7035150A910956953D44"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- POWERSHELL COMMAND ---
Get-Process -Name WxAgent.Tray -ErrorAction SilentlyContinue | Stop-Process -Force; Start-Sleep -Seconds 15
--- RAW OUTPUT ---
#< CLIXML
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- POWERSHELL COMMAND ---
$dir = "C:/Users/Rogee/wx-agent01"
$task = "WxAgent-P4-Audit-Tray"
Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null
$action = New-ScheduledTaskAction -Execute "$dir/WxAgent.Tray.exe" -WorkingDirectory $dir
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1)
$principal = New-ScheduledTaskPrincipal -UserId "DESKTOP-EGI7QCK\Rogee" -LogonType Interactive -RunLevel Highest
Register-ScheduledTask -TaskName $task -Action $action -Trigger $trigger -Principal $principal -Force | Out-Null
Start-ScheduledTask -TaskName $task
Start-Sleep -Seconds 35
$p = Get-Process -Name WxAgent.Tray | Select-Object -First 1
[ordered]@{pid=$p.Id;session=$p.SessionId}|ConvertTo-Json -Compress
--- RAW OUTPUT ---
#< CLIXML
{"pid":22372,"session":1}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">2</I64><PR N="Record"><AV>Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null</AV><AI>1160743012</AI><Nil /><PI>-1</PI><PC>0</PC><T>Processing</T><SR>-1</SR><SD>已完成 0/2+</SD></PR></MS></Obj><Obj S="progress" RefId="2"><TNRef RefId="0" /><MS><I64 N="SourceId">2</I64><PR N="Record"><AV>Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null</AV><AI>1160743012</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 2/2</SD></PR></MS></Obj><Obj S="progress" RefId="3"><TNRef RefId="0" /><MS><I64 N="SourceId">3</I64><PR N="Record"><AV>New-ScheduledTaskAction -Execute "$dir/WxAgent.Tray.exe" -WorkingDirectory $dir</AV><AI>873048984</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="4"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="5"><TNRef RefId="0" /><MS><I64 N="SourceId">4</I64><PR N="Record"><AV>New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1)</AV><AI>1448532725</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="6"><TNRef RefId="0" /><MS><I64 N="SourceId">5</I64><PR N="Record"><AV>New-ScheduledTaskPrincipal -UserId "DESKTOP-EGI7QCK\Rogee" -LogonType Interactive -RunLevel Highest</AV><AI>1897014162</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="7"><TNRef RefId="0" /><MS><I64 N="SourceId">6</I64><PR N="Record"><AV>Register-ScheduledTask -TaskName $task -Action $action -Trigger $trigger -Principal $principal -Force | Out-Null</AV><AI>1685929126</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="8"><TNRef RefId="0" /><MS><I64 N="SourceId">7</I64><PR N="Record"><AV>Start-ScheduledTask -TaskName $task</AV><AI>1611635638</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="9"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- POWERSHELL COMMAND ---
Get-Process -Name WxAgent.Tray -ErrorAction SilentlyContinue | Stop-Process -Force; Start-Sleep -Seconds 15
--- RAW OUTPUT ---
#< CLIXML
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- POWERSHELL COMMAND ---
$dir = "C:/Users/Rogee/wx-agent01"
$task = "WxAgent-P4-Audit-Tray"
Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null
$action = New-ScheduledTaskAction -Execute "$dir/WxAgent.Tray.exe" -WorkingDirectory $dir
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1)
$principal = New-ScheduledTaskPrincipal -UserId "DESKTOP-EGI7QCK\Rogee" -LogonType Interactive -RunLevel Highest
Register-ScheduledTask -TaskName $task -Action $action -Trigger $trigger -Principal $principal -Force | Out-Null
Start-ScheduledTask -TaskName $task
Start-Sleep -Seconds 35
$p = Get-Process -Name WxAgent.Tray | Select-Object -First 1
[ordered]@{pid=$p.Id;session=$p.SessionId}|ConvertTo-Json -Compress
--- RAW OUTPUT ---
#< CLIXML
{"pid":7412,"session":1}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">2</I64><PR N="Record"><AV>Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null</AV><AI>1160743012</AI><Nil /><PI>-1</PI><PC>0</PC><T>Processing</T><SR>-1</SR><SD>已完成 0/2+</SD></PR></MS></Obj><Obj S="progress" RefId="2"><TNRef RefId="0" /><MS><I64 N="SourceId">2</I64><PR N="Record"><AV>Unregister-ScheduledTask -TaskName $task -Confirm:$false -ErrorAction SilentlyContinue | Out-Null</AV><AI>1160743012</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 2/2</SD></PR></MS></Obj><Obj S="progress" RefId="3"><TNRef RefId="0" /><MS><I64 N="SourceId">3</I64><PR N="Record"><AV>New-ScheduledTaskAction -Execute "$dir/WxAgent.Tray.exe" -WorkingDirectory $dir</AV><AI>873048984</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="4"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="5"><TNRef RefId="0" /><MS><I64 N="SourceId">4</I64><PR N="Record"><AV>New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1)</AV><AI>1448532725</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="6"><TNRef RefId="0" /><MS><I64 N="SourceId">5</I64><PR N="Record"><AV>New-ScheduledTaskPrincipal -UserId "DESKTOP-EGI7QCK\Rogee" -LogonType Interactive -RunLevel Highest</AV><AI>1897014162</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="7"><TNRef RefId="0" /><MS><I64 N="SourceId">6</I64><PR N="Record"><AV>Register-ScheduledTask -TaskName $task -Action $action -Trigger $trigger -Principal $principal -Force | Out-Null</AV><AI>1685929126</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="8"><TNRef RefId="0" /><MS><I64 N="SourceId">7</I64><PR N="Record"><AV>Start-ScheduledTask -TaskName $task</AV><AI>1611635638</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="9"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
--- 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":"C480279C3ACE174DA283C43441599B6099D23865539A7035150A910956953D44"}
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>LOCAL_STOP_SERVER pid=1472887
LOCAL_START_SERVER pid=1485903 sha256=41cb6ef269f64e815337679978e469212519b7ab7fc0eee0ee4cb6303f614710
--- POWERSHELL COMMAND ---
$dir = "C:/Users/Rogee/wx-agent01"
Get-Process -Name WxAgent.Tray -ErrorAction SilentlyContinue | Stop-Process -Force
Get-ScheduledTask -TaskName "WxAgent-P4-Audit-*" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$false
$cfg = Get-Content -Raw "$dir/service.json" | ConvertFrom-Json
$cfg | Add-Member -MemberType NoteProperty -Name enableDataSync -Value $false -Force
$cfg | ConvertTo-Json -Depth 30 | Set-Content -Encoding UTF8 "$dir/service.json"
Remove-Item "$dir/data/remote-data-sync-state.json","$dir/data/remote-data-queue.json" -Force -ErrorAction SilentlyContinue
--- RAW OUTPUT ---
#< CLIXML
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="2"><TNRef RefId="0" /><MS><I64 N="SourceId">2</I64><PR N="Record"><AV>Get-ScheduledTask -TaskName "WxAgent-P4-Audit-*" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$false</AV><AI>611376450</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="3"><TNRef RefId="0" /><MS><I64 N="SourceId">3</I64><PR N="Record"><AV>Unregister-ScheduledTask -Confirm:$false</AV><AI>1324503256</AI><Nil /><PI>-1</PI><PC>0</PC><T>Processing</T><SR>-1</SR><SD>已完成 0/1+</SD></PR></MS></Obj><Obj S="progress" RefId="4"><TNRef RefId="0" /><MS><I64 N="SourceId">3</I64><PR N="Record"><AV>Unregister-ScheduledTask -Confirm:$false</AV><AI>1324503256</AI><Nil /><PI>-1</PI><PC>100</PC><T>Completed</T><SR>0</SR><SD>已完成 1/1</SD></PR></MS></Obj><Obj S="progress" RefId="5"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>正在准备首次使用模块。</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
+7 -7
View File
@@ -1,7 +1,7 @@
{"event":"offline-queue","utc":"2026-09-22T03:01:56.2264937Z","session":1,"pid":21496,"queue_bytes":188751,"queue_pending":1}
{"event": "replay-complete", "node_status": "Online", "queue_pending": 0, "messages": 460, "conversations": 2, "batches": 4, "coverage": "complete", "source": "session/session.db/SessionTable"}
{"event":"agent-restart","stopped_seconds":15,"process":{"pid":6588,"session":1},"before":{"state":"complete","sequence":4,"messages":460,"batches":4},"after":{"state":"complete","sequence":4,"messages":460,"batches":4,"node_status":"Online"}}
{"event":"authorization-revoke","web_revoke_status":200,"conversations_status":403,"messages_status":403,"sync_status":200}
{"event":"authorization-restore","process":{"pid":18620,"session":1},"conversations_status":200,"messages_status":200}
{"event": "control-plane-before-sigkill", "pid": null, "integrity": "ok", "messages": 460, "batches": 4}
{"event": "control-plane-after-restart", "pid": 1184436, "node_status": "Online", "integrity": "ok", "messages": 460, "batches": 4}
{"event":"deployment","source_commit":"8c2d016bbebfcf42c0bfa9e01670aa794575fb78","tray_sha256":"F6143D28ABC85F4B861402FD33DA4DF460E232A5E884EC5AED1F318BD05C067C"}
{"event":"offline-queue","process":{"pid":22380,"session":1},"queue":{"queue_bytes":188751,"queue_pending":1,"queue_sha256":"9D9A348A7B0E01B496960D8953A8751ACB94E295366ECAE5EEC25FF268CE4178","state_sha256":"4954FF69D66D20C611F8459A70A72E10B6BAA112CE7A9D799AF615BC49D219FE"}}
{"event":"replay","queue":{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"C480279C3ACE174DA283C43441599B6099D23865539A7035150A910956953D44"},"sync":{"state":"complete","confirmed_sequence":4,"last_success_at":"2026-09-22T04:10:06.939812763Z"},"shard":{"messages": 460, "conversations": 2, "batches": 4, "coverage": "complete", "integrity": "ok", "sources": ["session/session.db/SessionTable"], "title_equals_chat_id": 0}}
{"event":"agent-restart","process":{"pid":22372,"session":1},"before":{"state":"complete","confirmed_sequence":4,"last_success_at":"2026-09-22T04:10:06.939812763Z"},"after":{"state":"complete","confirmed_sequence":4,"last_success_at":"2026-09-22T04:10:06.939812763Z"}}
{"event":"authorization-revoke","revoke":200,"conversations":403,"messages":403,"sync_status":200,"batch_rejected":403}
{"event":"authorization-restore","process":{"pid":7412,"session":1},"conversations":200,"messages":200,"queue":{"queue_bytes":15,"queue_pending":0,"queue_sha256":"AC4BCD92C2361F721A463C97BD5B98EDD6486ACE00ABCD140E01617B7DAD2596","state_sha256":"C480279C3ACE174DA283C43441599B6099D23865539A7035150A910956953D44"}}
{"event":"control-plane-restart","old_pid":1472887,"new_pid":1485903,"before":{"messages": 460, "conversations": 2, "batches": 4, "coverage": "complete", "integrity": "ok", "sources": ["session/session.db/SessionTable"], "title_equals_chat_id": 0},"after":{"messages": 460, "conversations": 2, "batches": 4, "coverage": "complete", "integrity": "ok", "sources": ["session/session.db/SessionTable"], "title_equals_chat_id": 0}}
@@ -2,6 +2,14 @@
set -euo pipefail
file=${1:-"$(dirname "$0")/p4-live-operations.jsonl"}
trace=${2:-"$(dirname "$0")/p4-live-commands.log"}
metrics=${3:-"$(dirname "$0")/capacity-metrics.txt"}
test -s "$trace"
grep -q 'Get-FileHash' "$trace"
grep -q 'Get-Process -Name WxAgent.Tray' "$trace"
grep -q 'LOCAL_START_SERVER' "$trace"
grep -q 'capacity_metrics=' "$metrics"
jq -s -e '
map({(.event): .}) | add as $e |