Skip to content

sp replay diff & logs

When agents use this: Deep dive on a failed case — diff bodies, compare JSON, replay-phase logs.

Subcommands

SubcommandDescription
diff get <diffId>Base vs test messages (artifact)
compareFull-link compare result
logs [replayId]Replay log stream/query (--overview for summary)
mock-tree <replayId>Mock tree for replay
noise queryQuery noise rules
noise excludeExclude noise (-f + --confirm)
realtime …Real-time replay queue (see below)

Examples

bash
sp replay diff get diff-abc --out-dir .sp-work --json
sp replay compare --trace-id t1 --replay-id r1 --out-dir .sp-work --json
sp replay logs r1 --overview --json
sp replay logs r1 --limit 200 --keyword timeout --json
sp replay mock-tree replay-uuid --json

JSON output (diff get)

json
{
  "ok": true,
  "command": "replay diff get",
  "data": {
    "artifact": ".sp-work/diff-abc.json",
    "summary": {
      "diffId": "abc",
      "diffResultCode": 1,
      "categoryName": "ResponseBody"
    }
  }
}

Artifact contains decoded baseMsg and testMsg (JSON when parseable).

REST mapping

SubcommandMethodPath
diff getGET/api/report/queryDiffMsgById/{id}
comparePOSTSchedule /api/compareCase + report APIs
logs (--overview)GET/api/replay-logs/overview?replayId=...
logsGET/api/replay-logs/download?... (normalized log entries)
mock-treeGET/api/storage/replay-mock-tree/{replayId}
noise queryGET/api/queryNoise
noise excludePOST/api/excludeNoise

Real-time replay

SubcommandPath
realtime createPOST /api/createRealTimePlan
realtime queue pause <planId>GET /api/queue/control/pause?planId=... (--confirm)
realtime queue resume <planId>GET /api/queue/control/resume?planId=... (--confirm)
realtime logPOST /api/realtime/log/query

Replaces sp_api

sp_apisp
diff_detailsp replay diff get
compare_resultsp replay compare
replay_log_overviewsp replay logs <replayId> --overview
download_replay_logssp replay logs <replayId>

Zero code changes · Full-context visibility · Cost optimization