mirror of
https://github.com/stablyai/orca.git
synced 2026-09-26 08:02:38 +00:00
Merge rpc-lane-c-runner: the RPC recording oracle
Replays recorded mobile RPC operations against frozen goldens and fails on any divergence. Additive only; the sole non-test file is mobile/scripts/rpc-recording.mts. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
This commit is contained in:
@@ -0,0 +1,555 @@
|
||||
{
|
||||
"operation": "workspace.file-inventory",
|
||||
"family": "legacy-inventory",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"305c86832cd8": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"old": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"3390ae6d62f2": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "old",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 240,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"files": [
|
||||
{
|
||||
"relativePath": "old.ts"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.searchPaths#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "fresh",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 240,
|
||||
"settledAt": 240,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-3",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.list#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 240
|
||||
}
|
||||
}
|
||||
],
|
||||
"35af95861be6": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"old": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"select-b": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"reset-a": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"fresh": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"4f53cda18c2b": [],
|
||||
"5386959d4549": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"old": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"select-b": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"reset-a": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"fresh": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"third": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 240,
|
||||
"settledAt": 240,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"602e35a92eec": {
|
||||
"files": []
|
||||
},
|
||||
"6713de8f80d3": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.searchPaths\",\"params\":{\"worktree\":\"id:A\",\"query\":\"old\",\"limit\":16}}"
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.list\",\"params\":{\"worktree\":\"id:A\"}}"
|
||||
}
|
||||
],
|
||||
"97ccce4248eb": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "old",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 120
|
||||
}
|
||||
}
|
||||
],
|
||||
"a129552fdc6e": {
|
||||
"files": ["third.ts"]
|
||||
},
|
||||
"ad0f58f0684c": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.searchPaths\",\"params\":{\"worktree\":\"id:A\",\"query\":\"old\",\"limit\":16}}"
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.list\",\"params\":{\"worktree\":\"id:A\"}}"
|
||||
},
|
||||
{
|
||||
"name": "files.searchPaths#2",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"files.searchPaths\",\"params\":{\"worktree\":\"id:A\",\"query\":\"fresh\",\"limit\":16}}"
|
||||
},
|
||||
{
|
||||
"name": "files.list#2",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"files.list\",\"params\":{\"worktree\":\"id:A\"}}"
|
||||
}
|
||||
],
|
||||
"e72410768c32": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "old",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 240,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"files": [
|
||||
{
|
||||
"relativePath": "old.ts"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.searchPaths#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "fresh",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 240,
|
||||
"settledAt": 240,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-3",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.list#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 240,
|
||||
"settledAt": 360,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"files": [
|
||||
{
|
||||
"relativePath": "fresh.ts"
|
||||
},
|
||||
{
|
||||
"relativePath": "third.ts"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "b1",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "old-pending",
|
||||
"observation": {
|
||||
"sender": "97ccce4248eb",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "305c86832cd8",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "stale-arrived-fresh-pending",
|
||||
"observation": {
|
||||
"sender": "3390ae6d62f2",
|
||||
"payloads": "ad0f58f0684c",
|
||||
"settlements": "35af95861be6",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "third-query",
|
||||
"observation": {
|
||||
"sender": "3390ae6d62f2",
|
||||
"payloads": "ad0f58f0684c",
|
||||
"settlements": "5386959d4549",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "fresh-arrived",
|
||||
"observation": {
|
||||
"sender": "e72410768c32",
|
||||
"payloads": "ad0f58f0684c",
|
||||
"settlements": "5386959d4549",
|
||||
"state": "a129552fdc6e",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,200 @@
|
||||
{
|
||||
"operation": "project.update-metadata",
|
||||
"family": "project-explicit-false",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0318f81a142b": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"github.project.updateIssueBySlug\",\"params\":{\"owner\":\"owner\",\"repo\":\"repo\",\"host\":\"github.enterprise.test\",\"number\":1,\"updates\":{\"addLabels\":[\"recorded\"]}}}"
|
||||
}
|
||||
],
|
||||
"0c4dced3e005": {
|
||||
"error": "",
|
||||
"mutating": true,
|
||||
"row": {
|
||||
"content": {
|
||||
"assignees": [],
|
||||
"labels": [],
|
||||
"number": 1,
|
||||
"repository": "owner/repo"
|
||||
},
|
||||
"id": "item-1",
|
||||
"itemType": "ISSUE"
|
||||
}
|
||||
},
|
||||
"15516afe97e7": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "github.project.updateIssueBySlug"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"host": "github.enterprise.test",
|
||||
"number": 1,
|
||||
"owner": "owner",
|
||||
"repo": "repo",
|
||||
"updates": {
|
||||
"addLabels": ["recorded"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"204a5c5728c2": {
|
||||
"error": "Cannot read properties of null (reading 'ok')",
|
||||
"mutating": false,
|
||||
"row": {
|
||||
"content": {
|
||||
"assignees": [],
|
||||
"labels": [],
|
||||
"number": 1,
|
||||
"repository": "owner/repo"
|
||||
},
|
||||
"id": "item-1",
|
||||
"itemType": "ISSUE"
|
||||
}
|
||||
},
|
||||
"3b9a7724526d": [
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"6dfef4ef572b": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"7e11552b02fa": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "github.project.updateIssueBySlug"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"host": "github.enterprise.test",
|
||||
"number": 1,
|
||||
"owner": "owner",
|
||||
"repo": "repo",
|
||||
"updates": {
|
||||
"addLabels": ["recorded"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"dd1ba4033a27": [
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetailError",
|
||||
"value": "Cannot read properties of null (reading 'ok')"
|
||||
},
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"f117d93cf44a": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "b2",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "pending",
|
||||
"observation": {
|
||||
"sender": "15516afe97e7",
|
||||
"payloads": "0318f81a142b",
|
||||
"settlements": "f117d93cf44a",
|
||||
"state": "0c4dced3e005",
|
||||
"effects": "3b9a7724526d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "7e11552b02fa",
|
||||
"payloads": "0318f81a142b",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "204a5c5728c2",
|
||||
"effects": "dd1ba4033a27"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,310 @@
|
||||
{
|
||||
"operation": "linear.issue-detail",
|
||||
"family": "linear-detail-barrier",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"0b631657711f": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"linear.getIssue\",\"params\":{\"id\":\"issue-1\",\"workspaceId\":\"linear-workspace\"}}"
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"linear.issueComments\",\"params\":{\"issueId\":\"issue-1\",\"workspaceId\":\"linear-workspace\"}}"
|
||||
}
|
||||
],
|
||||
"26c78123b573": [
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"42903545f0f8": {
|
||||
"error": "comments transport error",
|
||||
"loading": false,
|
||||
"payload": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
"68d958edb978": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.getIssue"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"id": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "issue refused"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.issueComments"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"issueId": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"6d65777cf6fe": [
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": "comments transport error"
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"780aaf1d97be": {
|
||||
"error": "",
|
||||
"loading": true,
|
||||
"payload": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
"db6e863f7087": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.getIssue"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"id": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "issue refused"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.issueComments"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"issueId": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "comments transport error",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"fc7910387ac9": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.getIssue"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"id": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.issueComments"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"issueId": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "b3",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "pending",
|
||||
"observation": {
|
||||
"sender": "fc7910387ac9",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "780aaf1d97be",
|
||||
"effects": "26c78123b573"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "issue-refused-comments-pending",
|
||||
"observation": {
|
||||
"sender": "68d958edb978",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "780aaf1d97be",
|
||||
"effects": "26c78123b573"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "db6e863f7087",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "42903545f0f8",
|
||||
"effects": "6d65777cf6fe"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,371 @@
|
||||
{
|
||||
"operation": "workspace.file-inventory",
|
||||
"family": "legacy-inventory",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"305c86832cd8": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"old": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"44517661da0d": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"old": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"cutover": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"4f53cda18c2b": [],
|
||||
"602e35a92eec": {
|
||||
"files": []
|
||||
},
|
||||
"6713de8f80d3": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.searchPaths\",\"params\":{\"worktree\":\"id:A\",\"query\":\"old\",\"limit\":16}}"
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.list\",\"params\":{\"worktree\":\"id:A\"}}"
|
||||
}
|
||||
],
|
||||
"8c70b1eb7a30": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"old": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"disconnect": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"8d7ff0ac3500": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "old",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 120,
|
||||
"settledAt": 30120,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "Request timed out: files.list",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"da74303641ea": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "old",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"error": {
|
||||
"category": "LogicalClientCutoverError",
|
||||
"message": "RPC interrupted by connection migration",
|
||||
"isRpcDeliveryUnknown": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"e01595c0caa4": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "old",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "Connection lost",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "interruptions-inventory-lifecycle",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "inventory-lifecycle.timeout:interrupted",
|
||||
"observation": {
|
||||
"sender": "8d7ff0ac3500",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "305c86832cd8",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.timeout:settled",
|
||||
"observation": {
|
||||
"sender": "8d7ff0ac3500",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "305c86832cd8",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.disconnect:interrupted",
|
||||
"observation": {
|
||||
"sender": "e01595c0caa4",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "8c70b1eb7a30",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.disconnect:settled",
|
||||
"observation": {
|
||||
"sender": "e01595c0caa4",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "8c70b1eb7a30",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.cutover:interrupted",
|
||||
"observation": {
|
||||
"sender": "da74303641ea",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "44517661da0d",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.cutover:settled",
|
||||
"observation": {
|
||||
"sender": "da74303641ea",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "44517661da0d",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,269 @@
|
||||
{
|
||||
"operation": "settings.bot-overrides",
|
||||
"family": "settings.bot-overrides",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"4f53cda18c2b": [],
|
||||
"77571e1166d2": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"disconnect": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"79828a30028a": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 30000,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "Request timed out: settings.get",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"7a5a1b086254": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "Connection lost",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"8df6a469391c": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"cutover": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"d5feb23d2615": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "LogicalClientCutoverError",
|
||||
"message": "RPC interrupted by connection migration",
|
||||
"isRpcDeliveryUnknown": false
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "interruptions-settings-bot-overrides-fulfilled",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.prelude:settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.timeout:interrupted",
|
||||
"observation": {
|
||||
"sender": "79828a30028a",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.timeout:settled",
|
||||
"observation": {
|
||||
"sender": "79828a30028a",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.disconnect:interrupted",
|
||||
"observation": {
|
||||
"sender": "7a5a1b086254",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "77571e1166d2",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.disconnect:settled",
|
||||
"observation": {
|
||||
"sender": "7a5a1b086254",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "77571e1166d2",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.cutover:interrupted",
|
||||
"observation": {
|
||||
"sender": "d5feb23d2615",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "8df6a469391c",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.cutover:settled",
|
||||
"observation": {
|
||||
"sender": "d5feb23d2615",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "8df6a469391c",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
{
|
||||
"operation": "workspace.file-inventory",
|
||||
"family": "legacy-inventory",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"305c86832cd8": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"old": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"4f53cda18c2b": [],
|
||||
"6713de8f80d3": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.searchPaths\",\"params\":{\"worktree\":\"id:A\",\"query\":\"old\",\"limit\":16}}"
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.list\",\"params\":{\"worktree\":\"id:A\"}}"
|
||||
}
|
||||
],
|
||||
"ab2510585ba0": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "old",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"files": [
|
||||
{
|
||||
"relativePath": "old.ts"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"fe1aebea954c": {
|
||||
"files": ["old.ts"]
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "inventory-lifecycle",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "305c86832cd8",
|
||||
"state": "fe1aebea954c",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,397 @@
|
||||
{
|
||||
"operation": "workspace.file-inventory",
|
||||
"family": "legacy-inventory",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"003a57e2bf31": {
|
||||
"files": ["alpha.ts"]
|
||||
},
|
||||
"07920a7dd2ac": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.searchPaths\",\"params\":{\"worktree\":\"id:A\",\"query\":\"alpha\",\"limit\":16}}"
|
||||
},
|
||||
{
|
||||
"name": "files.searchPaths#2",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.searchPaths\",\"params\":{\"worktree\":\"id:A\",\"query\":\"beta\",\"limit\":16}}"
|
||||
},
|
||||
{
|
||||
"name": "files.searchPaths#3",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"files.searchPaths\",\"params\":{\"worktree\":\"id:A\",\"query\":\"gamma\",\"limit\":16}}"
|
||||
}
|
||||
],
|
||||
"16c03a5dc6c8": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "alpha",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"files": [
|
||||
{
|
||||
"relativePath": "alpha.ts"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.searchPaths#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "beta",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 240,
|
||||
"settledAt": 240,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"files": [
|
||||
{
|
||||
"relativePath": "beta.ts"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.searchPaths#3",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "gamma",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 360
|
||||
}
|
||||
}
|
||||
],
|
||||
"22ab9118541c": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "alpha",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"files": [
|
||||
{
|
||||
"relativePath": "alpha.ts"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.searchPaths#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "beta",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 240,
|
||||
"settledAt": 240,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"files": [
|
||||
{
|
||||
"relativePath": "beta.ts"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.searchPaths#3",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "gamma",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 360,
|
||||
"settledAt": 360,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"files": [
|
||||
{
|
||||
"relativePath": "gamma.ts"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"3642acfe438f": {
|
||||
"files": ["beta.ts"]
|
||||
},
|
||||
"4f53cda18c2b": [],
|
||||
"d89c93bd8899": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"alpha": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"beta": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"gamma": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 240,
|
||||
"settledAt": 240,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"repeat-alpha": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 360,
|
||||
"settledAt": 360,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"eeba4d799744": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"alpha": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"beta": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"gamma": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 240,
|
||||
"settledAt": 240,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"repeat-alpha": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 360,
|
||||
"settledAt": 360,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"delta": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 360,
|
||||
"settledAt": 360,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"repeat-beta": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 360,
|
||||
"settledAt": 360,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "inventory-repeat-query",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "cached-alpha",
|
||||
"observation": {
|
||||
"sender": "16c03a5dc6c8",
|
||||
"payloads": "07920a7dd2ac",
|
||||
"settlements": "d89c93bd8899",
|
||||
"state": "003a57e2bf31",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "stale-search-ignored",
|
||||
"observation": {
|
||||
"sender": "22ab9118541c",
|
||||
"payloads": "07920a7dd2ac",
|
||||
"settlements": "d89c93bd8899",
|
||||
"state": "003a57e2bf31",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "cached-beta-cancels-debounce",
|
||||
"observation": {
|
||||
"sender": "22ab9118541c",
|
||||
"payloads": "07920a7dd2ac",
|
||||
"settlements": "eeba4d799744",
|
||||
"state": "3642acfe438f",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,602 @@
|
||||
{
|
||||
"operation": "workspace.file-inventory",
|
||||
"family": "legacy-inventory",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"1a957d27c347": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "old",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 120
|
||||
}
|
||||
}
|
||||
],
|
||||
"4f53cda18c2b": [],
|
||||
"602e35a92eec": {
|
||||
"files": []
|
||||
},
|
||||
"6713de8f80d3": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.searchPaths\",\"params\":{\"worktree\":\"id:A\",\"query\":\"old\",\"limit\":16}}"
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.list\",\"params\":{\"worktree\":\"id:A\"}}"
|
||||
}
|
||||
],
|
||||
"8baaca44e19f": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"old": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"lifecycle-blur": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"97ccce4248eb": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "old",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 120
|
||||
}
|
||||
}
|
||||
],
|
||||
"a5b853493ed4": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.searchPaths\",\"params\":{\"worktree\":\"id:A\",\"query\":\"old\",\"limit\":16}}"
|
||||
}
|
||||
],
|
||||
"ab2510585ba0": [
|
||||
{
|
||||
"name": "files.searchPaths#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.searchPaths"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 16,
|
||||
"query": "old",
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "files.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "files.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"worktree": "id:A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"files": [
|
||||
{
|
||||
"relativePath": "old.ts"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"c8fe68914ed2": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"old": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"lifecycle-unmount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ca50cabf84eb": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"old": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"lifecycle-unmount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"remount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"e55f989316a7": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"old": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"lifecycle-reset": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 120,
|
||||
"settledAt": 120,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"fe1aebea954c": {
|
||||
"files": ["old.ts"]
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "lifecycle-inventory-lifecycle",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "inventory-lifecycle.reset-before-1:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "1a957d27c347",
|
||||
"payloads": "a5b853493ed4",
|
||||
"settlements": "e55f989316a7",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.reset-before-1:settled",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "e55f989316a7",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.reset-after-1:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "97ccce4248eb",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "e55f989316a7",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.reset-after-1:settled",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "e55f989316a7",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.reset-before-2:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "97ccce4248eb",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "e55f989316a7",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.reset-before-2:settled",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "e55f989316a7",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.reset-after-2:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "e55f989316a7",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.reset-after-2:settled",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "e55f989316a7",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.unmount-before-1:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "1a957d27c347",
|
||||
"payloads": "a5b853493ed4",
|
||||
"settlements": "c8fe68914ed2",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.unmount-before-1:settled",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "c8fe68914ed2",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.unmount-before-1:remounted",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "ca50cabf84eb",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.unmount-after-1:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "97ccce4248eb",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "c8fe68914ed2",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.unmount-after-1:settled",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "c8fe68914ed2",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.unmount-after-1:remounted",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "ca50cabf84eb",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.unmount-before-2:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "97ccce4248eb",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "c8fe68914ed2",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.unmount-before-2:settled",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "c8fe68914ed2",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.unmount-before-2:remounted",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "ca50cabf84eb",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.unmount-after-2:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "c8fe68914ed2",
|
||||
"state": "fe1aebea954c",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.unmount-after-2:settled",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "c8fe68914ed2",
|
||||
"state": "fe1aebea954c",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.unmount-after-2:remounted",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "ca50cabf84eb",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.blur-before-1:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "1a957d27c347",
|
||||
"payloads": "a5b853493ed4",
|
||||
"settlements": "8baaca44e19f",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.blur-before-1:settled",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "8baaca44e19f",
|
||||
"state": "fe1aebea954c",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.blur-after-1:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "97ccce4248eb",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "8baaca44e19f",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.blur-after-1:settled",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "8baaca44e19f",
|
||||
"state": "fe1aebea954c",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.blur-before-2:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "97ccce4248eb",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "8baaca44e19f",
|
||||
"state": "602e35a92eec",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.blur-before-2:settled",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "8baaca44e19f",
|
||||
"state": "fe1aebea954c",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.blur-after-2:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "8baaca44e19f",
|
||||
"state": "fe1aebea954c",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-lifecycle.blur-after-2:settled",
|
||||
"observation": {
|
||||
"sender": "ab2510585ba0",
|
||||
"payloads": "6713de8f80d3",
|
||||
"settlements": "8baaca44e19f",
|
||||
"state": "fe1aebea954c",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,464 @@
|
||||
{
|
||||
"operation": "settings.bot-overrides",
|
||||
"family": "settings.bot-overrides",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"0622544ec536": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"lifecycle-unmount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"remount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"1d4a2fa741de": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#2",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"20d650b20730": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"lifecycle-blur": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"4f53cda18c2b": [],
|
||||
"84155dde485f": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"a7af6ac4ce05": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"d52c8e96e222": ["bot-user"],
|
||||
"d7482cfe1d66": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"eb595117f4da": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"lifecycle-reset": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"f7efecfbed85": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"lifecycle-unmount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "lifecycle-settings-bot-overrides-fulfilled",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.prelude:settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.reset-before-1:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "d7482cfe1d66",
|
||||
"payloads": "1d4a2fa741de",
|
||||
"settlements": "eb595117f4da",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.reset-before-1:settled",
|
||||
"observation": {
|
||||
"sender": "84155dde485f",
|
||||
"payloads": "1d4a2fa741de",
|
||||
"settlements": "eb595117f4da",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.reset-after-1:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "84155dde485f",
|
||||
"payloads": "1d4a2fa741de",
|
||||
"settlements": "eb595117f4da",
|
||||
"state": "d52c8e96e222",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.reset-after-1:settled",
|
||||
"observation": {
|
||||
"sender": "84155dde485f",
|
||||
"payloads": "1d4a2fa741de",
|
||||
"settlements": "eb595117f4da",
|
||||
"state": "d52c8e96e222",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.unmount-before-1:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "f7efecfbed85",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.unmount-before-1:settled",
|
||||
"observation": {
|
||||
"sender": "a7af6ac4ce05",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "f7efecfbed85",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.unmount-before-1:remounted",
|
||||
"observation": {
|
||||
"sender": "84155dde485f",
|
||||
"payloads": "1d4a2fa741de",
|
||||
"settlements": "0622544ec536",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.unmount-after-1:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "a7af6ac4ce05",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "f7efecfbed85",
|
||||
"state": "d52c8e96e222",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.unmount-after-1:settled",
|
||||
"observation": {
|
||||
"sender": "a7af6ac4ce05",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "f7efecfbed85",
|
||||
"state": "d52c8e96e222",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.unmount-after-1:remounted",
|
||||
"observation": {
|
||||
"sender": "84155dde485f",
|
||||
"payloads": "1d4a2fa741de",
|
||||
"settlements": "0622544ec536",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.blur-before-1:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "20d650b20730",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.blur-before-1:settled",
|
||||
"observation": {
|
||||
"sender": "a7af6ac4ce05",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "20d650b20730",
|
||||
"state": "d52c8e96e222",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.blur-after-1:lifecycle-boundary",
|
||||
"observation": {
|
||||
"sender": "a7af6ac4ce05",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "20d650b20730",
|
||||
"state": "d52c8e96e222",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.blur-after-1:settled",
|
||||
"observation": {
|
||||
"sender": "a7af6ac4ce05",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "20d650b20730",
|
||||
"state": "d52c8e96e222",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,852 @@
|
||||
{
|
||||
"operation": "project.update-metadata",
|
||||
"family": "project-explicit-false",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0318f81a142b": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"github.project.updateIssueBySlug\",\"params\":{\"owner\":\"owner\",\"repo\":\"repo\",\"host\":\"github.enterprise.test\",\"number\":1,\"updates\":{\"addLabels\":[\"recorded\"]}}}"
|
||||
}
|
||||
],
|
||||
"0af9e441da2d": [
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetailError",
|
||||
"value": "Failed to update GitHub item"
|
||||
},
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"0c4dced3e005": {
|
||||
"error": "",
|
||||
"mutating": true,
|
||||
"row": {
|
||||
"content": {
|
||||
"assignees": [],
|
||||
"labels": [],
|
||||
"number": 1,
|
||||
"repository": "owner/repo"
|
||||
},
|
||||
"id": "item-1",
|
||||
"itemType": "ISSUE"
|
||||
}
|
||||
},
|
||||
"15516afe97e7": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "github.project.updateIssueBySlug"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"host": "github.enterprise.test",
|
||||
"number": 1,
|
||||
"owner": "owner",
|
||||
"repo": "repo",
|
||||
"updates": {
|
||||
"addLabels": ["recorded"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"204a5c5728c2": {
|
||||
"error": "Cannot read properties of null (reading 'ok')",
|
||||
"mutating": false,
|
||||
"row": {
|
||||
"content": {
|
||||
"assignees": [],
|
||||
"labels": [],
|
||||
"number": 1,
|
||||
"repository": "owner/repo"
|
||||
},
|
||||
"id": "item-1",
|
||||
"itemType": "ISSUE"
|
||||
}
|
||||
},
|
||||
"22021a77bba3": {
|
||||
"error": "Unknown method",
|
||||
"mutating": false,
|
||||
"row": {
|
||||
"content": {
|
||||
"assignees": [],
|
||||
"labels": [],
|
||||
"number": 1,
|
||||
"repository": "owner/repo"
|
||||
},
|
||||
"id": "item-1",
|
||||
"itemType": "ISSUE"
|
||||
}
|
||||
},
|
||||
"26facd6684ea": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "github.project.updateIssueBySlug"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"host": "github.enterprise.test",
|
||||
"number": 1,
|
||||
"owner": "owner",
|
||||
"repo": "repo",
|
||||
"updates": {
|
||||
"addLabels": ["recorded"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": {
|
||||
"message": "inner refused"
|
||||
},
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"29f9b15bed7a": {
|
||||
"error": "Cannot read properties of undefined (reading 'ok')",
|
||||
"mutating": false,
|
||||
"row": {
|
||||
"content": {
|
||||
"assignees": [],
|
||||
"labels": [],
|
||||
"number": 1,
|
||||
"repository": "owner/repo"
|
||||
},
|
||||
"id": "item-1",
|
||||
"itemType": "ISSUE"
|
||||
}
|
||||
},
|
||||
"2b3c1b95331e": {
|
||||
"error": "outer refused",
|
||||
"mutating": false,
|
||||
"row": {
|
||||
"content": {
|
||||
"assignees": [],
|
||||
"labels": [],
|
||||
"number": 1,
|
||||
"repository": "owner/repo"
|
||||
},
|
||||
"id": "item-1",
|
||||
"itemType": "ISSUE"
|
||||
}
|
||||
},
|
||||
"2d4bb5e23b2b": [
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetailError",
|
||||
"value": "Cannot read properties of undefined (reading 'ok')"
|
||||
},
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"32cc1f3ceec8": {
|
||||
"error": "inner refused",
|
||||
"mutating": false,
|
||||
"row": {
|
||||
"content": {
|
||||
"assignees": [],
|
||||
"labels": [],
|
||||
"number": 1,
|
||||
"repository": "owner/repo"
|
||||
},
|
||||
"id": "item-1",
|
||||
"itemType": "ISSUE"
|
||||
}
|
||||
},
|
||||
"341bf4999ec7": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "github.project.updateIssueBySlug"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"host": "github.enterprise.test",
|
||||
"number": 1,
|
||||
"owner": "owner",
|
||||
"repo": "repo",
|
||||
"updates": {
|
||||
"addLabels": ["recorded"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": "inner refused",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"3b9a7724526d": [
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"572294a588f2": [
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetailError",
|
||||
"value": "outer refused"
|
||||
},
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"5ea692508d69": {
|
||||
"error": "transport failure",
|
||||
"mutating": false,
|
||||
"row": {
|
||||
"content": {
|
||||
"assignees": [],
|
||||
"labels": [],
|
||||
"number": 1,
|
||||
"repository": "owner/repo"
|
||||
},
|
||||
"id": "item-1",
|
||||
"itemType": "ISSUE"
|
||||
}
|
||||
},
|
||||
"6dfef4ef572b": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"7000538c4980": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "github.project.updateIssueBySlug"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"host": "github.enterprise.test",
|
||||
"number": 1,
|
||||
"owner": "owner",
|
||||
"repo": "repo",
|
||||
"updates": {
|
||||
"addLabels": ["recorded"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": "refused"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"7df10429e862": {
|
||||
"error": "",
|
||||
"mutating": false,
|
||||
"row": {
|
||||
"content": {
|
||||
"assignees": [],
|
||||
"labels": [
|
||||
{
|
||||
"color": "808080",
|
||||
"name": "recorded"
|
||||
}
|
||||
],
|
||||
"number": 1,
|
||||
"repository": "owner/repo"
|
||||
},
|
||||
"id": "item-1",
|
||||
"itemType": "ISSUE"
|
||||
}
|
||||
},
|
||||
"7e11552b02fa": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "github.project.updateIssueBySlug"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"host": "github.enterprise.test",
|
||||
"number": 1,
|
||||
"owner": "owner",
|
||||
"repo": "repo",
|
||||
"updates": {
|
||||
"addLabels": ["recorded"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"8bb949ebd8c5": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "github.project.updateIssueBySlug"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"host": "github.enterprise.test",
|
||||
"number": 1,
|
||||
"owner": "owner",
|
||||
"repo": "repo",
|
||||
"updates": {
|
||||
"addLabels": ["recorded"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"8f4cdf6e9ea3": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "github.project.updateIssueBySlug"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"host": "github.enterprise.test",
|
||||
"number": 1,
|
||||
"owner": "owner",
|
||||
"repo": "repo",
|
||||
"updates": {
|
||||
"addLabels": ["recorded"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"9033c0d7d9eb": [
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetailError",
|
||||
"value": "Unknown method"
|
||||
},
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"9c6bc085b45b": [
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "projectRowItem",
|
||||
"value": {
|
||||
"content": {
|
||||
"assignees": [],
|
||||
"labels": [
|
||||
{
|
||||
"color": "808080",
|
||||
"name": "recorded"
|
||||
}
|
||||
],
|
||||
"number": 1,
|
||||
"repository": "owner/repo"
|
||||
},
|
||||
"id": "item-1",
|
||||
"itemType": "ISSUE"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "githubProjectTable",
|
||||
"value": {
|
||||
"rows": [
|
||||
{
|
||||
"content": {
|
||||
"assignees": [],
|
||||
"labels": [
|
||||
{
|
||||
"color": "808080",
|
||||
"name": "recorded"
|
||||
}
|
||||
],
|
||||
"number": 1,
|
||||
"repository": "owner/repo"
|
||||
},
|
||||
"id": "item-1",
|
||||
"itemType": "ISSUE"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetail",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"9cf0630c4079": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "github.project.updateIssueBySlug"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"host": "github.enterprise.test",
|
||||
"number": 1,
|
||||
"owner": "owner",
|
||||
"repo": "repo",
|
||||
"updates": {
|
||||
"addLabels": ["recorded"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"c679565dc881": {
|
||||
"error": "Failed to update GitHub item",
|
||||
"mutating": false,
|
||||
"row": {
|
||||
"content": {
|
||||
"assignees": [],
|
||||
"labels": [],
|
||||
"number": 1,
|
||||
"repository": "owner/repo"
|
||||
},
|
||||
"id": "item-1",
|
||||
"itemType": "ISSUE"
|
||||
}
|
||||
},
|
||||
"c7c7fd6677d0": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "github.project.updateIssueBySlug"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"host": "github.enterprise.test",
|
||||
"number": 1,
|
||||
"owner": "owner",
|
||||
"repo": "repo",
|
||||
"updates": {
|
||||
"addLabels": ["recorded"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "outer refused"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"c7e42c33f7cc": [
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetailError",
|
||||
"value": "inner refused"
|
||||
},
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"c7ff11bf23e1": [
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetailError",
|
||||
"value": "transport failure"
|
||||
},
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"dd1ba4033a27": [
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetailError",
|
||||
"value": "Cannot read properties of null (reading 'ok')"
|
||||
},
|
||||
{
|
||||
"name": "projectMutating",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"ed0dd90e4fa1": [
|
||||
{
|
||||
"name": "github.project.updateIssueBySlug#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "github.project.updateIssueBySlug"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"host": "github.enterprise.test",
|
||||
"number": 1,
|
||||
"owner": "owner",
|
||||
"repo": "repo",
|
||||
"updates": {
|
||||
"addLabels": ["recorded"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "transport failure",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"f117d93cf44a": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "matrix-project-explicit-false",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "b2.prelude:pending",
|
||||
"observation": {
|
||||
"sender": "15516afe97e7",
|
||||
"payloads": "0318f81a142b",
|
||||
"settlements": "f117d93cf44a",
|
||||
"state": "0c4dced3e005",
|
||||
"effects": "3b9a7724526d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b2.normal:settled",
|
||||
"observation": {
|
||||
"sender": "9cf0630c4079",
|
||||
"payloads": "0318f81a142b",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "7df10429e862",
|
||||
"effects": "9c6bc085b45b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b2.result-absent:settled",
|
||||
"observation": {
|
||||
"sender": "8f4cdf6e9ea3",
|
||||
"payloads": "0318f81a142b",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "29f9b15bed7a",
|
||||
"effects": "2d4bb5e23b2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b2.result-null:settled",
|
||||
"observation": {
|
||||
"sender": "7e11552b02fa",
|
||||
"payloads": "0318f81a142b",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "204a5c5728c2",
|
||||
"effects": "dd1ba4033a27"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b2.inner-ok-missing:settled",
|
||||
"observation": {
|
||||
"sender": "7000538c4980",
|
||||
"payloads": "0318f81a142b",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "7df10429e862",
|
||||
"effects": "9c6bc085b45b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b2.inner-false-string-error:settled",
|
||||
"observation": {
|
||||
"sender": "341bf4999ec7",
|
||||
"payloads": "0318f81a142b",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "c679565dc881",
|
||||
"effects": "0af9e441da2d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b2.inner-false-object-error:settled",
|
||||
"observation": {
|
||||
"sender": "26facd6684ea",
|
||||
"payloads": "0318f81a142b",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "32cc1f3ceec8",
|
||||
"effects": "c7e42c33f7cc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b2.outer-refused:settled",
|
||||
"observation": {
|
||||
"sender": "c7c7fd6677d0",
|
||||
"payloads": "0318f81a142b",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "2b3c1b95331e",
|
||||
"effects": "572294a588f2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b2.method-not-found:settled",
|
||||
"observation": {
|
||||
"sender": "8bb949ebd8c5",
|
||||
"payloads": "0318f81a142b",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "22021a77bba3",
|
||||
"effects": "9033c0d7d9eb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b2.transport-rejection:settled",
|
||||
"observation": {
|
||||
"sender": "ed0dd90e4fa1",
|
||||
"payloads": "0318f81a142b",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "5ea692508d69",
|
||||
"effects": "c7ff11bf23e1"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,496 @@
|
||||
{
|
||||
"operation": "settings.task-preferences",
|
||||
"family": "settings-best-effort",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"30dcc6c2791e": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.update"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"defaultTaskViewPreset": "assigned"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"5db909d58c6f": {
|
||||
"preset": "assigned"
|
||||
},
|
||||
"86cae7d2eb05": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.update"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"defaultTaskViewPreset": "assigned"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "transport failure",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"9c7e0ecdf09b": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.update"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"defaultTaskViewPreset": "assigned"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": "inner refused",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"a11ef678ac34": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.update"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"defaultTaskViewPreset": "assigned"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"a4cc6c82ee53": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"write": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"b26f6d594d62": [
|
||||
{
|
||||
"name": "defaultGitHubPreset",
|
||||
"value": "assigned"
|
||||
}
|
||||
],
|
||||
"c48c361670b0": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.update\",\"params\":{\"defaultTaskViewPreset\":\"assigned\"}}"
|
||||
}
|
||||
],
|
||||
"c8c488b25f28": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.update"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"defaultTaskViewPreset": "assigned"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"de2d142b9c07": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.update"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"defaultTaskViewPreset": "assigned"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "outer refused"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"dfbe228314eb": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.update"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"defaultTaskViewPreset": "assigned"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"e02c44633084": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.update"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"defaultTaskViewPreset": "assigned"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"e4c31c436812": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.update"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"defaultTaskViewPreset": "assigned"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": "refused"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"fe2d291961f4": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.update"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"defaultTaskViewPreset": "assigned"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": {
|
||||
"message": "inner refused"
|
||||
},
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "matrix-settings-best-effort",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-task-write.prelude:optimistic",
|
||||
"observation": {
|
||||
"sender": "e02c44633084",
|
||||
"payloads": "c48c361670b0",
|
||||
"settlements": "a4cc6c82ee53",
|
||||
"state": "5db909d58c6f",
|
||||
"effects": "b26f6d594d62"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-write.normal:settled",
|
||||
"observation": {
|
||||
"sender": "a11ef678ac34",
|
||||
"payloads": "c48c361670b0",
|
||||
"settlements": "a4cc6c82ee53",
|
||||
"state": "5db909d58c6f",
|
||||
"effects": "b26f6d594d62"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-write.result-absent:settled",
|
||||
"observation": {
|
||||
"sender": "30dcc6c2791e",
|
||||
"payloads": "c48c361670b0",
|
||||
"settlements": "a4cc6c82ee53",
|
||||
"state": "5db909d58c6f",
|
||||
"effects": "b26f6d594d62"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-write.result-null:settled",
|
||||
"observation": {
|
||||
"sender": "c8c488b25f28",
|
||||
"payloads": "c48c361670b0",
|
||||
"settlements": "a4cc6c82ee53",
|
||||
"state": "5db909d58c6f",
|
||||
"effects": "b26f6d594d62"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-write.inner-ok-missing:settled",
|
||||
"observation": {
|
||||
"sender": "e4c31c436812",
|
||||
"payloads": "c48c361670b0",
|
||||
"settlements": "a4cc6c82ee53",
|
||||
"state": "5db909d58c6f",
|
||||
"effects": "b26f6d594d62"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-write.inner-false-string-error:settled",
|
||||
"observation": {
|
||||
"sender": "9c7e0ecdf09b",
|
||||
"payloads": "c48c361670b0",
|
||||
"settlements": "a4cc6c82ee53",
|
||||
"state": "5db909d58c6f",
|
||||
"effects": "b26f6d594d62"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-write.inner-false-object-error:settled",
|
||||
"observation": {
|
||||
"sender": "fe2d291961f4",
|
||||
"payloads": "c48c361670b0",
|
||||
"settlements": "a4cc6c82ee53",
|
||||
"state": "5db909d58c6f",
|
||||
"effects": "b26f6d594d62"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-write.outer-refused:settled",
|
||||
"observation": {
|
||||
"sender": "de2d142b9c07",
|
||||
"payloads": "c48c361670b0",
|
||||
"settlements": "a4cc6c82ee53",
|
||||
"state": "5db909d58c6f",
|
||||
"effects": "b26f6d594d62"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-write.method-not-found:settled",
|
||||
"observation": {
|
||||
"sender": "dfbe228314eb",
|
||||
"payloads": "c48c361670b0",
|
||||
"settlements": "a4cc6c82ee53",
|
||||
"state": "5db909d58c6f",
|
||||
"effects": "b26f6d594d62"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-write.transport-rejection:settled",
|
||||
"observation": {
|
||||
"sender": "86cae7d2eb05",
|
||||
"payloads": "c48c361670b0",
|
||||
"settlements": "a4cc6c82ee53",
|
||||
"state": "5db909d58c6f",
|
||||
"effects": "b26f6d594d62"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,496 @@
|
||||
{
|
||||
"operation": "settings.bot-overrides",
|
||||
"family": "settings.bot-overrides",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"0c7c10d0f1d4": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": "refused"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"35364e9332cb": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"3c782ee7b9a5": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": "inner refused",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"41b24c27cb2d": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"4f53cda18c2b": [],
|
||||
"5a6be9b97ba7": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"624fba4da33b": ["recorded-bot"],
|
||||
"6435848e9b34": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": {
|
||||
"message": "inner refused"
|
||||
},
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"9c753d3a11f2": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultLinearTeamSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultRepoSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultTaskSource": "github",
|
||||
"defaultTaskViewPreset": "all",
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"githubProjects": {},
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["recorded-bot"],
|
||||
"visibleTaskProviders": ["github"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"cd41018879b7": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "outer refused"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"f60b502aa33d": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "transport failure",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "matrix-settings.bot-overrides",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.prelude:settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.normal:settled",
|
||||
"observation": {
|
||||
"sender": "9c753d3a11f2",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "624fba4da33b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.result-absent:settled",
|
||||
"observation": {
|
||||
"sender": "5a6be9b97ba7",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.result-null:settled",
|
||||
"observation": {
|
||||
"sender": "41b24c27cb2d",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.inner-ok-missing:settled",
|
||||
"observation": {
|
||||
"sender": "0c7c10d0f1d4",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.inner-false-string-error:settled",
|
||||
"observation": {
|
||||
"sender": "3c782ee7b9a5",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.inner-false-object-error:settled",
|
||||
"observation": {
|
||||
"sender": "6435848e9b34",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.outer-refused:settled",
|
||||
"observation": {
|
||||
"sender": "cd41018879b7",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.method-not-found:settled",
|
||||
"observation": {
|
||||
"sender": "35364e9332cb",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-bot-overrides-fulfilled.transport-rejection:settled",
|
||||
"observation": {
|
||||
"sender": "f60b502aa33d",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,682 @@
|
||||
{
|
||||
"operation": "settings.task-workspace",
|
||||
"family": "settings.task-workspace",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0c7c10d0f1d4": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": "refused"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"235e65047685": {
|
||||
"creating": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"error": "Selected agent is disabled. Choose an enabled agent before creating.",
|
||||
"settings": {
|
||||
"defaultLinearTeamSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultRepoSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultTaskSource": "github",
|
||||
"defaultTaskViewPreset": "all",
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"githubProjects": {},
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["recorded-bot"],
|
||||
"visibleTaskProviders": ["github"]
|
||||
}
|
||||
},
|
||||
"236832733364": [
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": "linear:1"
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "workspaceAgent",
|
||||
"value": "codex"
|
||||
},
|
||||
{
|
||||
"name": "workspaceAgentOverridden",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": "Selected agent is disabled. Choose an enabled agent before creating."
|
||||
},
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
],
|
||||
"290a60cb44eb": [
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": "linear:1"
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "runtimeTaskSettings",
|
||||
"value": {
|
||||
"defaultLinearTeamSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultRepoSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultTaskSource": "github",
|
||||
"defaultTaskViewPreset": "all",
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"githubProjects": {},
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["recorded-bot"],
|
||||
"visibleTaskProviders": ["github"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "workspaceAgent",
|
||||
"value": "codex"
|
||||
},
|
||||
{
|
||||
"name": "workspaceAgentOverridden",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": "Selected agent is disabled. Choose an enabled agent before creating."
|
||||
},
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
],
|
||||
"35364e9332cb": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"3c782ee7b9a5": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": "inner refused",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"41b24c27cb2d": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"5a6be9b97ba7": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"6435848e9b34": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": {
|
||||
"message": "inner refused"
|
||||
},
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"6dfef4ef572b": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"7abdfe20af50": {
|
||||
"creating": "linear:1",
|
||||
"error": "",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"9c753d3a11f2": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultLinearTeamSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultRepoSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultTaskSource": "github",
|
||||
"defaultTaskViewPreset": "all",
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"githubProjects": {},
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["recorded-bot"],
|
||||
"visibleTaskProviders": ["github"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"adec34c2065c": {
|
||||
"creating": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"error": "",
|
||||
"settings": {}
|
||||
},
|
||||
"b05ebf557542": [
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": "linear:1"
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
}
|
||||
],
|
||||
"b4ddfb3cab99": [
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": "linear:1"
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "runtimeTaskSettings",
|
||||
"value": {}
|
||||
},
|
||||
{
|
||||
"name": "setupPrompt",
|
||||
"value": {
|
||||
"agentOverride": "claude",
|
||||
"command": "setup",
|
||||
"item": {
|
||||
"key": "linear:1",
|
||||
"provider": "linear",
|
||||
"source": {
|
||||
"id": "issue-1"
|
||||
}
|
||||
},
|
||||
"repoName": "Repo",
|
||||
"source": "repo"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
],
|
||||
"cd41018879b7": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "outer refused"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"d5df3f6b123a": {
|
||||
"creating": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"error": "Selected agent is disabled. Choose an enabled agent before creating.",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"f117d93cf44a": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
"f60b502aa33d": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "transport failure",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "matrix-settings.task-workspace",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-task-workspace-fulfilled.prelude:settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "f117d93cf44a",
|
||||
"state": "7abdfe20af50",
|
||||
"effects": "b05ebf557542"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-workspace-fulfilled.normal:settled",
|
||||
"observation": {
|
||||
"sender": "9c753d3a11f2",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "235e65047685",
|
||||
"effects": "290a60cb44eb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-workspace-fulfilled.result-absent:settled",
|
||||
"observation": {
|
||||
"sender": "5a6be9b97ba7",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "d5df3f6b123a",
|
||||
"effects": "236832733364"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-workspace-fulfilled.result-null:settled",
|
||||
"observation": {
|
||||
"sender": "41b24c27cb2d",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "d5df3f6b123a",
|
||||
"effects": "236832733364"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-workspace-fulfilled.inner-ok-missing:settled",
|
||||
"observation": {
|
||||
"sender": "0c7c10d0f1d4",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "adec34c2065c",
|
||||
"effects": "b4ddfb3cab99"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-workspace-fulfilled.inner-false-string-error:settled",
|
||||
"observation": {
|
||||
"sender": "3c782ee7b9a5",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "adec34c2065c",
|
||||
"effects": "b4ddfb3cab99"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-workspace-fulfilled.inner-false-object-error:settled",
|
||||
"observation": {
|
||||
"sender": "6435848e9b34",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "adec34c2065c",
|
||||
"effects": "b4ddfb3cab99"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-workspace-fulfilled.outer-refused:settled",
|
||||
"observation": {
|
||||
"sender": "cd41018879b7",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "d5df3f6b123a",
|
||||
"effects": "236832733364"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-workspace-fulfilled.method-not-found:settled",
|
||||
"observation": {
|
||||
"sender": "35364e9332cb",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "d5df3f6b123a",
|
||||
"effects": "236832733364"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-task-workspace-fulfilled.transport-rejection:settled",
|
||||
"observation": {
|
||||
"sender": "f60b502aa33d",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "d5df3f6b123a",
|
||||
"effects": "236832733364"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,739 @@
|
||||
{
|
||||
"operation": "settings.workspace-submit",
|
||||
"family": "settings.workspace-submit",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0e315dbfe7a8": [
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "selectedAgent",
|
||||
"value": {
|
||||
"id": "codex",
|
||||
"label": "Codex"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "agentOverridden",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": "Selected agent is disabled. Choose an enabled agent before creating."
|
||||
}
|
||||
],
|
||||
"13c996e4ec2b": {
|
||||
"creating": true,
|
||||
"error": "",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"19c5a22f57c5": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": "refused"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "worktree.create#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.create"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"createdWithAgent": "claude",
|
||||
"displayName": "recorded",
|
||||
"displayNameKind": "user",
|
||||
"name": "recorded",
|
||||
"repo": "id:repo-1",
|
||||
"setupDecision": "inherit",
|
||||
"startupAgent": "claude"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 600000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"20a67073e822": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "worktree.create#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.create\",\"params\":{\"repo\":\"id:repo-1\",\"setupDecision\":\"inherit\",\"name\":\"recorded\",\"displayName\":\"recorded\",\"displayNameKind\":\"user\",\"startupAgent\":\"claude\",\"createdWithAgent\":\"claude\"}}"
|
||||
}
|
||||
],
|
||||
"2e8e352c8dd1": {
|
||||
"creating": false,
|
||||
"error": "Selected agent is disabled. Choose an enabled agent before creating.",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"35364e9332cb": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"41b24c27cb2d": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"450706871c5d": [
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "runtimeSettings",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
],
|
||||
"4d460234095c": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": {
|
||||
"message": "inner refused"
|
||||
},
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "worktree.create#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.create"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"createdWithAgent": "claude",
|
||||
"displayName": "recorded",
|
||||
"displayNameKind": "user",
|
||||
"name": "recorded",
|
||||
"repo": "id:repo-1",
|
||||
"setupDecision": "inherit",
|
||||
"startupAgent": "claude"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 600000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"5a6be9b97ba7": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"6a24a7e95a3d": [
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "runtimeSettings",
|
||||
"value": {
|
||||
"defaultLinearTeamSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultRepoSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultTaskSource": "github",
|
||||
"defaultTaskViewPreset": "all",
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"githubProjects": {},
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["recorded-bot"],
|
||||
"visibleTaskProviders": ["github"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "selectedAgent",
|
||||
"value": {
|
||||
"id": "codex",
|
||||
"label": "Codex"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "agentOverridden",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": "Selected agent is disabled. Choose an enabled agent before creating."
|
||||
}
|
||||
],
|
||||
"6dfef4ef572b": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"7b1c9637063f": {
|
||||
"creating": true,
|
||||
"error": "",
|
||||
"settings": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"9c753d3a11f2": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultLinearTeamSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultRepoSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultTaskSource": "github",
|
||||
"defaultTaskViewPreset": "all",
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"githubProjects": {},
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["recorded-bot"],
|
||||
"visibleTaskProviders": ["github"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"b5bca9fe006b": {
|
||||
"creating": false,
|
||||
"error": "Selected agent is disabled. Choose an enabled agent before creating.",
|
||||
"settings": {
|
||||
"defaultLinearTeamSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultRepoSelection": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"defaultTaskSource": "github",
|
||||
"defaultTaskViewPreset": "all",
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"githubProjects": {},
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["recorded-bot"],
|
||||
"visibleTaskProviders": ["github"]
|
||||
}
|
||||
},
|
||||
"c0cb3df4feef": [
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
}
|
||||
],
|
||||
"cd41018879b7": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "outer refused"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"f117d93cf44a": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
"f60b502aa33d": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "transport failure",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"fa75111ee066": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": "inner refused",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "worktree.create#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.create"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"createdWithAgent": "claude",
|
||||
"displayName": "recorded",
|
||||
"displayNameKind": "user",
|
||||
"name": "recorded",
|
||||
"repo": "id:repo-1",
|
||||
"setupDecision": "inherit",
|
||||
"startupAgent": "claude"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 600000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "matrix-settings.workspace-submit",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-workspace-submit-fulfilled.prelude:settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "f117d93cf44a",
|
||||
"state": "13c996e4ec2b",
|
||||
"effects": "c0cb3df4feef"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-workspace-submit-fulfilled.normal:settled",
|
||||
"observation": {
|
||||
"sender": "9c753d3a11f2",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "b5bca9fe006b",
|
||||
"effects": "6a24a7e95a3d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-workspace-submit-fulfilled.result-absent:settled",
|
||||
"observation": {
|
||||
"sender": "5a6be9b97ba7",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "2e8e352c8dd1",
|
||||
"effects": "0e315dbfe7a8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-workspace-submit-fulfilled.result-null:settled",
|
||||
"observation": {
|
||||
"sender": "41b24c27cb2d",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "2e8e352c8dd1",
|
||||
"effects": "0e315dbfe7a8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-workspace-submit-fulfilled.inner-ok-missing:settled",
|
||||
"observation": {
|
||||
"sender": "19c5a22f57c5",
|
||||
"payloads": "20a67073e822",
|
||||
"settlements": "f117d93cf44a",
|
||||
"state": "7b1c9637063f",
|
||||
"effects": "450706871c5d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-workspace-submit-fulfilled.inner-false-string-error:settled",
|
||||
"observation": {
|
||||
"sender": "fa75111ee066",
|
||||
"payloads": "20a67073e822",
|
||||
"settlements": "f117d93cf44a",
|
||||
"state": "7b1c9637063f",
|
||||
"effects": "450706871c5d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-workspace-submit-fulfilled.inner-false-object-error:settled",
|
||||
"observation": {
|
||||
"sender": "4d460234095c",
|
||||
"payloads": "20a67073e822",
|
||||
"settlements": "f117d93cf44a",
|
||||
"state": "7b1c9637063f",
|
||||
"effects": "450706871c5d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-workspace-submit-fulfilled.outer-refused:settled",
|
||||
"observation": {
|
||||
"sender": "cd41018879b7",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "2e8e352c8dd1",
|
||||
"effects": "0e315dbfe7a8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-workspace-submit-fulfilled.method-not-found:settled",
|
||||
"observation": {
|
||||
"sender": "35364e9332cb",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "2e8e352c8dd1",
|
||||
"effects": "0e315dbfe7a8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settings-workspace-submit-fulfilled.transport-rejection:settled",
|
||||
"observation": {
|
||||
"sender": "f60b502aa33d",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "2e8e352c8dd1",
|
||||
"effects": "0e315dbfe7a8"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,991 @@
|
||||
{
|
||||
"operation": "linear.issue-detail",
|
||||
"family": "linear-detail-barrier",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"0b631657711f": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"linear.getIssue\",\"params\":{\"id\":\"issue-1\",\"workspaceId\":\"linear-workspace\"}}"
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"linear.issueComments\",\"params\":{\"issueId\":\"issue-1\",\"workspaceId\":\"linear-workspace\"}}"
|
||||
}
|
||||
],
|
||||
"24f3de063dfd": {
|
||||
"error": "linear.issueComments#1 rejected",
|
||||
"loading": false,
|
||||
"payload": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
"26c78123b573": [
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"2852f47712e0": [
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": "Request timed out: linear.getIssue"
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"3ab28be1560f": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.getIssue"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"id": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "linear.getIssue#1 rejected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.issueComments"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"issueId": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "linear.issueComments#1 rejected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"3edc657e906b": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.getIssue"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"id": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.issueComments"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"issueId": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "linear.issueComments#1 rejected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"42903545f0f8": {
|
||||
"error": "comments transport error",
|
||||
"loading": false,
|
||||
"payload": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
"606c2767b466": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.getIssue"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"id": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "Connection lost",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.issueComments"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"issueId": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "Connection lost",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"68d958edb978": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.getIssue"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"id": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "issue refused"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.issueComments"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"issueId": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"6c671f71ee89": [
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": "Connection lost"
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"6d65777cf6fe": [
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": "comments transport error"
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"77571e1166d2": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"disconnect": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"780aaf1d97be": {
|
||||
"error": "",
|
||||
"loading": true,
|
||||
"payload": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
"88573133f7d5": {
|
||||
"error": "RPC interrupted by connection migration",
|
||||
"loading": false,
|
||||
"payload": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
"8ba072374c63": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.getIssue"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"id": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 30000,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "Request timed out: linear.getIssue",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.issueComments"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"issueId": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 30000,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "Request timed out: linear.issueComments",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"8df6a469391c": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"cutover": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"a13282292b43": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.getIssue"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"id": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "LogicalClientCutoverError",
|
||||
"message": "RPC interrupted by connection migration",
|
||||
"isRpcDeliveryUnknown": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.issueComments"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"issueId": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "LogicalClientCutoverError",
|
||||
"message": "RPC interrupted by connection migration",
|
||||
"isRpcDeliveryUnknown": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"a778223fed77": {
|
||||
"error": "linear.getIssue#1 rejected",
|
||||
"loading": false,
|
||||
"payload": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
"b4cf0b80bf2a": [
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": "linear.issueComments#1 rejected"
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"b9b67d6bf2bb": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.getIssue"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"id": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.issueComments"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"issueId": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "comments transport error",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"cbf28b66143a": [
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": "RPC interrupted by connection migration"
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"ce1aa70ed814": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.getIssue"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"id": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "linear.getIssue#1 rejected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.issueComments"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"issueId": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"d004d139c7df": [
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "detailError",
|
||||
"value": "linear.getIssue#1 rejected"
|
||||
},
|
||||
{
|
||||
"name": "detailLoading",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"d40dd5c93d21": {
|
||||
"error": "Connection lost",
|
||||
"loading": false,
|
||||
"payload": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
"db6e863f7087": [
|
||||
{
|
||||
"name": "linear.getIssue#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.getIssue"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"id": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "issue refused"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.issueComments#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.issueComments"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"issueId": "issue-1",
|
||||
"workspaceId": "linear-workspace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "comments transport error",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"fc6d55bc97ed": {
|
||||
"error": "Request timed out: linear.getIssue",
|
||||
"loading": false,
|
||||
"payload": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "schedules-b3",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "b3.forward:sibling-pending",
|
||||
"observation": {
|
||||
"sender": "68d958edb978",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "780aaf1d97be",
|
||||
"effects": "26c78123b573"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b3.forward:settled",
|
||||
"observation": {
|
||||
"sender": "db6e863f7087",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "42903545f0f8",
|
||||
"effects": "6d65777cf6fe"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b3.reverse:sibling-pending",
|
||||
"observation": {
|
||||
"sender": "b9b67d6bf2bb",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "42903545f0f8",
|
||||
"effects": "6d65777cf6fe"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b3.reverse:settled",
|
||||
"observation": {
|
||||
"sender": "db6e863f7087",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "42903545f0f8",
|
||||
"effects": "6d65777cf6fe"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b3.both-reject-forward:sibling-pending",
|
||||
"observation": {
|
||||
"sender": "ce1aa70ed814",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "a778223fed77",
|
||||
"effects": "d004d139c7df"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b3.both-reject-forward:settled",
|
||||
"observation": {
|
||||
"sender": "3ab28be1560f",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "a778223fed77",
|
||||
"effects": "d004d139c7df"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b3.both-reject-reverse:sibling-pending",
|
||||
"observation": {
|
||||
"sender": "3edc657e906b",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "24f3de063dfd",
|
||||
"effects": "b4cf0b80bf2a"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b3.both-reject-reverse:settled",
|
||||
"observation": {
|
||||
"sender": "3ab28be1560f",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "24f3de063dfd",
|
||||
"effects": "b4cf0b80bf2a"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b3.reject-peer-pending:sibling-pending",
|
||||
"observation": {
|
||||
"sender": "ce1aa70ed814",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "a778223fed77",
|
||||
"effects": "d004d139c7df"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b3.reject-peer-pending:settled",
|
||||
"observation": {
|
||||
"sender": "ce1aa70ed814",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "a778223fed77",
|
||||
"effects": "d004d139c7df"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b3.timeout:settled",
|
||||
"observation": {
|
||||
"sender": "8ba072374c63",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "fc6d55bc97ed",
|
||||
"effects": "2852f47712e0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b3.disconnect:settled",
|
||||
"observation": {
|
||||
"sender": "606c2767b466",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "77571e1166d2",
|
||||
"state": "d40dd5c93d21",
|
||||
"effects": "6c671f71ee89"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b3.client-cutover:settled",
|
||||
"observation": {
|
||||
"sender": "a13282292b43",
|
||||
"payloads": "0b631657711f",
|
||||
"settlements": "8df6a469391c",
|
||||
"state": "88573133f7d5",
|
||||
"effects": "cbf28b66143a"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,126 @@
|
||||
{
|
||||
"operation": "settings.bot-overrides",
|
||||
"family": "settings.bot-overrides",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"4f53cda18c2b": [],
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"a7af6ac4ce05": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"d52c8e96e222": ["bot-user"]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-bot-overrides-fulfilled",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "a7af6ac4ce05",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "d52c8e96e222",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,315 @@
|
||||
{
|
||||
"operation": "settings.bot-overrides",
|
||||
"family": "settings.bot-overrides",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"1d4a2fa741de": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#2",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"4f53cda18c2b": [],
|
||||
"83bb868a6681": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "Settings refused"
|
||||
},
|
||||
"id": "frame-2",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"84155dde485f": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"a7af6ac4ce05": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"a7c491dcb172": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"refresh": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"d52c8e96e222": ["bot-user"]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-bot-overrides-refresh-refused",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "a7af6ac4ce05",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "d52c8e96e222",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "refresh-pending",
|
||||
"observation": {
|
||||
"sender": "84155dde485f",
|
||||
"payloads": "1d4a2fa741de",
|
||||
"settlements": "a7c491dcb172",
|
||||
"state": "d52c8e96e222",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "refused-retains-overrides",
|
||||
"observation": {
|
||||
"sender": "83bb868a6681",
|
||||
"payloads": "1d4a2fa741de",
|
||||
"settlements": "a7c491dcb172",
|
||||
"state": "d52c8e96e222",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"operation": "settings.bot-overrides",
|
||||
"family": "settings.bot-overrides",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"16043f76be6c": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "settings refused"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"4f53cda18c2b": [],
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-bot-overrides-refused",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "16043f76be6c",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
{
|
||||
"operation": "settings.bot-overrides",
|
||||
"family": "settings.bot-overrides",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"4f53cda18c2b": [],
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"d069f81df435": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "settings disconnected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-bot-overrides-transport-error",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "d069f81df435",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "4f53cda18c2b",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,977 @@
|
||||
{
|
||||
"operation": "settings.home-providers",
|
||||
"family": "settings.home-providers",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"13d58e42ea1c": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
}
|
||||
],
|
||||
"1476fcb5bc03": [
|
||||
{
|
||||
"name": "providers",
|
||||
"value": {
|
||||
"host-1": ["github"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "providers",
|
||||
"value": {
|
||||
"host-1": ["github"]
|
||||
}
|
||||
}
|
||||
],
|
||||
"31e52986b3e4": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#2",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#2",
|
||||
"json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#2",
|
||||
"json": "{\"id\":\"frame-6\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#3",
|
||||
"json": "{\"id\":\"frame-7\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#3",
|
||||
"json": "{\"id\":\"frame-8\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#3",
|
||||
"json": "{\"id\":\"frame-9\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
}
|
||||
],
|
||||
"40b162c1b21a": [
|
||||
{
|
||||
"name": "providers",
|
||||
"value": {
|
||||
"host-1": ["github"]
|
||||
}
|
||||
}
|
||||
],
|
||||
"44136fa355b3": {},
|
||||
"4f53cda18c2b": [],
|
||||
"780ac4cd0c2f": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"79b8c1b0d1d1": {
|
||||
"host-1": ["github"]
|
||||
},
|
||||
"8792ba235e35": {
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"overlapping-load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"third-load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"9c0b1bcf8ef1": {
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"overlapping-load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aa599367ba4b": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-5",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-6",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"d1e42a0a312d": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#2",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#2",
|
||||
"json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#2",
|
||||
"json": "{\"id\":\"frame-6\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
}
|
||||
],
|
||||
"d6e8453528de": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"e7049095b2b6": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-5",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-6",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#3",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#3",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#3",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-home-coalesced",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "780ac4cd0c2f",
|
||||
"payloads": "13d58e42ea1c",
|
||||
"settlements": "9c0b1bcf8ef1",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "d6e8453528de",
|
||||
"payloads": "d1e42a0a312d",
|
||||
"settlements": "9c0b1bcf8ef1",
|
||||
"state": "79b8c1b0d1d1",
|
||||
"effects": "40b162c1b21a"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "follow-up-settled",
|
||||
"observation": {
|
||||
"sender": "aa599367ba4b",
|
||||
"payloads": "d1e42a0a312d",
|
||||
"settlements": "9c0b1bcf8ef1",
|
||||
"state": "79b8c1b0d1d1",
|
||||
"effects": "1476fcb5bc03"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "third-query",
|
||||
"observation": {
|
||||
"sender": "e7049095b2b6",
|
||||
"payloads": "31e52986b3e4",
|
||||
"settlements": "8792ba235e35",
|
||||
"state": "79b8c1b0d1d1",
|
||||
"effects": "1476fcb5bc03"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,263 @@
|
||||
{
|
||||
"operation": "settings.home-providers",
|
||||
"family": "settings.home-providers",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"13d58e42ea1c": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
}
|
||||
],
|
||||
"3b52deb98f39": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"40b162c1b21a": [
|
||||
{
|
||||
"name": "providers",
|
||||
"value": {
|
||||
"host-1": ["github"]
|
||||
}
|
||||
}
|
||||
],
|
||||
"44136fa355b3": {},
|
||||
"4f53cda18c2b": [],
|
||||
"50274b2889df": {
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"780ac4cd0c2f": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"79b8c1b0d1d1": {
|
||||
"host-1": ["github"]
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-home-providers-fulfilled",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "780ac4cd0c2f",
|
||||
"payloads": "13d58e42ea1c",
|
||||
"settlements": "50274b2889df",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "3b52deb98f39",
|
||||
"payloads": "13d58e42ea1c",
|
||||
"settlements": "50274b2889df",
|
||||
"state": "79b8c1b0d1d1",
|
||||
"effects": "40b162c1b21a"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,258 @@
|
||||
{
|
||||
"operation": "settings.home-providers",
|
||||
"family": "settings.home-providers",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"13d58e42ea1c": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
}
|
||||
],
|
||||
"40b162c1b21a": [
|
||||
{
|
||||
"name": "providers",
|
||||
"value": {
|
||||
"host-1": ["github"]
|
||||
}
|
||||
}
|
||||
],
|
||||
"44136fa355b3": {},
|
||||
"4f53cda18c2b": [],
|
||||
"50274b2889df": {
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"780ac4cd0c2f": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"79b8c1b0d1d1": {
|
||||
"host-1": ["github"]
|
||||
},
|
||||
"b6fb70e7de43": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "settings refused"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-home-providers-refused",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "780ac4cd0c2f",
|
||||
"payloads": "13d58e42ea1c",
|
||||
"settlements": "50274b2889df",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "b6fb70e7de43",
|
||||
"payloads": "13d58e42ea1c",
|
||||
"settlements": "50274b2889df",
|
||||
"state": "79b8c1b0d1d1",
|
||||
"effects": "40b162c1b21a"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,255 @@
|
||||
{
|
||||
"operation": "settings.home-providers",
|
||||
"family": "settings.home-providers",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"13326bd872a6": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "settings disconnected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"13d58e42ea1c": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
}
|
||||
],
|
||||
"40b162c1b21a": [
|
||||
{
|
||||
"name": "providers",
|
||||
"value": {
|
||||
"host-1": ["github"]
|
||||
}
|
||||
}
|
||||
],
|
||||
"44136fa355b3": {},
|
||||
"4f53cda18c2b": [],
|
||||
"50274b2889df": {
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"780ac4cd0c2f": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"79b8c1b0d1d1": {
|
||||
"host-1": ["github"]
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-home-providers-transport-error",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "780ac4cd0c2f",
|
||||
"payloads": "13d58e42ea1c",
|
||||
"settlements": "50274b2889df",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "13326bd872a6",
|
||||
"payloads": "13d58e42ea1c",
|
||||
"settlements": "50274b2889df",
|
||||
"state": "79b8c1b0d1d1",
|
||||
"effects": "40b162c1b21a"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,241 @@
|
||||
{
|
||||
"operation": "settings.new-tab-agents",
|
||||
"family": "settings-agent-read",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"155ff7f445b7": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"16de1d62c270": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": [
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"id": "repo-1"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "settings refused"
|
||||
},
|
||||
"id": "frame-2",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.detectRemoteAgents#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.detectRemoteAgents"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"connectionId": "ssh-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": ["codex", "claude"]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"274355646d54": {
|
||||
"load": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "settings refused",
|
||||
"isRpcDeliveryUnknown": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"3076d0a13ab4": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"44136fa355b3": {},
|
||||
"4f53cda18c2b": [],
|
||||
"503a535a0cd0": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.detectRemoteAgents#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectRemoteAgents\",\"params\":{\"connectionId\":\"ssh-1\"}}"
|
||||
}
|
||||
],
|
||||
"b11c8efab170": {
|
||||
"load": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-new-tab-refused",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "pending",
|
||||
"observation": {
|
||||
"sender": "155ff7f445b7",
|
||||
"payloads": "3076d0a13ab4",
|
||||
"settlements": "b11c8efab170",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "16de1d62c270",
|
||||
"payloads": "503a535a0cd0",
|
||||
"settlements": "274355646d54",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,248 @@
|
||||
{
|
||||
"operation": "settings.new-tab-agents",
|
||||
"family": "settings-agent-read",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"08dec2e70517": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": [
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"id": "repo-1"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.detectRemoteAgents#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.detectRemoteAgents"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"connectionId": "ssh-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": ["codex", "claude"]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"155ff7f445b7": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"3076d0a13ab4": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"44136fa355b3": {},
|
||||
"4990c034cddd": {
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": [
|
||||
{
|
||||
"agent": "codex",
|
||||
"label": "Codex"
|
||||
},
|
||||
{
|
||||
"agent": "claude",
|
||||
"label": "Claude"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"4f53cda18c2b": [],
|
||||
"503a535a0cd0": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.detectRemoteAgents#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectRemoteAgents\",\"params\":{\"connectionId\":\"ssh-1\"}}"
|
||||
}
|
||||
],
|
||||
"b11c8efab170": {
|
||||
"load": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-new-tab-ssh",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "pending",
|
||||
"observation": {
|
||||
"sender": "155ff7f445b7",
|
||||
"payloads": "3076d0a13ab4",
|
||||
"settlements": "b11c8efab170",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "08dec2e70517",
|
||||
"payloads": "503a535a0cd0",
|
||||
"settlements": "4990c034cddd",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,238 @@
|
||||
{
|
||||
"operation": "settings.new-tab-agents",
|
||||
"family": "settings-agent-read",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"155ff7f445b7": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"3076d0a13ab4": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"44136fa355b3": {},
|
||||
"4f53cda18c2b": [],
|
||||
"503a535a0cd0": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.detectRemoteAgents#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectRemoteAgents\",\"params\":{\"connectionId\":\"ssh-1\"}}"
|
||||
}
|
||||
],
|
||||
"b11c8efab170": {
|
||||
"load": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
"d309fe89b198": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": [
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"id": "repo-1"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "settings disconnected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.detectRemoteAgents#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.detectRemoteAgents"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"connectionId": "ssh-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": ["codex", "claude"]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"ddae1d634b3e": {
|
||||
"load": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "settings disconnected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-new-tab-transport-error",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "pending",
|
||||
"observation": {
|
||||
"sender": "155ff7f445b7",
|
||||
"payloads": "3076d0a13ab4",
|
||||
"settlements": "b11c8efab170",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "d309fe89b198",
|
||||
"payloads": "503a535a0cd0",
|
||||
"settlements": "ddae1d634b3e",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,811 @@
|
||||
{
|
||||
"operation": "settings.repo-metadata",
|
||||
"family": "settings.repo-metadata",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"071880b671a1": {
|
||||
"hostLabelById": [["ssh:ssh-1", "SSH"]],
|
||||
"hostPlatform": "linux",
|
||||
"repoColorsByName": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
],
|
||||
"repoHostIdByRepoId": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
],
|
||||
"repoIconsByName": [],
|
||||
"repoIdsByName": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
"0837485f8127": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": [
|
||||
{
|
||||
"connectionId": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"displayName": "Local",
|
||||
"id": "repo-1"
|
||||
},
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"displayName": "Remote",
|
||||
"id": "repo-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ssh.listTargetSummaries"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"targets": [
|
||||
{
|
||||
"id": "ssh-1",
|
||||
"label": "SSH"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "host.platform"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"0f10f753b645": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"cached-query": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"26ce47c562c3": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.listTargetSummaries\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"host.platform\"}"
|
||||
},
|
||||
{
|
||||
"name": "repo.list#2",
|
||||
"json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
}
|
||||
],
|
||||
"2bf0f26c9185": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"3d1e2998e81c": [
|
||||
{
|
||||
"name": "repoColorsByName",
|
||||
"value": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoIconsByName",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "repoIdsByName",
|
||||
"value": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoHostIdByRepoId",
|
||||
"value": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
]
|
||||
}
|
||||
],
|
||||
"6134b73f18d0": {
|
||||
"repoColorsByName": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
],
|
||||
"repoHostIdByRepoId": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
],
|
||||
"repoIconsByName": [],
|
||||
"repoIdsByName": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
"6c2fa8796498": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"cached-query": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"warm-query": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 59000,
|
||||
"settledAt": 59000,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"83ef5f7039bf": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.listTargetSummaries\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"host.platform\"}"
|
||||
}
|
||||
],
|
||||
"8dff1fd17ddc": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": [
|
||||
{
|
||||
"connectionId": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"displayName": "Local",
|
||||
"id": "repo-1"
|
||||
},
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"displayName": "Remote",
|
||||
"id": "repo-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ssh.listTargetSummaries"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"targets": [
|
||||
{
|
||||
"id": "ssh-1",
|
||||
"label": "SSH"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "host.platform"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"platform": "linux"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "repo.list#2",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 60000
|
||||
}
|
||||
}
|
||||
],
|
||||
"cff69ce01bb1": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"cached-query": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"warm-query": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 59000,
|
||||
"settledAt": 59000,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"expired-query": {
|
||||
"status": "pending",
|
||||
"startedAt": 60000
|
||||
}
|
||||
},
|
||||
"d90e99979f09": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": [
|
||||
{
|
||||
"connectionId": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"displayName": "Local",
|
||||
"id": "repo-1"
|
||||
},
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"displayName": "Remote",
|
||||
"id": "repo-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ssh.listTargetSummaries"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"targets": [
|
||||
{
|
||||
"id": "ssh-1",
|
||||
"label": "SSH"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "host.platform"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"platform": "linux"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"e91286279b33": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
"ec7bb9cef277": [
|
||||
{
|
||||
"name": "repoColorsByName",
|
||||
"value": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoIconsByName",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "repoIdsByName",
|
||||
"value": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoHostIdByRepoId",
|
||||
"value": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "hostLabelById",
|
||||
"value": [["ssh:ssh-1", "SSH"]]
|
||||
},
|
||||
{
|
||||
"name": "hostPlatform",
|
||||
"value": "linux"
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-repo-cache-expiry",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "0837485f8127",
|
||||
"payloads": "83ef5f7039bf",
|
||||
"settlements": "e91286279b33",
|
||||
"state": "6134b73f18d0",
|
||||
"effects": "3d1e2998e81c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "d90e99979f09",
|
||||
"payloads": "83ef5f7039bf",
|
||||
"settlements": "2bf0f26c9185",
|
||||
"state": "071880b671a1",
|
||||
"effects": "ec7bb9cef277"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "cache-hit",
|
||||
"observation": {
|
||||
"sender": "d90e99979f09",
|
||||
"payloads": "83ef5f7039bf",
|
||||
"settlements": "0f10f753b645",
|
||||
"state": "071880b671a1",
|
||||
"effects": "ec7bb9cef277"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "cache-warm",
|
||||
"observation": {
|
||||
"sender": "d90e99979f09",
|
||||
"payloads": "83ef5f7039bf",
|
||||
"settlements": "6c2fa8796498",
|
||||
"state": "071880b671a1",
|
||||
"effects": "ec7bb9cef277"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "cache-expired",
|
||||
"observation": {
|
||||
"sender": "8dff1fd17ddc",
|
||||
"payloads": "26ce47c562c3",
|
||||
"settlements": "cff69ce01bb1",
|
||||
"state": "071880b671a1",
|
||||
"effects": "ec7bb9cef277"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,478 @@
|
||||
{
|
||||
"operation": "settings.repo-metadata",
|
||||
"family": "settings.repo-metadata",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"071880b671a1": {
|
||||
"hostLabelById": [["ssh:ssh-1", "SSH"]],
|
||||
"hostPlatform": "linux",
|
||||
"repoColorsByName": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
],
|
||||
"repoHostIdByRepoId": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
],
|
||||
"repoIconsByName": [],
|
||||
"repoIdsByName": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
"0837485f8127": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": [
|
||||
{
|
||||
"connectionId": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"displayName": "Local",
|
||||
"id": "repo-1"
|
||||
},
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"displayName": "Remote",
|
||||
"id": "repo-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ssh.listTargetSummaries"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"targets": [
|
||||
{
|
||||
"id": "ssh-1",
|
||||
"label": "SSH"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "host.platform"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"2bf0f26c9185": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"3d1e2998e81c": [
|
||||
{
|
||||
"name": "repoColorsByName",
|
||||
"value": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoIconsByName",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "repoIdsByName",
|
||||
"value": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoHostIdByRepoId",
|
||||
"value": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
]
|
||||
}
|
||||
],
|
||||
"6134b73f18d0": {
|
||||
"repoColorsByName": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
],
|
||||
"repoHostIdByRepoId": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
],
|
||||
"repoIconsByName": [],
|
||||
"repoIdsByName": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
"83ef5f7039bf": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.listTargetSummaries\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"host.platform\"}"
|
||||
}
|
||||
],
|
||||
"d90e99979f09": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": [
|
||||
{
|
||||
"connectionId": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"displayName": "Local",
|
||||
"id": "repo-1"
|
||||
},
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"displayName": "Remote",
|
||||
"id": "repo-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ssh.listTargetSummaries"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"targets": [
|
||||
{
|
||||
"id": "ssh-1",
|
||||
"label": "SSH"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "host.platform"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"platform": "linux"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"e91286279b33": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
"ec7bb9cef277": [
|
||||
{
|
||||
"name": "repoColorsByName",
|
||||
"value": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoIconsByName",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "repoIdsByName",
|
||||
"value": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoHostIdByRepoId",
|
||||
"value": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "hostLabelById",
|
||||
"value": [["ssh:ssh-1", "SSH"]]
|
||||
},
|
||||
{
|
||||
"name": "hostPlatform",
|
||||
"value": "linux"
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-repo-metadata-fulfilled",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "0837485f8127",
|
||||
"payloads": "83ef5f7039bf",
|
||||
"settlements": "e91286279b33",
|
||||
"state": "6134b73f18d0",
|
||||
"effects": "3d1e2998e81c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "d90e99979f09",
|
||||
"payloads": "83ef5f7039bf",
|
||||
"settlements": "2bf0f26c9185",
|
||||
"state": "071880b671a1",
|
||||
"effects": "ec7bb9cef277"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,473 @@
|
||||
{
|
||||
"operation": "settings.repo-metadata",
|
||||
"family": "settings.repo-metadata",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"071880b671a1": {
|
||||
"hostLabelById": [["ssh:ssh-1", "SSH"]],
|
||||
"hostPlatform": "linux",
|
||||
"repoColorsByName": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
],
|
||||
"repoHostIdByRepoId": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
],
|
||||
"repoIconsByName": [],
|
||||
"repoIdsByName": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
"0837485f8127": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": [
|
||||
{
|
||||
"connectionId": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"displayName": "Local",
|
||||
"id": "repo-1"
|
||||
},
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"displayName": "Remote",
|
||||
"id": "repo-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ssh.listTargetSummaries"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"targets": [
|
||||
{
|
||||
"id": "ssh-1",
|
||||
"label": "SSH"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "host.platform"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"2bf0f26c9185": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"3d1e2998e81c": [
|
||||
{
|
||||
"name": "repoColorsByName",
|
||||
"value": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoIconsByName",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "repoIdsByName",
|
||||
"value": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoHostIdByRepoId",
|
||||
"value": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
]
|
||||
}
|
||||
],
|
||||
"6134b73f18d0": {
|
||||
"repoColorsByName": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
],
|
||||
"repoHostIdByRepoId": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
],
|
||||
"repoIconsByName": [],
|
||||
"repoIdsByName": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
"83ef5f7039bf": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.listTargetSummaries\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"host.platform\"}"
|
||||
}
|
||||
],
|
||||
"e91286279b33": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
"ec7bb9cef277": [
|
||||
{
|
||||
"name": "repoColorsByName",
|
||||
"value": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoIconsByName",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "repoIdsByName",
|
||||
"value": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoHostIdByRepoId",
|
||||
"value": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "hostLabelById",
|
||||
"value": [["ssh:ssh-1", "SSH"]]
|
||||
},
|
||||
{
|
||||
"name": "hostPlatform",
|
||||
"value": "linux"
|
||||
}
|
||||
],
|
||||
"fc6ef6e9b0c0": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": [
|
||||
{
|
||||
"connectionId": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"displayName": "Local",
|
||||
"id": "repo-1"
|
||||
},
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"displayName": "Remote",
|
||||
"id": "repo-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ssh.listTargetSummaries"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"targets": [
|
||||
{
|
||||
"id": "ssh-1",
|
||||
"label": "SSH"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "settings refused"
|
||||
},
|
||||
"id": "frame-3",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "host.platform"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"platform": "linux"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-repo-metadata-refused",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "0837485f8127",
|
||||
"payloads": "83ef5f7039bf",
|
||||
"settlements": "e91286279b33",
|
||||
"state": "6134b73f18d0",
|
||||
"effects": "3d1e2998e81c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "fc6ef6e9b0c0",
|
||||
"payloads": "83ef5f7039bf",
|
||||
"settlements": "2bf0f26c9185",
|
||||
"state": "071880b671a1",
|
||||
"effects": "ec7bb9cef277"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
{
|
||||
"operation": "settings.repo-metadata",
|
||||
"family": "settings.repo-metadata",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"2bd489a9fa29": {
|
||||
"repoColorsByName": [
|
||||
["Remote", "#f97316"],
|
||||
["Remote folder", "#ec4899"]
|
||||
],
|
||||
"repoHostIdByRepoId": [
|
||||
["repo-1", "ssh:ssh-1"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
],
|
||||
"repoIconsByName": [],
|
||||
"repoIdsByName": [
|
||||
["Remote", "repo-1"],
|
||||
["Remote folder", "repo-2"]
|
||||
]
|
||||
},
|
||||
"2bf0f26c9185": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"3af5a7c8dbf8": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": [
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"displayName": "Remote",
|
||||
"id": "repo-1"
|
||||
},
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"displayName": "Remote folder",
|
||||
"id": "repo-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"5e0c4a6ec80d": [
|
||||
{
|
||||
"name": "repoColorsByName",
|
||||
"value": [
|
||||
["Remote", "#f97316"],
|
||||
["Remote folder", "#ec4899"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoIconsByName",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "repoIdsByName",
|
||||
"value": [
|
||||
["Remote", "repo-1"],
|
||||
["Remote folder", "repo-2"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoHostIdByRepoId",
|
||||
"value": [
|
||||
["repo-1", "ssh:ssh-1"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
]
|
||||
}
|
||||
],
|
||||
"8442ee22b3fc": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-repo-metadata-single-host",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "single-host-without-label-lookups",
|
||||
"observation": {
|
||||
"sender": "3af5a7c8dbf8",
|
||||
"payloads": "8442ee22b3fc",
|
||||
"settlements": "2bf0f26c9185",
|
||||
"state": "2bd489a9fa29",
|
||||
"effects": "5e0c4a6ec80d"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,470 @@
|
||||
{
|
||||
"operation": "settings.repo-metadata",
|
||||
"family": "settings.repo-metadata",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"071880b671a1": {
|
||||
"hostLabelById": [["ssh:ssh-1", "SSH"]],
|
||||
"hostPlatform": "linux",
|
||||
"repoColorsByName": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
],
|
||||
"repoHostIdByRepoId": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
],
|
||||
"repoIconsByName": [],
|
||||
"repoIdsByName": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
"0837485f8127": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": [
|
||||
{
|
||||
"connectionId": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"displayName": "Local",
|
||||
"id": "repo-1"
|
||||
},
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"displayName": "Remote",
|
||||
"id": "repo-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ssh.listTargetSummaries"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"targets": [
|
||||
{
|
||||
"id": "ssh-1",
|
||||
"label": "SSH"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "host.platform"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"148d92080e35": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": [
|
||||
{
|
||||
"connectionId": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"displayName": "Local",
|
||||
"id": "repo-1"
|
||||
},
|
||||
{
|
||||
"connectionId": "ssh-1",
|
||||
"displayName": "Remote",
|
||||
"id": "repo-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ssh.listTargetSummaries"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"targets": [
|
||||
{
|
||||
"id": "ssh-1",
|
||||
"label": "SSH"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "settings disconnected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "host.platform"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"platform": "linux"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"2bf0f26c9185": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"3d1e2998e81c": [
|
||||
{
|
||||
"name": "repoColorsByName",
|
||||
"value": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoIconsByName",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "repoIdsByName",
|
||||
"value": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoHostIdByRepoId",
|
||||
"value": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
]
|
||||
}
|
||||
],
|
||||
"6134b73f18d0": {
|
||||
"repoColorsByName": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
],
|
||||
"repoHostIdByRepoId": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
],
|
||||
"repoIconsByName": [],
|
||||
"repoIdsByName": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
"83ef5f7039bf": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "ssh.listTargetSummaries#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.listTargetSummaries\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "host.platform#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"host.platform\"}"
|
||||
}
|
||||
],
|
||||
"e91286279b33": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
"ec7bb9cef277": [
|
||||
{
|
||||
"name": "repoColorsByName",
|
||||
"value": [
|
||||
["Local", "#6366f1"],
|
||||
["Remote", "#f97316"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoIconsByName",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "repoIdsByName",
|
||||
"value": [
|
||||
["Local", "repo-1"],
|
||||
["Remote", "repo-2"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "repoHostIdByRepoId",
|
||||
"value": [
|
||||
["repo-1", "local"],
|
||||
["repo-2", "ssh:ssh-1"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "hostLabelById",
|
||||
"value": [["ssh:ssh-1", "SSH"]]
|
||||
},
|
||||
{
|
||||
"name": "hostPlatform",
|
||||
"value": "linux"
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-repo-metadata-transport-error",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "0837485f8127",
|
||||
"payloads": "83ef5f7039bf",
|
||||
"settlements": "e91286279b33",
|
||||
"state": "6134b73f18d0",
|
||||
"effects": "3d1e2998e81c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "148d92080e35",
|
||||
"payloads": "83ef5f7039bf",
|
||||
"settlements": "2bf0f26c9185",
|
||||
"state": "071880b671a1",
|
||||
"effects": "ec7bb9cef277"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,414 @@
|
||||
{
|
||||
"operation": "settings.resume-metadata",
|
||||
"family": "settings.resume-metadata",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"1f0e36a0a4b5": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "folderWorkspace.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "folderWorkspace.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"folderWorkspaces": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectGroup.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "projectGroup.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"groups": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "worktree.ps#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.ps"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 10000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"44136fa355b3": {},
|
||||
"4f53cda18c2b": [],
|
||||
"65c557da4079": {
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"folderWorkspaces": [],
|
||||
"projectGroups": [],
|
||||
"repos": [],
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
},
|
||||
"worktrees": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"7c1aad2b38f8": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "folderWorkspace.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "folderWorkspace.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"folderWorkspaces": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectGroup.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "projectGroup.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"groups": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "worktree.ps#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.ps"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 10000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-5",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"worktrees": []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"979c190bfe01": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "folderWorkspace.list#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"folderWorkspace.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "projectGroup.list#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"projectGroup.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "worktree.ps#1",
|
||||
"json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.ps\",\"params\":{\"limit\":10000,\"supportsWorktreeVisibilitySourceDefaults\":true}}"
|
||||
}
|
||||
],
|
||||
"b11c8efab170": {
|
||||
"load": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-resume-metadata-fulfilled",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f0e36a0a4b5",
|
||||
"payloads": "979c190bfe01",
|
||||
"settlements": "b11c8efab170",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "7c1aad2b38f8",
|
||||
"payloads": "979c190bfe01",
|
||||
"settlements": "65c557da4079",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,405 @@
|
||||
{
|
||||
"operation": "settings.resume-metadata",
|
||||
"family": "settings.resume-metadata",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"111461dd9433": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "folderWorkspace.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "folderWorkspace.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"folderWorkspaces": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectGroup.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "projectGroup.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"groups": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "settings refused"
|
||||
},
|
||||
"id": "frame-4",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "worktree.ps#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.ps"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 10000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-5",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"worktrees": []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"1f0e36a0a4b5": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "folderWorkspace.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "folderWorkspace.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"folderWorkspaces": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectGroup.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "projectGroup.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"groups": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "worktree.ps#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.ps"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 10000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"44136fa355b3": {},
|
||||
"4ef7f873c93e": {
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"folderWorkspaces": [],
|
||||
"projectGroups": [],
|
||||
"repos": [],
|
||||
"settings": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"worktrees": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"4f53cda18c2b": [],
|
||||
"979c190bfe01": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "folderWorkspace.list#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"folderWorkspace.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "projectGroup.list#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"projectGroup.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "worktree.ps#1",
|
||||
"json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.ps\",\"params\":{\"limit\":10000,\"supportsWorktreeVisibilitySourceDefaults\":true}}"
|
||||
}
|
||||
],
|
||||
"b11c8efab170": {
|
||||
"load": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-resume-metadata-refused",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f0e36a0a4b5",
|
||||
"payloads": "979c190bfe01",
|
||||
"settlements": "b11c8efab170",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "111461dd9433",
|
||||
"payloads": "979c190bfe01",
|
||||
"settlements": "4ef7f873c93e",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,402 @@
|
||||
{
|
||||
"operation": "settings.resume-metadata",
|
||||
"family": "settings.resume-metadata",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"059fe1eb42cb": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "folderWorkspace.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "folderWorkspace.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"folderWorkspaces": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectGroup.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "projectGroup.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"groups": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "settings disconnected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "worktree.ps#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.ps"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 10000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-5",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"worktrees": []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"1f0e36a0a4b5": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "repo.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"repos": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "folderWorkspace.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "folderWorkspace.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"folderWorkspaces": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectGroup.list#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "projectGroup.list"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"groups": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "worktree.ps#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.ps"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"limit": 10000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"timeoutMs": 30000
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"44136fa355b3": {},
|
||||
"4ef7f873c93e": {
|
||||
"load": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"folderWorkspaces": [],
|
||||
"projectGroups": [],
|
||||
"repos": [],
|
||||
"settings": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"worktrees": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"4f53cda18c2b": [],
|
||||
"979c190bfe01": [
|
||||
{
|
||||
"name": "repo.list#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "folderWorkspace.list#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"folderWorkspace.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "projectGroup.list#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"projectGroup.list\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "worktree.ps#1",
|
||||
"json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.ps\",\"params\":{\"limit\":10000,\"supportsWorktreeVisibilitySourceDefaults\":true}}"
|
||||
}
|
||||
],
|
||||
"b11c8efab170": {
|
||||
"load": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-resume-metadata-transport-error",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f0e36a0a4b5",
|
||||
"payloads": "979c190bfe01",
|
||||
"settlements": "b11c8efab170",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "059fe1eb42cb",
|
||||
"payloads": "979c190bfe01",
|
||||
"settlements": "4ef7f873c93e",
|
||||
"state": "44136fa355b3",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,875 @@
|
||||
{
|
||||
"operation": "settings.task-hydration",
|
||||
"family": "settings.task-hydration",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"4345d70c756e": [
|
||||
{
|
||||
"name": "status.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"status.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"ui.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
}
|
||||
],
|
||||
"58c52d8b7c76": {
|
||||
"hydrated": true,
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
},
|
||||
"5a9cc1957824": [
|
||||
{
|
||||
"name": "status.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "status.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"capabilities": ["mobile.tasks.v1"]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ui.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ui": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-5",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"8574a5791dce": [
|
||||
{
|
||||
"name": "taskStateHydrated",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "tasksSupportState",
|
||||
"value": {
|
||||
"client": "logical-client",
|
||||
"kind": "unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "showLinearWorkspacePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearTeamPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearGroupPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearOrderPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearDisplayPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearConnect",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showProviderPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubKindPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubPresetPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitLabViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitLabFilterPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearFilterPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showSortPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showRepoPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubIssueSourcePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubPagePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectSortPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectFieldsPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "pendingGitHubProjectViewSelection",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "actionItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRowItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRepoNotInOrca",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetail",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "showCreateTask",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showCreateTargetPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "linearStatusPickerItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingHostedMerge",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingProjectGitHubMerge",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingHostedStateChange",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mergeMethodTaskItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mergeMethodProjectRow",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "reset-workspace",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tasksSupportState",
|
||||
"value": {
|
||||
"client": "logical-client",
|
||||
"kind": "supported"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "runtimeTaskSettings",
|
||||
"value": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "trustedOrcaHooks",
|
||||
"value": {}
|
||||
},
|
||||
{
|
||||
"name": "githubProjectHiddenFieldIdsByView",
|
||||
"value": {}
|
||||
},
|
||||
{
|
||||
"name": "linearConnected",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "linearWorkspaces",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "linearTeams",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "selectedLinearTeamIds",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "selectedLinearWorkspaceId",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "visibleProviders",
|
||||
"value": ["github", "linear"]
|
||||
},
|
||||
{
|
||||
"name": "provider",
|
||||
"value": "github"
|
||||
},
|
||||
{
|
||||
"name": "githubMode",
|
||||
"value": "items"
|
||||
},
|
||||
{
|
||||
"name": "defaultGitHubPreset",
|
||||
"value": "issues"
|
||||
},
|
||||
{
|
||||
"name": "githubPreset",
|
||||
"value": "issues"
|
||||
},
|
||||
{
|
||||
"name": "githubKind",
|
||||
"value": "issues"
|
||||
},
|
||||
{
|
||||
"name": "linearFilter",
|
||||
"value": "all"
|
||||
},
|
||||
{
|
||||
"name": "githubProjectSettings",
|
||||
"value": {
|
||||
"activeProject": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"lastViewByProject": {},
|
||||
"pinned": [],
|
||||
"recent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "query",
|
||||
"value": "is:issue is:open"
|
||||
},
|
||||
{
|
||||
"name": "appliedQuery",
|
||||
"value": "is:issue is:open"
|
||||
},
|
||||
{
|
||||
"name": "taskStateHydrated",
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"c3f33d88e338": [
|
||||
{
|
||||
"name": "taskStateHydrated",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "tasksSupportState",
|
||||
"value": {
|
||||
"client": "logical-client",
|
||||
"kind": "unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "showLinearWorkspacePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearTeamPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearGroupPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearOrderPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearDisplayPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearConnect",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showProviderPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubKindPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubPresetPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitLabViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitLabFilterPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearFilterPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showSortPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showRepoPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubIssueSourcePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubPagePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectSortPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectFieldsPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "pendingGitHubProjectViewSelection",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "actionItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRowItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRepoNotInOrca",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetail",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "showCreateTask",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showCreateTargetPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "linearStatusPickerItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingHostedMerge",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingProjectGitHubMerge",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingHostedStateChange",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mergeMethodTaskItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mergeMethodProjectRow",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "reset-workspace",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tasksSupportState",
|
||||
"value": {
|
||||
"client": "logical-client",
|
||||
"kind": "supported"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
}
|
||||
],
|
||||
"c6178e6a0f4e": {
|
||||
"hydrated": false,
|
||||
"settings": {}
|
||||
},
|
||||
"e71a3d7fabe9": [
|
||||
{
|
||||
"name": "status.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "status.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"capabilities": ["mobile.tasks.v1"]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ui.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-task-hydration-fulfilled",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "e71a3d7fabe9",
|
||||
"payloads": "4345d70c756e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "c6178e6a0f4e",
|
||||
"effects": "c3f33d88e338"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "5a9cc1957824",
|
||||
"payloads": "4345d70c756e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "58c52d8b7c76",
|
||||
"effects": "8574a5791dce"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,858 @@
|
||||
{
|
||||
"operation": "settings.task-hydration",
|
||||
"family": "settings.task-hydration",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"4345d70c756e": [
|
||||
{
|
||||
"name": "status.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"status.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"ui.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
}
|
||||
],
|
||||
"69474d6e5c50": [
|
||||
{
|
||||
"name": "status.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "status.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"capabilities": ["mobile.tasks.v1"]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "settings refused"
|
||||
},
|
||||
"id": "frame-2",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ui.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ui": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-5",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"963a91c532c8": {
|
||||
"hydrated": true,
|
||||
"settings": {}
|
||||
},
|
||||
"c3f33d88e338": [
|
||||
{
|
||||
"name": "taskStateHydrated",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "tasksSupportState",
|
||||
"value": {
|
||||
"client": "logical-client",
|
||||
"kind": "unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "showLinearWorkspacePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearTeamPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearGroupPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearOrderPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearDisplayPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearConnect",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showProviderPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubKindPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubPresetPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitLabViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitLabFilterPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearFilterPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showSortPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showRepoPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubIssueSourcePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubPagePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectSortPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectFieldsPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "pendingGitHubProjectViewSelection",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "actionItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRowItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRepoNotInOrca",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetail",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "showCreateTask",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showCreateTargetPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "linearStatusPickerItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingHostedMerge",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingProjectGitHubMerge",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingHostedStateChange",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mergeMethodTaskItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mergeMethodProjectRow",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "reset-workspace",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tasksSupportState",
|
||||
"value": {
|
||||
"client": "logical-client",
|
||||
"kind": "supported"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
}
|
||||
],
|
||||
"c479baa4b17d": [
|
||||
{
|
||||
"name": "taskStateHydrated",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "tasksSupportState",
|
||||
"value": {
|
||||
"client": "logical-client",
|
||||
"kind": "unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "showLinearWorkspacePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearTeamPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearGroupPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearOrderPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearDisplayPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearConnect",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showProviderPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubKindPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubPresetPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitLabViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitLabFilterPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearFilterPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showSortPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showRepoPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubIssueSourcePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubPagePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectSortPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectFieldsPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "pendingGitHubProjectViewSelection",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "actionItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRowItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRepoNotInOrca",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetail",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "showCreateTask",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showCreateTargetPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "linearStatusPickerItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingHostedMerge",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingProjectGitHubMerge",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingHostedStateChange",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mergeMethodTaskItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mergeMethodProjectRow",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "reset-workspace",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tasksSupportState",
|
||||
"value": {
|
||||
"client": "logical-client",
|
||||
"kind": "supported"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "runtimeTaskSettings",
|
||||
"value": {}
|
||||
},
|
||||
{
|
||||
"name": "trustedOrcaHooks",
|
||||
"value": {}
|
||||
},
|
||||
{
|
||||
"name": "githubProjectHiddenFieldIdsByView",
|
||||
"value": {}
|
||||
},
|
||||
{
|
||||
"name": "linearConnected",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "linearWorkspaces",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "linearTeams",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "selectedLinearTeamIds",
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "selectedLinearWorkspaceId",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "visibleProviders",
|
||||
"value": ["github", "linear"]
|
||||
},
|
||||
{
|
||||
"name": "provider",
|
||||
"value": "github"
|
||||
},
|
||||
{
|
||||
"name": "githubMode",
|
||||
"value": "items"
|
||||
},
|
||||
{
|
||||
"name": "defaultGitHubPreset",
|
||||
"value": "issues"
|
||||
},
|
||||
{
|
||||
"name": "githubPreset",
|
||||
"value": "issues"
|
||||
},
|
||||
{
|
||||
"name": "githubKind",
|
||||
"value": "issues"
|
||||
},
|
||||
{
|
||||
"name": "linearFilter",
|
||||
"value": "all"
|
||||
},
|
||||
{
|
||||
"name": "githubProjectSettings",
|
||||
"value": {
|
||||
"activeProject": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"lastViewByProject": {},
|
||||
"pinned": [],
|
||||
"recent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "query",
|
||||
"value": "is:issue is:open"
|
||||
},
|
||||
{
|
||||
"name": "appliedQuery",
|
||||
"value": "is:issue is:open"
|
||||
},
|
||||
{
|
||||
"name": "taskStateHydrated",
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"c6178e6a0f4e": {
|
||||
"hydrated": false,
|
||||
"settings": {}
|
||||
},
|
||||
"e71a3d7fabe9": [
|
||||
{
|
||||
"name": "status.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "status.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"capabilities": ["mobile.tasks.v1"]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ui.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-task-hydration-refused",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "e71a3d7fabe9",
|
||||
"payloads": "4345d70c756e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "c6178e6a0f4e",
|
||||
"effects": "c3f33d88e338"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "69474d6e5c50",
|
||||
"payloads": "4345d70c756e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "963a91c532c8",
|
||||
"effects": "c479baa4b17d"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,774 @@
|
||||
{
|
||||
"operation": "settings.task-hydration",
|
||||
"family": "settings.task-hydration",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"4345d70c756e": [
|
||||
{
|
||||
"name": "status.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"status.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"ui.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"json": "{\"id\":\"frame-5\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
}
|
||||
],
|
||||
"4908672a6114": [
|
||||
{
|
||||
"name": "taskStateHydrated",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "tasksSupportState",
|
||||
"value": {
|
||||
"client": "logical-client",
|
||||
"kind": "unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "showLinearWorkspacePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearTeamPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearGroupPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearOrderPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearDisplayPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearConnect",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showProviderPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubKindPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubPresetPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitLabViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitLabFilterPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearFilterPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showSortPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showRepoPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubIssueSourcePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubPagePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectSortPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectFieldsPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "pendingGitHubProjectViewSelection",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "actionItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRowItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRepoNotInOrca",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetail",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "showCreateTask",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showCreateTargetPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "linearStatusPickerItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingHostedMerge",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingProjectGitHubMerge",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingHostedStateChange",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mergeMethodTaskItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mergeMethodProjectRow",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "reset-workspace",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tasksSupportState",
|
||||
"value": {
|
||||
"client": "logical-client",
|
||||
"kind": "supported"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": "settings disconnected"
|
||||
},
|
||||
{
|
||||
"name": "taskStateHydrated",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"b6ff724ea992": [
|
||||
{
|
||||
"name": "status.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "status.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"capabilities": ["mobile.tasks.v1"]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "settings disconnected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ui.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ui": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-5",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"c3f33d88e338": [
|
||||
{
|
||||
"name": "taskStateHydrated",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "tasksSupportState",
|
||||
"value": {
|
||||
"client": "logical-client",
|
||||
"kind": "unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "showLinearWorkspacePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearTeamPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearGroupPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearOrderPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearDisplayPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearConnect",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showProviderPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubKindPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubPresetPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitLabViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitLabFilterPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showLinearFilterPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showSortPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showRepoPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubIssueSourcePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubPagePicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectViewPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectSortPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showGitHubProjectFieldsPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "pendingGitHubProjectViewSelection",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "actionItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRowItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRepoNotInOrca",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "detailPayload",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "projectRowDetail",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "showCreateTask",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "showCreateTargetPicker",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "linearStatusPickerItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingHostedMerge",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingProjectGitHubMerge",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pendingHostedStateChange",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mergeMethodTaskItem",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mergeMethodProjectRow",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "reset-workspace",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tasksSupportState",
|
||||
"value": {
|
||||
"client": "logical-client",
|
||||
"kind": "supported"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
}
|
||||
],
|
||||
"c6178e6a0f4e": {
|
||||
"hydrated": false,
|
||||
"settings": {}
|
||||
},
|
||||
"e71a3d7fabe9": [
|
||||
{
|
||||
"name": "status.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "status.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"capabilities": ["mobile.tasks.v1"]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ui.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-task-hydration-transport-error",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "e71a3d7fabe9",
|
||||
"payloads": "4345d70c756e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "c6178e6a0f4e",
|
||||
"effects": "c3f33d88e338"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "b6ff724ea992",
|
||||
"payloads": "4345d70c756e",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "c6178e6a0f4e",
|
||||
"effects": "4908672a6114"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,214 @@
|
||||
{
|
||||
"operation": "settings.task-workspace",
|
||||
"family": "settings.task-workspace",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0ffb818cf79c": [
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": "linear:1"
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "runtimeTaskSettings",
|
||||
"value": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "workspaceAgent",
|
||||
"value": "codex"
|
||||
},
|
||||
{
|
||||
"name": "workspaceAgentOverridden",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": "Selected agent is disabled. Choose an enabled agent before creating."
|
||||
},
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
],
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"6dfef4ef572b": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"7abdfe20af50": {
|
||||
"creating": "linear:1",
|
||||
"error": "",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"8b8197eed660": {
|
||||
"creating": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"error": "Selected agent is disabled. Choose an enabled agent before creating.",
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
},
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"a7af6ac4ce05": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"b05ebf557542": [
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": "linear:1"
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
}
|
||||
],
|
||||
"f117d93cf44a": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-task-workspace-fulfilled",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "f117d93cf44a",
|
||||
"state": "7abdfe20af50",
|
||||
"effects": "b05ebf557542"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "a7af6ac4ce05",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "8b8197eed660",
|
||||
"effects": "0ffb818cf79c"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,195 @@
|
||||
{
|
||||
"operation": "settings.task-workspace",
|
||||
"family": "settings.task-workspace",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"16043f76be6c": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "settings refused"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"236832733364": [
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": "linear:1"
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "workspaceAgent",
|
||||
"value": "codex"
|
||||
},
|
||||
{
|
||||
"name": "workspaceAgentOverridden",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": "Selected agent is disabled. Choose an enabled agent before creating."
|
||||
},
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
],
|
||||
"6dfef4ef572b": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"7abdfe20af50": {
|
||||
"creating": "linear:1",
|
||||
"error": "",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"b05ebf557542": [
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": "linear:1"
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
}
|
||||
],
|
||||
"d5df3f6b123a": {
|
||||
"creating": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"error": "Selected agent is disabled. Choose an enabled agent before creating.",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"f117d93cf44a": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-task-workspace-refused",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "f117d93cf44a",
|
||||
"state": "7abdfe20af50",
|
||||
"effects": "b05ebf557542"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "16043f76be6c",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "d5df3f6b123a",
|
||||
"effects": "236832733364"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,192 @@
|
||||
{
|
||||
"operation": "settings.task-workspace",
|
||||
"family": "settings.task-workspace",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"236832733364": [
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": "linear:1"
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "workspaceAgent",
|
||||
"value": "codex"
|
||||
},
|
||||
{
|
||||
"name": "workspaceAgentOverridden",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": "Selected agent is disabled. Choose an enabled agent before creating."
|
||||
},
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
],
|
||||
"6dfef4ef572b": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"7abdfe20af50": {
|
||||
"creating": "linear:1",
|
||||
"error": "",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"b05ebf557542": [
|
||||
{
|
||||
"name": "creatingKey",
|
||||
"value": "linear:1"
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
}
|
||||
],
|
||||
"d069f81df435": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "settings disconnected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"d5df3f6b123a": {
|
||||
"creating": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"error": "Selected agent is disabled. Choose an enabled agent before creating.",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"f117d93cf44a": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-task-workspace-transport-error",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "f117d93cf44a",
|
||||
"state": "7abdfe20af50",
|
||||
"effects": "b05ebf557542"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "d069f81df435",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "d5df3f6b123a",
|
||||
"effects": "236832733364"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
{
|
||||
"operation": "settings.task-preferences",
|
||||
"family": "settings-best-effort",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"1e0992e3ef1e": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.update"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"defaultTaskViewPreset": "assigned"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "write disconnected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"5db909d58c6f": {
|
||||
"preset": "assigned"
|
||||
},
|
||||
"a4cc6c82ee53": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"write": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"b26f6d594d62": [
|
||||
{
|
||||
"name": "defaultGitHubPreset",
|
||||
"value": "assigned"
|
||||
}
|
||||
],
|
||||
"c48c361670b0": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.update\",\"params\":{\"defaultTaskViewPreset\":\"assigned\"}}"
|
||||
}
|
||||
],
|
||||
"e02c44633084": [
|
||||
{
|
||||
"name": "settings.update#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.update"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"defaultTaskViewPreset": "assigned"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-task-write",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "optimistic",
|
||||
"observation": {
|
||||
"sender": "e02c44633084",
|
||||
"payloads": "c48c361670b0",
|
||||
"settlements": "a4cc6c82ee53",
|
||||
"state": "5db909d58c6f",
|
||||
"effects": "b26f6d594d62"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "1e0992e3ef1e",
|
||||
"payloads": "c48c361670b0",
|
||||
"settlements": "a4cc6c82ee53",
|
||||
"state": "5db909d58c6f",
|
||||
"effects": "b26f6d594d62"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,331 @@
|
||||
{
|
||||
"operation": "settings.workspace-context",
|
||||
"family": "settings.workspace-context",
|
||||
"namedDeltas": ["new-workspace-runtime-context-null-settings-typeerror"],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"2a7485a88169": {
|
||||
"providers": ["github"],
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
},
|
||||
"trust": {}
|
||||
},
|
||||
"4f53cda18c2b": [],
|
||||
"7076fb41232c": [
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"ui.get\"}"
|
||||
}
|
||||
],
|
||||
"7e236d701bd4": [
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ui.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"edae57429e34": [
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ui.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ui": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"f6a09f8c5b85": {
|
||||
"providers": [],
|
||||
"settings": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"trust": {}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-workspace-context-fulfilled",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "7e236d701bd4",
|
||||
"payloads": "7076fb41232c",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "f6a09f8c5b85",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "edae57429e34",
|
||||
"payloads": "7076fb41232c",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "2a7485a88169",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,322 @@
|
||||
{
|
||||
"operation": "settings.workspace-context",
|
||||
"family": "settings.workspace-context",
|
||||
"namedDeltas": ["new-workspace-runtime-context-null-settings-typeerror"],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"3a834cb85dd8": {
|
||||
"providers": ["github"],
|
||||
"settings": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"trust": {}
|
||||
},
|
||||
"4f53cda18c2b": [],
|
||||
"7076fb41232c": [
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"ui.get\"}"
|
||||
}
|
||||
],
|
||||
"7e236d701bd4": [
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ui.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"96691837821b": [
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "settings refused"
|
||||
},
|
||||
"id": "frame-3",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ui.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ui": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"f6a09f8c5b85": {
|
||||
"providers": [],
|
||||
"settings": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"trust": {}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-workspace-context-refused",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "7e236d701bd4",
|
||||
"payloads": "7076fb41232c",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "f6a09f8c5b85",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "96691837821b",
|
||||
"payloads": "7076fb41232c",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "3a834cb85dd8",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,319 @@
|
||||
{
|
||||
"operation": "settings.workspace-context",
|
||||
"family": "settings.workspace-context",
|
||||
"namedDeltas": ["new-workspace-runtime-context-null-settings-typeerror"],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0131611322e3": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"3a834cb85dd8": {
|
||||
"providers": ["github"],
|
||||
"settings": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"trust": {}
|
||||
},
|
||||
"4f53cda18c2b": [],
|
||||
"7076fb41232c": [
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.check\"}"
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"linear.status\"}"
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"ui.get\"}"
|
||||
}
|
||||
],
|
||||
"7e236d701bd4": [
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ui.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"86f1b091bb72": [
|
||||
{
|
||||
"name": "preflight.check#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "preflight.check"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"glab": {
|
||||
"installed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linear.status#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "linear.status"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"connected": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "settings disconnected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ui.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "ui.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-4",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ui": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"f6a09f8c5b85": {
|
||||
"providers": [],
|
||||
"settings": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"trust": {}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-workspace-context-transport-error",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "7e236d701bd4",
|
||||
"payloads": "7076fb41232c",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "f6a09f8c5b85",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "86f1b091bb72",
|
||||
"payloads": "7076fb41232c",
|
||||
"settlements": "0131611322e3",
|
||||
"state": "3a834cb85dd8",
|
||||
"effects": "4f53cda18c2b"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,201 @@
|
||||
{
|
||||
"operation": "settings.workspace-submit",
|
||||
"family": "settings.workspace-submit",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"13c996e4ec2b": {
|
||||
"creating": true,
|
||||
"error": "",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"5efbd884ea5a": {
|
||||
"creating": false,
|
||||
"error": "Selected agent is disabled. Choose an enabled agent before creating.",
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
},
|
||||
"6dfef4ef572b": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"9db655095867": [
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "runtimeSettings",
|
||||
"value": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "selectedAgent",
|
||||
"value": {
|
||||
"id": "codex",
|
||||
"label": "Codex"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "agentOverridden",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": "Selected agent is disabled. Choose an enabled agent before creating."
|
||||
}
|
||||
],
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"a7af6ac4ce05": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"settings": {
|
||||
"defaultTuiAgent": "codex",
|
||||
"disabledTuiAgents": ["claude"],
|
||||
"hostSettingOverrides": {},
|
||||
"prBotAuthorOverrides": ["bot-user"],
|
||||
"visibleTaskProviders": ["github", "linear"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"c0cb3df4feef": [
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
}
|
||||
],
|
||||
"f117d93cf44a": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-workspace-submit-fulfilled",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "f117d93cf44a",
|
||||
"state": "13c996e4ec2b",
|
||||
"effects": "c0cb3df4feef"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "a7af6ac4ce05",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "5efbd884ea5a",
|
||||
"effects": "9db655095867"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
{
|
||||
"operation": "settings.workspace-submit",
|
||||
"family": "settings.workspace-submit",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0e315dbfe7a8": [
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "selectedAgent",
|
||||
"value": {
|
||||
"id": "codex",
|
||||
"label": "Codex"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "agentOverridden",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": "Selected agent is disabled. Choose an enabled agent before creating."
|
||||
}
|
||||
],
|
||||
"13c996e4ec2b": {
|
||||
"creating": true,
|
||||
"error": "",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"16043f76be6c": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "settings refused"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"2e8e352c8dd1": {
|
||||
"creating": false,
|
||||
"error": "Selected agent is disabled. Choose an enabled agent before creating.",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"6dfef4ef572b": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"c0cb3df4feef": [
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
}
|
||||
],
|
||||
"f117d93cf44a": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-workspace-submit-refused",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "f117d93cf44a",
|
||||
"state": "13c996e4ec2b",
|
||||
"effects": "c0cb3df4feef"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "16043f76be6c",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "2e8e352c8dd1",
|
||||
"effects": "0e315dbfe7a8"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,179 @@
|
||||
{
|
||||
"operation": "settings.workspace-submit",
|
||||
"family": "settings.workspace-submit",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
|
||||
"recorderSha256": "18f1dccead77f1301b82e8480c1eb1e29a88607b9fe096873a39f8863a09d632",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 2,
|
||||
"values": {
|
||||
"0e315dbfe7a8": [
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "selectedAgent",
|
||||
"value": {
|
||||
"id": "codex",
|
||||
"label": "Codex"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "agentOverridden",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"value": "Selected agent is disabled. Choose an enabled agent before creating."
|
||||
}
|
||||
],
|
||||
"13c996e4ec2b": {
|
||||
"creating": true,
|
||||
"error": "",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"1f2f2a0a5737": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"2e8e352c8dd1": {
|
||||
"creating": false,
|
||||
"error": "Selected agent is disabled. Choose an enabled agent before creating.",
|
||||
"settings": {
|
||||
"disabledTuiAgents": ["claude"]
|
||||
}
|
||||
},
|
||||
"6dfef4ef572b": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"9e493785145e": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
|
||||
}
|
||||
],
|
||||
"c0cb3df4feef": [
|
||||
{
|
||||
"name": "error",
|
||||
"value": ""
|
||||
}
|
||||
],
|
||||
"d069f81df435": [
|
||||
{
|
||||
"name": "settings.get#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "settings.get"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "settings disconnected",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"f117d93cf44a": {
|
||||
"mount": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "settings-workspace-submit-transport-error",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "settings-pending",
|
||||
"observation": {
|
||||
"sender": "1f2f2a0a5737",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "f117d93cf44a",
|
||||
"state": "13c996e4ec2b",
|
||||
"effects": "c0cb3df4feef"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": "d069f81df435",
|
||||
"payloads": "9e493785145e",
|
||||
"settlements": "6dfef4ef572b",
|
||||
"state": "2e8e352c8dd1",
|
||||
"effects": "0e315dbfe7a8"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"manifestCommit": "1d950ab0e0",
|
||||
"recordingBaseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
|
||||
"excludedKinds": ["device-preference"],
|
||||
"operations": [
|
||||
{
|
||||
"manifestOperation": "main:mobile/src/agent-history/MobileAgentSessionHistoryPanel.tsx:loadMobileResumeMetadata:settings.get:387",
|
||||
"manifestScenarioIds": [
|
||||
"main:mobile/src/agent-history/MobileAgentSessionHistoryPanel.tsx:loadMobileResumeMetadata:settings.get:387:fulfilled",
|
||||
"main:mobile/src/agent-history/MobileAgentSessionHistoryPanel.tsx:loadMobileResumeMetadata:settings.get:387:refused",
|
||||
"main:mobile/src/agent-history/MobileAgentSessionHistoryPanel.tsx:loadMobileResumeMetadata:settings.get:387:transport-error"
|
||||
],
|
||||
"scenarios": [
|
||||
"settings-resume-metadata-fulfilled",
|
||||
"settings-resume-metadata-refused",
|
||||
"settings-resume-metadata-transport-error"
|
||||
]
|
||||
},
|
||||
{
|
||||
"manifestOperation": "main:mobile/src/components/use-new-workspace-create-submit.ts:create:settings.get:91",
|
||||
"manifestScenarioIds": [
|
||||
"main:mobile/src/components/use-new-workspace-create-submit.ts:create:settings.get:91:fulfilled",
|
||||
"main:mobile/src/components/use-new-workspace-create-submit.ts:create:settings.get:91:refused",
|
||||
"main:mobile/src/components/use-new-workspace-create-submit.ts:create:settings.get:91:transport-error"
|
||||
],
|
||||
"scenarios": [
|
||||
"settings-workspace-submit-fulfilled",
|
||||
"settings-workspace-submit-refused",
|
||||
"settings-workspace-submit-transport-error"
|
||||
]
|
||||
},
|
||||
{
|
||||
"manifestOperation": "main:mobile/src/components/use-new-workspace-runtime-context.ts:useNewWorkspaceRuntimeContext:settings.get:42",
|
||||
"manifestScenarioIds": [
|
||||
"main:mobile/src/components/use-new-workspace-runtime-context.ts:useNewWorkspaceRuntimeContext:settings.get:42:fulfilled",
|
||||
"main:mobile/src/components/use-new-workspace-runtime-context.ts:useNewWorkspaceRuntimeContext:settings.get:42:refused",
|
||||
"main:mobile/src/components/use-new-workspace-runtime-context.ts:useNewWorkspaceRuntimeContext:settings.get:42:transport-error"
|
||||
],
|
||||
"scenarios": [
|
||||
"settings-workspace-context-fulfilled",
|
||||
"settings-workspace-context-refused",
|
||||
"settings-workspace-context-transport-error"
|
||||
]
|
||||
},
|
||||
{
|
||||
"manifestOperation": "main:mobile/src/home/mobile-home-host-requests.ts:fetchMobileHomeTaskProviders:settings.get:76",
|
||||
"manifestScenarioIds": [
|
||||
"main:mobile/src/home/mobile-home-host-requests.ts:fetchMobileHomeTaskProviders:settings.get:76:fulfilled",
|
||||
"main:mobile/src/home/mobile-home-host-requests.ts:fetchMobileHomeTaskProviders:settings.get:76:refused",
|
||||
"main:mobile/src/home/mobile-home-host-requests.ts:fetchMobileHomeTaskProviders:settings.get:76:transport-error"
|
||||
],
|
||||
"scenarios": [
|
||||
"settings-home-providers-fulfilled",
|
||||
"settings-home-providers-refused",
|
||||
"settings-home-providers-transport-error"
|
||||
]
|
||||
},
|
||||
{
|
||||
"manifestOperation": "main:mobile/src/host-screen/use-host-repo-metadata.ts:fetchRepoMetadata:settings.get:124",
|
||||
"manifestScenarioIds": [
|
||||
"main:mobile/src/host-screen/use-host-repo-metadata.ts:fetchRepoMetadata:settings.get:124:fulfilled",
|
||||
"main:mobile/src/host-screen/use-host-repo-metadata.ts:fetchRepoMetadata:settings.get:124:refused",
|
||||
"main:mobile/src/host-screen/use-host-repo-metadata.ts:fetchRepoMetadata:settings.get:124:transport-error"
|
||||
],
|
||||
"scenarios": [
|
||||
"settings-repo-metadata-fulfilled",
|
||||
"settings-repo-metadata-refused",
|
||||
"settings-repo-metadata-transport-error"
|
||||
]
|
||||
},
|
||||
{
|
||||
"manifestOperation": "main:mobile/src/session/mobile-new-tab-agent-loader.ts:loadMobileNewTabAgentOptions:settings.get:26",
|
||||
"manifestScenarioIds": [
|
||||
"main:mobile/src/session/mobile-new-tab-agent-loader.ts:loadMobileNewTabAgentOptions:settings.get:26:fulfilled",
|
||||
"main:mobile/src/session/mobile-new-tab-agent-loader.ts:loadMobileNewTabAgentOptions:settings.get:26:refused",
|
||||
"main:mobile/src/session/mobile-new-tab-agent-loader.ts:loadMobileNewTabAgentOptions:settings.get:26:transport-error"
|
||||
],
|
||||
"scenarios": [
|
||||
"settings-new-tab-ssh",
|
||||
"settings-new-tab-refused",
|
||||
"settings-new-tab-transport-error"
|
||||
]
|
||||
},
|
||||
{
|
||||
"manifestOperation": "main:mobile/src/session/use-pr-bot-author-overrides.ts:usePRBotAuthorOverrides:settings.get:35",
|
||||
"manifestScenarioIds": [
|
||||
"main:mobile/src/session/use-pr-bot-author-overrides.ts:usePRBotAuthorOverrides:settings.get:35:fulfilled",
|
||||
"main:mobile/src/session/use-pr-bot-author-overrides.ts:usePRBotAuthorOverrides:settings.get:35:refused",
|
||||
"main:mobile/src/session/use-pr-bot-author-overrides.ts:usePRBotAuthorOverrides:settings.get:35:transport-error"
|
||||
],
|
||||
"scenarios": [
|
||||
"settings-bot-overrides-fulfilled",
|
||||
"settings-bot-overrides-refused",
|
||||
"settings-bot-overrides-transport-error"
|
||||
]
|
||||
},
|
||||
{
|
||||
"manifestOperation": "main:mobile/src/tasks/use-mobile-tasks-runtime-hydration.tsx:hydrateTaskState:settings.get:253",
|
||||
"manifestScenarioIds": [
|
||||
"main:mobile/src/tasks/use-mobile-tasks-runtime-hydration.tsx:hydrateTaskState:settings.get:253:fulfilled",
|
||||
"main:mobile/src/tasks/use-mobile-tasks-runtime-hydration.tsx:hydrateTaskState:settings.get:253:refused",
|
||||
"main:mobile/src/tasks/use-mobile-tasks-runtime-hydration.tsx:hydrateTaskState:settings.get:253:transport-error"
|
||||
],
|
||||
"scenarios": [
|
||||
"settings-task-hydration-fulfilled",
|
||||
"settings-task-hydration-refused",
|
||||
"settings-task-hydration-transport-error"
|
||||
]
|
||||
},
|
||||
{
|
||||
"manifestOperation": "main:mobile/src/tasks/use-mobile-tasks-workspace-create-actions.tsx:createWorkspace:settings.get:75",
|
||||
"manifestScenarioIds": [
|
||||
"main:mobile/src/tasks/use-mobile-tasks-workspace-create-actions.tsx:createWorkspace:settings.get:75:fulfilled",
|
||||
"main:mobile/src/tasks/use-mobile-tasks-workspace-create-actions.tsx:createWorkspace:settings.get:75:refused",
|
||||
"main:mobile/src/tasks/use-mobile-tasks-workspace-create-actions.tsx:createWorkspace:settings.get:75:transport-error"
|
||||
],
|
||||
"scenarios": [
|
||||
"settings-task-workspace-fulfilled",
|
||||
"settings-task-workspace-refused",
|
||||
"settings-task-workspace-transport-error"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
import { createRequire } from 'node:module'
|
||||
import { resolve } from 'node:path'
|
||||
import { runProcess } from '../../src/shared/child-process/run-process.ts'
|
||||
import { readScenarios } from '../src/test-support/rpc-recording/scenario-input.ts'
|
||||
|
||||
if (process.argv[2] !== '--record' || process.env.RPC_FOUNDATION_RECORD !== '1') {
|
||||
throw new Error('Recording requires --record and RPC_FOUNDATION_RECORD=1')
|
||||
}
|
||||
const root = resolve(import.meta.dirname, '../..')
|
||||
const input = readScenarios(resolve(root, 'mobile/rpc-foundation/pilot-scenarios.json'))
|
||||
const baseline = await runProcess({
|
||||
program: 'git',
|
||||
args: [
|
||||
'diff',
|
||||
'--quiet',
|
||||
input.baseline,
|
||||
'--',
|
||||
'mobile/src',
|
||||
'src/shared',
|
||||
'mobile/pnpm-lock.yaml',
|
||||
// Only the recorder is exempt, and every golden pins `recorderSha256` over it instead.
|
||||
':!mobile/src/test-support/rpc-recording'
|
||||
],
|
||||
cwd: root
|
||||
})
|
||||
if (baseline.code !== 0) {
|
||||
throw new Error('Product sources or lockfile differ from the pinned main baseline')
|
||||
}
|
||||
const require = createRequire(resolve(root, 'mobile/package.json'))
|
||||
const result = await runProcess({
|
||||
program: process.execPath,
|
||||
args: [
|
||||
resolve(require.resolve('vitest/package.json'), '../vitest.mjs'),
|
||||
'run',
|
||||
'src/test-support/rpc-recording/pilot-recordings.test.ts',
|
||||
'src/test-support/rpc-recording/family-recordings.test.ts'
|
||||
],
|
||||
cwd: resolve(root, 'mobile'),
|
||||
timeoutMs: 120_000,
|
||||
env: { ...process.env, ORCA_BACKGROUND_LAUNCH: '1', RPC_FOUNDATION_MODE: '--record' }
|
||||
})
|
||||
process.stdout.write(result.stdout)
|
||||
process.stderr.write(result.stderr)
|
||||
if (result.code !== 0) {
|
||||
process.exitCode = 1
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
# Main RPC recordings
|
||||
|
||||
Test infrastructure only. `pilot-scenarios.json` binds logical operations/actions to small
|
||||
mount adapters. The adapters execute the actual product modules from the selected source
|
||||
root, using React's test renderer; they do not reconstruct acceptance or lifecycle logic.
|
||||
The module loader transpiles the real source with TypeScript and resolves task barrels
|
||||
lazily so unused native views do not need a device. Accessing an unspecified native import
|
||||
fails. The history metadata function is exposed to its adapter without rewriting its body.
|
||||
|
||||
The transport reuses `createStableLogicalRpcClient`, `projectMobileRpcRequestParams`
|
||||
(through that client), `RpcClientRequestTracker`, and the delivery-unknown marker. Hook
|
||||
mounting follows `use-mobile-native-chat-file-search.test.ts`; physical session mounting
|
||||
follows `stable-logical-rpc-client.test.ts`. Neither test exported a reusable mount utility.
|
||||
|
||||
## Scenario actions
|
||||
|
||||
```json
|
||||
{"action":"mount","id":"mount"}
|
||||
{"action":"query","id":"old-query","args":{"query":"old"}}
|
||||
{"advance":120}
|
||||
{"complete":"files.searchPaths#1","params":{"worktree":"id:A","query":"old","limit":16},"reply":{"ok":false,"error":{"code":"method_not_found","message":"Unknown method"}}}
|
||||
{"bind":"old-inventory","request":"files.list#1","params":{"worktree":"id:A"}}
|
||||
{"checkpoint":"pending"}
|
||||
{"action":"select","id":"select-b","args":{"workspace":"B"}}
|
||||
{"action":"select","id":"reset-a","args":{"workspace":"A"}}
|
||||
{"complete":"old-inventory","params":{"worktree":"id:A"},"reply":{"ok":true,"result":{"files":[]}}}
|
||||
{"checkpoint":"stale-completed"}
|
||||
```
|
||||
|
||||
`{"$undefined":true}` in the input means explicit undefined, including an own property;
|
||||
absence remains absence. Completion params are asserted against projected sender params.
|
||||
Concurrent requests of one method require a logical binding and asserted params; random
|
||||
wire ids never identify completions. Timers only advance explicitly, and zero-time drains
|
||||
flush due timers, promise continuations, and React work after every step. Date, performance,
|
||||
Math.random, Web Crypto random bytes/UUIDs, and transport ids are deterministic.
|
||||
|
||||
### Recorded time
|
||||
|
||||
Every settlement carries `startedAt` and `settledAt` in virtual milliseconds since the pinned epoch,
|
||||
so the projection has a temporal dimension instead of relying on where a checkpoint happens to sit.
|
||||
Any transition the product schedules for itself is recorded at the time it actually fires: change a
|
||||
request deadline or the search debounce by any amount, in either direction, and a recorded number
|
||||
moves. Granularity is exact milliseconds, because the fake timers fire at their scheduled time and
|
||||
never coalesce; `recording-runner.test.ts` pins a 5 ms deadline settling at exactly `settledAt: 5`.
|
||||
|
||||
A checkpoint's own clock is not recorded. It is always the sum of the scripted `advance` steps, so
|
||||
it is a function of the scenario rather than of the code under test; `run-recording.ts` asserts that
|
||||
equality at every checkpoint instead, which costs no bytes and fails loudly if it ever drifts.
|
||||
|
||||
Recorded time covers thresholds the product schedules for itself. It cannot cover a threshold the
|
||||
product only consults when something else makes it act, because no observation exists unless a
|
||||
scenario acts inside the window. The `Date.now()` cache TTL in `use-host-repo-metadata.ts` is the
|
||||
one such case here, so `settings-repo-cache-expiry` probes the cache at 59 s as well as at 60 s;
|
||||
without the earlier probe a 20 s TTL and a 60 s TTL are both expired at 60 s and record identically.
|
||||
That probe is coverage, not a substitute for recorded time: it bounds how small a TTL reduction is
|
||||
visible, it does not make the reduction itself observable.
|
||||
|
||||
## Golden schema
|
||||
|
||||
Each file records `runnerVersion`, `baseline`, `lockfileSha256` (mobile's lockfile),
|
||||
`recorderSha256`, `platform`, `scenarioVersion`, `projectionVersion`, `goldenFormatVersion`,
|
||||
`operation`, `family`, and `namedDeltas`. `platform` and `lockfileSha256` are provenance and are
|
||||
not compared: a dependency or OS that changes behaviour changes the trace itself, so comparing
|
||||
them would only fail candidates on unrelated bumps. The rest are pinned. `recorderSha256` covers every non-markdown file under
|
||||
this directory plus `pilot-scenarios.json`, so the runner that produced a golden is as pinned as
|
||||
the product baseline: editing an adapter projection, a fixture or a scenario fails candidate mode
|
||||
on the header and forces a deliberate re-record. Checkpoints
|
||||
contain ordered sender calls and serialized physical application payloads, action and request
|
||||
settlements, projected state, and ordered external effects. Sender args have three positional
|
||||
slots; absent, undefined and null are distinct `$rpc` tags. Literal objects containing `$rpc`
|
||||
are escaped. Only object keys are sorted; array/effect order, options, budgets, settlement times
|
||||
and errors stay observable. Errors contain category, message and `isRpcDeliveryUnknown`, never
|
||||
stack paths, plus `code` and a recursively captured `cause` when the thrown error carries them.
|
||||
Platform is provenance; candidate comparison does not require the same operating system.
|
||||
|
||||
### Value pool
|
||||
|
||||
Format version 2 stores each distinct observation field value once under `values`, keyed by the
|
||||
first 12 hex of sha256 over the value's sorted-key, whitespace-free JSON. A checkpoint holds five
|
||||
hashes (`sender`, `payloads`, `settlements`, `state`, `effects`). Files stay pretty-printed so a
|
||||
diff is reviewable; compact printing, element-level interning of list fields and delta encoding
|
||||
against the previous checkpoint were measured and rejected. `readGolden` refuses any other
|
||||
`goldenFormatVersion`, resolves hashes back to values, and `compareGolden` reports the scenario,
|
||||
the checkpoint id, the field, the JSON path inside it, and both resolved values.
|
||||
|
||||
### Prelude checkpoints
|
||||
|
||||
A generated variant declares the index where its distinguishing input lands. Checkpoints before
|
||||
that index observe steps identical to the base, so `hoistPreludeCheckpoints` records them once in
|
||||
a `<base>.prelude` scenario and starts each variant at its own divergence; it asserts each
|
||||
variant's pre-divergence prefix matches the base. Reply matrices, interruption schedules and
|
||||
lifecycle schedules use it. Checkpoints that merely happen to be equal are never merged: reaching
|
||||
the same state through different inputs is evidence. Sibling schedules already drop their shared
|
||||
prefix, so they are unchanged.
|
||||
|
||||
Family matrices and schedule recordings retain both boundaries. Matrices execute
|
||||
raw reply partitions at the scripted sender port; they do not claim malformed-frame coverage
|
||||
through direct/relay frame validation. Caches
|
||||
are tested by follow-up requests; no private cache maps are inspected.
|
||||
|
||||
Each family runs the nine partitions in `reply-matrix.ts` once, and nothing is crossed against
|
||||
consumed fields. The partitions are the reply shapes a host can send: a normal result, an absent
|
||||
result, `null`, an inner `{ok: false}` envelope with a string or object error, an inner envelope
|
||||
missing `ok`, an outer refusal, `method_not_found`, and a transport rejection. Shapes that were
|
||||
recorded before and are gone were unreachable: `successResponse` always sets `result`, so JSON
|
||||
carries no explicit-undefined slot, and no mounted method's handler returns a number, a string, an
|
||||
array, a bare `{}`, or a boolean. `null` stays because `linear.getIssue` returns it for a missing
|
||||
issue and the b2 seed is a shipped null-result bug.
|
||||
|
||||
Detached unhandled rejections are captured as effects in a sequential process-scoped window,
|
||||
with prior process listeners restored afterward. This preserves the known main bug recorded
|
||||
as `new-workspace-runtime-context-null-settings-typeerror`; it does not repair the effect.
|
||||
Task-model projections record setter invocations and resulting model values, not native UI.
|
||||
|
||||
## Commands and checker contract
|
||||
|
||||
Record only from unchanged pinned product sources and lockfile. The fence exempts only
|
||||
`mobile/src/test-support/rpc-recording`, which `recorderSha256` pins instead; every other
|
||||
test-support path is compared against the baseline like product code:
|
||||
|
||||
```sh
|
||||
ORCA_BACKGROUND_LAUNCH=1 RPC_FOUNDATION_RECORD=1 pnpm --dir mobile exec tsx scripts/rpc-recording.mts --record
|
||||
ORCA_BACKGROUND_LAUNCH=1 pnpm --dir mobile test src/test-support/rpc-recording
|
||||
```
|
||||
|
||||
Mutants are the defect evidence. `operation-mutations.ts` holds one anchored source edit per
|
||||
adapter family, and every family's recording must change visible state when its mutant is applied,
|
||||
which is what shows that family's `state()` projection observes the operation's real output.
|
||||
Anchors are asserted to match exactly one site, because a repeated anchor would half-apply while
|
||||
still counting as applied. Mutants replace the expression in memory, then run the same real hook.
|
||||
`runRecordingMutant` accepts a mutated mounting adapter, scheduler, baseline and optional
|
||||
observation projection, and returns `{verdict: "killed" | "survived", recording}`. Every mutant
|
||||
test requires the mutation to apply exactly once and change visible state to count as killed.
|
||||
|
||||
Set `RPC_FOUNDATION_REFERENCE_ROOT` to an archived `bcba08b3e4` source tree to corroborate the
|
||||
three B-seed mutants against the real defect; the reference checkout is never edited. Each seed
|
||||
pins the archived tree's visible state, so a later refactor of those files cannot pass by merely
|
||||
differing from main. Archived-tree corroboration for b1/b2/b3 is **unproven in CI**:
|
||||
CI does not set `RPC_FOUNDATION_REFERENCE_ROOT`. These three checks remain opt-in; the
|
||||
in-memory mutant checks run in CI. No archived-tree checks are registered for other
|
||||
families because no reference states are defined for them.
|
||||
|
||||
## Known-open holes
|
||||
|
||||
Two behavioural mutations are not caught by any golden. Both were confirmed by mutating product
|
||||
source and re-deriving the whole suite; neither is reachable through the adapters as they stand,
|
||||
so closing them needs new adapter capability rather than another scenario. Anyone migrating these
|
||||
call sites should not assume the recordings will notice a change here:
|
||||
|
||||
- **`use-host-repo-metadata.ts` cross-module cache write.** Deleting `setCachedRepos(...)` survives.
|
||||
No adapter mounts `useNewWorkspaceRepositories`, which is the consumer that reads that cache to
|
||||
open workspace creation without waiting, so the write has no observer. Closing it needs a
|
||||
cache-consumer mount after the metadata fetch.
|
||||
- **`use-pr-bot-author-overrides.ts` client-identity guard.** Forcing
|
||||
`sourceClientRef.current !== client` to `false` survives. The adapter closes over one client
|
||||
object: `reset` changes only the refresh key, `cutover` migrates the same stable logical client,
|
||||
and remounting discards the old hook state. Closing it needs a same-mount client replacement.
|
||||
|
||||
The original settings slice coverage maps nine host-RPC callers in
|
||||
`settings-recording-coverage.json`; device-preference entries are excluded by coordinator
|
||||
instruction. Later manifest additions require new scenarios and remain uncovered until
|
||||
those recordings land. This runner does not certify native storage or transport skew.
|
||||
@@ -0,0 +1,162 @@
|
||||
import { resolve } from 'node:path'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { readScenarios } from './scenario-input'
|
||||
import { driveReplyMatrix } from './reply-matrix'
|
||||
import {
|
||||
bindCompletions,
|
||||
interruptionSchedules,
|
||||
lifecycleSchedules,
|
||||
siblingSchedules
|
||||
} from './schedule-driver'
|
||||
import { hoistPreludeCheckpoints } from './prelude-checkpoints'
|
||||
import { runRecording } from './run-recording'
|
||||
import { pilotMountAdapters } from './pilot-mount-adapters'
|
||||
import { vitestRecordingScheduler } from './vitest-recording-scheduler'
|
||||
import {
|
||||
compareGolden,
|
||||
goldenBytes,
|
||||
goldenRecording,
|
||||
readGolden,
|
||||
writeGolden
|
||||
} from './golden-recording'
|
||||
import type { Recording, RecordingScenario } from './recording-scenario'
|
||||
|
||||
const root = resolve(import.meta.dirname, '../../../..')
|
||||
const input = readScenarios(
|
||||
process.env.RPC_FOUNDATION_SCENARIOS ??
|
||||
resolve(root, 'mobile/rpc-foundation/pilot-scenarios.json')
|
||||
)
|
||||
const directory =
|
||||
process.env.RPC_FOUNDATION_GOLDENS ?? resolve(root, 'mobile/rpc-foundation/goldens')
|
||||
const settingsNormal = {
|
||||
settings: {
|
||||
disabledTuiAgents: ['claude'],
|
||||
defaultTuiAgent: 'codex',
|
||||
prBotAuthorOverrides: ['recorded-bot'],
|
||||
visibleTaskProviders: ['github'],
|
||||
hostSettingOverrides: {},
|
||||
defaultTaskSource: 'github',
|
||||
defaultTaskViewPreset: 'all',
|
||||
defaultRepoSelection: null,
|
||||
defaultLinearTeamSelection: null,
|
||||
githubProjects: {}
|
||||
}
|
||||
}
|
||||
|
||||
async function certify(id: string, scenarios: RecordingScenario[]) {
|
||||
let first = ''
|
||||
for (let run = 0; run < Number(process.env.RPC_FOUNDATION_DETERMINISM_RUNS ?? 2); run++) {
|
||||
const checkpoints: Recording['checkpoints'] = []
|
||||
for (const scenario of scenarios) {
|
||||
const { adapters } = pilotMountAdapters(root)
|
||||
const recording = await runRecording(
|
||||
scenario,
|
||||
adapters[scenario.operation],
|
||||
vitestRecordingScheduler()
|
||||
)
|
||||
for (const checkpoint of recording.checkpoints) {
|
||||
checkpoints.push({ ...checkpoint, id: `${scenario.id}:${checkpoint.id}` })
|
||||
}
|
||||
}
|
||||
const golden = goldenRecording(root, input.baseline, scenarios[0], {
|
||||
scenario: id,
|
||||
checkpoints
|
||||
})
|
||||
const bytes = goldenBytes(golden)
|
||||
if (run) {
|
||||
expect(bytes).toBe(first)
|
||||
}
|
||||
first = bytes
|
||||
if (process.env.RPC_FOUNDATION_MODE === '--record') {
|
||||
await writeGolden(directory, golden, '--record')
|
||||
} else {
|
||||
compareGolden(readGolden(directory, id), golden)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
describe('family reply partitions and owned schedules', () => {
|
||||
const families = new Map<string, RecordingScenario>()
|
||||
for (const scenario of input.scenarios) {
|
||||
if (!families.has(scenario.family)) {
|
||||
families.set(scenario.family, scenario)
|
||||
}
|
||||
}
|
||||
for (const [family, base] of families) {
|
||||
const completion = base.steps.find(
|
||||
(step) =>
|
||||
'complete' in step &&
|
||||
(step.complete.startsWith('settings.') ||
|
||||
(base.id === 'b1' && step.complete === 'fresh-inventory') ||
|
||||
(base.id === 'b2' && step.complete.startsWith('github.project.')) ||
|
||||
(base.id === 'b3' && step.complete.startsWith('linear.getIssue')))
|
||||
)
|
||||
if (!completion || !('complete' in completion)) {
|
||||
continue
|
||||
}
|
||||
const normal =
|
||||
base.id === 'b1'
|
||||
? { files: [{ relativePath: 'third.ts' }] }
|
||||
: base.id === 'b3'
|
||||
? { id: 'issue-1', description: 'recorded', labels: [], subIssues: [] }
|
||||
: completion.complete.startsWith('settings.get')
|
||||
? settingsNormal
|
||||
: { ok: true }
|
||||
it(`${family}: reply partitions once per family`, async () => {
|
||||
await certify(`matrix-${family}`, driveReplyMatrix(base, completion.complete, normal))
|
||||
}, 30_000)
|
||||
}
|
||||
for (const id of [
|
||||
'b3',
|
||||
'settings-new-tab-ssh',
|
||||
'settings-home-providers-fulfilled',
|
||||
'settings-workspace-context-fulfilled',
|
||||
'settings-resume-metadata-fulfilled',
|
||||
'settings-task-hydration-fulfilled',
|
||||
'settings-repo-metadata-fulfilled'
|
||||
]) {
|
||||
const base = input.scenarios.find((scenario) => scenario.id === id)!
|
||||
const replies = base.steps.filter((step) => 'complete' in step)
|
||||
// Complete prerequisites before permuting the sibling barrier.
|
||||
const first = replies.find((step) =>
|
||||
step.complete.startsWith(id === 'b3' ? 'linear.getIssue' : 'settings.get')
|
||||
)!
|
||||
const second = replies[replies.indexOf(first) + 1]
|
||||
if (second) {
|
||||
it(`${id}: completion orders and correlated faults`, async () => {
|
||||
await certify(`schedules-${id}`, siblingSchedules(base, first, second))
|
||||
})
|
||||
}
|
||||
}
|
||||
for (const id of ['inventory-lifecycle', 'settings-bot-overrides-fulfilled']) {
|
||||
const base = input.scenarios.find((scenario) => scenario.id === id)!
|
||||
it(`${id}: timeout, disconnect and stable-client cutover`, async () => {
|
||||
await certify(`interruptions-${id}`, interruptionSchedules(base))
|
||||
})
|
||||
}
|
||||
for (const id of [
|
||||
'inventory-lifecycle',
|
||||
'b3',
|
||||
'settings-bot-overrides-fulfilled',
|
||||
'settings-workspace-context-fulfilled',
|
||||
'settings-task-hydration-fulfilled'
|
||||
]) {
|
||||
const base = input.scenarios.find((scenario) => scenario.id === id)!
|
||||
const actions = id.includes('hydration')
|
||||
? (['unmount'] as const)
|
||||
: id.includes('context')
|
||||
? (['unmount', 'blur'] as const)
|
||||
: (['reset', 'unmount', 'blur'] as const)
|
||||
it(`${id}: lifecycle boundaries`, async () => {
|
||||
await certify(
|
||||
`lifecycle-${id}`,
|
||||
hoistPreludeCheckpoints(
|
||||
{ ...base, steps: bindCompletions(base.steps) },
|
||||
actions
|
||||
.flatMap((action) => lifecycleSchedules(base, action))
|
||||
.filter(({ scenario }) => !id.includes('hydration') || !scenario.id.endsWith('-1'))
|
||||
)
|
||||
)
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,186 @@
|
||||
import { format } from 'oxfmt'
|
||||
import { createHash } from 'node:crypto'
|
||||
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs'
|
||||
import { join } from 'node:path'
|
||||
import {
|
||||
canonicalJson,
|
||||
internRecording,
|
||||
OBSERVATION_FIELDS,
|
||||
resolveRecording,
|
||||
type InternedRecording,
|
||||
type ValuePool
|
||||
} from './golden-value-pool'
|
||||
import { recorderSha256 } from './recorder-digest'
|
||||
import type { Recording, RecordingScenario } from './recording-scenario'
|
||||
import type { RecordedValue } from './recording-values'
|
||||
|
||||
export const RUNNER_VERSION = 1
|
||||
// 2 stamps every settlement with startedAt/settledAt on the pinned virtual clock.
|
||||
export const PROJECTION_VERSION = 2
|
||||
// 2 interns observation field values into a pooled map; a version 1 file is not comparable here.
|
||||
export const GOLDEN_FORMAT_VERSION = 2
|
||||
export type GoldenRecording = {
|
||||
operation: string
|
||||
family: string
|
||||
namedDeltas: string[]
|
||||
runnerVersion: number
|
||||
baseline: string
|
||||
lockfileSha256: string
|
||||
recorderSha256: string
|
||||
platform: string
|
||||
scenarioVersion: number
|
||||
projectionVersion: number
|
||||
goldenFormatVersion: number
|
||||
recording: Recording
|
||||
}
|
||||
type GoldenFile = Omit<GoldenRecording, 'recording'> & {
|
||||
values: ValuePool
|
||||
recording: InternedRecording
|
||||
}
|
||||
export function goldenRecording(
|
||||
root: string,
|
||||
baseline: string,
|
||||
scenario: RecordingScenario,
|
||||
recording: Recording
|
||||
): GoldenRecording {
|
||||
return {
|
||||
operation: scenario.operation,
|
||||
family: scenario.family,
|
||||
namedDeltas: scenario.namedDeltas ?? [],
|
||||
runnerVersion: RUNNER_VERSION,
|
||||
baseline,
|
||||
lockfileSha256: createHash('sha256')
|
||||
.update(readFileSync(join(root, 'mobile/pnpm-lock.yaml')))
|
||||
.digest('hex'),
|
||||
recorderSha256: recorderSha256(root),
|
||||
platform: process.platform,
|
||||
scenarioVersion: scenario.version,
|
||||
projectionVersion: PROJECTION_VERSION,
|
||||
goldenFormatVersion: GOLDEN_FORMAT_VERSION,
|
||||
recording
|
||||
}
|
||||
}
|
||||
export function goldenBytes(golden: GoldenRecording): string {
|
||||
const { recording: _value, ...header } = golden
|
||||
const interned = internRecording(golden.recording)
|
||||
return `${JSON.stringify({ ...header, values: interned.values, recording: interned.recording }, null, 2)}\n`
|
||||
}
|
||||
export function readGolden(directory: string, id: string): GoldenRecording {
|
||||
const file = JSON.parse(readFileSync(goldenPath(directory, id), 'utf8')) as Partial<GoldenFile>
|
||||
if (file.goldenFormatVersion !== GOLDEN_FORMAT_VERSION) {
|
||||
throw new Error(
|
||||
`Golden ${id} has format version ${JSON.stringify(file.goldenFormatVersion)}; this reader requires ${GOLDEN_FORMAT_VERSION}. Re-record with --record.`
|
||||
)
|
||||
}
|
||||
if (!file.values || !file.recording) {
|
||||
throw new Error(`Golden ${id} is missing its value pool or recording`)
|
||||
}
|
||||
const { values: _pool, ...header } = file as GoldenFile
|
||||
return { ...header, recording: resolveRecording(file.values, file.recording) }
|
||||
}
|
||||
export async function writeGolden(
|
||||
directory: string,
|
||||
golden: GoldenRecording,
|
||||
mode: string
|
||||
): Promise<void> {
|
||||
if (mode !== '--record' || process.env.RPC_FOUNDATION_RECORD !== '1') {
|
||||
throw new Error('Golden writes require --record and RPC_FOUNDATION_RECORD=1')
|
||||
}
|
||||
mkdirSync(directory, { recursive: true })
|
||||
const path = goldenPath(directory, golden.recording.scenario)
|
||||
const result = await format(path, goldenBytes(golden), { printWidth: 100, trailingComma: 'none' })
|
||||
if (result.errors.length) {
|
||||
throw new Error('Cannot format golden')
|
||||
}
|
||||
writeFileSync(path, result.code)
|
||||
}
|
||||
function goldenPath(directory: string, id: string): string {
|
||||
if (!/^[a-z0-9][a-z0-9._-]*$/.test(id)) {
|
||||
throw new Error(`Unsafe scenario id: ${id}`)
|
||||
}
|
||||
return join(directory, `${id}.json`)
|
||||
}
|
||||
export function compareGolden(expected: GoldenRecording, actual: GoldenRecording): void {
|
||||
const scenario = actual.recording.scenario
|
||||
// Platform and lockfile are provenance: a dependency that changes behaviour changes the trace
|
||||
// below, and one that does not must not fail the compare on every unrelated bump.
|
||||
const pinned = { ...expected, platform: actual.platform, lockfileSha256: actual.lockfileSha256 }
|
||||
const { recording: _expectedRecording, ...expectedHeader } = pinned
|
||||
const { recording: _actualRecording, ...actualHeader } = actual
|
||||
for (const [key, value] of Object.entries(expectedHeader)) {
|
||||
const found = (actualHeader as Record<string, unknown>)[key]
|
||||
if (JSON.stringify(found) !== JSON.stringify(value)) {
|
||||
throw new Error(
|
||||
`Recording differs: ${scenario} header ${key}\n expected ${JSON.stringify(value)}\n actual ${JSON.stringify(found)}`
|
||||
)
|
||||
}
|
||||
}
|
||||
const expectedIds = pinned.recording.checkpoints.map((checkpoint) => checkpoint.id)
|
||||
const actualIds = actual.recording.checkpoints.map((checkpoint) => checkpoint.id)
|
||||
if (JSON.stringify(expectedIds) !== JSON.stringify(actualIds)) {
|
||||
const index = expectedIds.findIndex((id, at) => id !== actualIds[at])
|
||||
throw new Error(
|
||||
`Recording differs: ${scenario} checkpoint list (${expectedIds.length} expected, ${actualIds.length} actual)\n first divergence at index ${index}: expected ${JSON.stringify(expectedIds[index])}, actual ${JSON.stringify(actualIds[index])}`
|
||||
)
|
||||
}
|
||||
for (const [index, checkpoint] of pinned.recording.checkpoints.entries()) {
|
||||
const found = actual.recording.checkpoints[index]!
|
||||
for (const field of OBSERVATION_FIELDS) {
|
||||
if (
|
||||
canonicalJson(checkpoint.observation[field]) === canonicalJson(found.observation[field])
|
||||
) {
|
||||
continue
|
||||
}
|
||||
const path = firstDifference(checkpoint.observation[field], found.observation[field])
|
||||
throw new Error(
|
||||
`Recording differs: ${scenario} checkpoint ${checkpoint.id} field ${field}${path.path}\n expected ${excerpt(path.expected)}\n actual ${excerpt(path.actual)}`
|
||||
)
|
||||
}
|
||||
}
|
||||
if (goldenBytes(pinned) !== goldenBytes(actual)) {
|
||||
throw new Error(`Recording differs: ${scenario} (encoding)`)
|
||||
}
|
||||
}
|
||||
function firstDifference(
|
||||
expected: RecordedValue,
|
||||
actual: RecordedValue,
|
||||
path = ''
|
||||
): { path: string; expected: RecordedValue; actual: RecordedValue } {
|
||||
const here = { path, expected, actual }
|
||||
if (
|
||||
expected === null ||
|
||||
actual === null ||
|
||||
typeof expected !== 'object' ||
|
||||
typeof actual !== 'object' ||
|
||||
Array.isArray(expected) !== Array.isArray(actual)
|
||||
) {
|
||||
return here
|
||||
}
|
||||
if (Array.isArray(expected) && Array.isArray(actual)) {
|
||||
const index = expected.findIndex(
|
||||
(entry, at) => canonicalJson(entry) !== canonicalJson(actual[at] as RecordedValue)
|
||||
)
|
||||
return index === -1 || index >= actual.length
|
||||
? here
|
||||
: firstDifference(
|
||||
expected[index] as RecordedValue,
|
||||
actual[index] as RecordedValue,
|
||||
`${path}[${index}]`
|
||||
)
|
||||
}
|
||||
const left = expected as Record<string, RecordedValue>
|
||||
const right = actual as Record<string, RecordedValue>
|
||||
const key = [...new Set([...Object.keys(left), ...Object.keys(right)])]
|
||||
.sort()
|
||||
.find(
|
||||
(name) =>
|
||||
canonicalJson(left[name] as RecordedValue) !== canonicalJson(right[name] as RecordedValue)
|
||||
)
|
||||
return key === undefined || !(key in left) || !(key in right)
|
||||
? here
|
||||
: firstDifference(left[key] as RecordedValue, right[key] as RecordedValue, `${path}.${key}`)
|
||||
}
|
||||
function excerpt(value: RecordedValue): string {
|
||||
const json = JSON.stringify(value)
|
||||
return json === undefined ? 'absent' : json.length > 600 ? `${json.slice(0, 600)}…` : json
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
import { createHash } from 'node:crypto'
|
||||
import type { Observation, Recording } from './recording-scenario'
|
||||
import type { RecordedValue } from './recording-values'
|
||||
|
||||
export const OBSERVATION_FIELDS = [
|
||||
'sender',
|
||||
'payloads',
|
||||
'settlements',
|
||||
'state',
|
||||
'effects'
|
||||
] as const satisfies readonly (keyof Observation)[]
|
||||
|
||||
export type ValuePool = Record<string, RecordedValue>
|
||||
export type InternedObservation = Record<keyof Observation, string>
|
||||
export type InternedRecording = {
|
||||
scenario: string
|
||||
checkpoints: { id: string; observation: InternedObservation }[]
|
||||
}
|
||||
|
||||
export function canonicalJson(value: RecordedValue): string {
|
||||
if (value === null || typeof value !== 'object') {
|
||||
return JSON.stringify(value)
|
||||
}
|
||||
if (Array.isArray(value)) {
|
||||
return `[${value.map(canonicalJson).join(',')}]`
|
||||
}
|
||||
const record = value as Record<string, RecordedValue>
|
||||
return `{${Object.keys(record)
|
||||
.sort()
|
||||
.map((key) => `${JSON.stringify(key)}:${canonicalJson(record[key] as RecordedValue)}`)
|
||||
.join(',')}}`
|
||||
}
|
||||
|
||||
export function valueHash(value: RecordedValue): string {
|
||||
return createHash('sha256').update(canonicalJson(value)).digest('hex').slice(0, 12)
|
||||
}
|
||||
|
||||
export function internRecording(recording: Recording): {
|
||||
values: ValuePool
|
||||
recording: InternedRecording
|
||||
} {
|
||||
const pool: ValuePool = {}
|
||||
const canonical = new Map<string, string>()
|
||||
const checkpoints = recording.checkpoints.map((checkpoint) => {
|
||||
const observation = {} as InternedObservation
|
||||
for (const field of OBSERVATION_FIELDS) {
|
||||
const value = checkpoint.observation[field]
|
||||
const json = canonicalJson(value)
|
||||
const hash = valueHash(value)
|
||||
const seen = canonical.get(hash)
|
||||
if (seen !== undefined && seen !== json) {
|
||||
throw new Error(`Golden value hash collision at ${hash} (${checkpoint.id}.${field})`)
|
||||
}
|
||||
canonical.set(hash, json)
|
||||
pool[hash] = value
|
||||
observation[field] = hash
|
||||
}
|
||||
return { id: checkpoint.id, observation }
|
||||
})
|
||||
// Hash-ordered so a value's position in the pool does not move when checkpoints are reordered.
|
||||
const values = Object.fromEntries(
|
||||
Object.keys(pool)
|
||||
.sort()
|
||||
.map((hash) => [hash, pool[hash] as RecordedValue])
|
||||
)
|
||||
return { values, recording: { scenario: recording.scenario, checkpoints } }
|
||||
}
|
||||
|
||||
export function resolveRecording(values: ValuePool, recording: InternedRecording): Recording {
|
||||
return {
|
||||
scenario: recording.scenario,
|
||||
checkpoints: recording.checkpoints.map((checkpoint) => {
|
||||
const observation = {} as Observation
|
||||
for (const field of OBSERVATION_FIELDS) {
|
||||
const hash = checkpoint.observation[field]
|
||||
if (!(hash in values)) {
|
||||
throw new Error(
|
||||
`Golden value ${hash} is missing from the pool (${checkpoint.id}.${field})`
|
||||
)
|
||||
}
|
||||
observation[field] = values[hash] as RecordedValue
|
||||
}
|
||||
return { id: checkpoint.id, observation }
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
import { createElement } from 'react'
|
||||
import { act, create, type ReactTestRenderer } from 'react-test-renderer'
|
||||
|
||||
export function hookMount(render: () => void) {
|
||||
let renderer: ReactTestRenderer | undefined
|
||||
function Harness() {
|
||||
render()
|
||||
return null
|
||||
}
|
||||
return {
|
||||
mount() {
|
||||
act(() => {
|
||||
renderer = create(createElement(Harness))
|
||||
})
|
||||
},
|
||||
update() {
|
||||
act(() => {
|
||||
renderer?.update(createElement(Harness))
|
||||
})
|
||||
},
|
||||
unmount() {
|
||||
act(() => {
|
||||
renderer?.unmount()
|
||||
renderer = undefined
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function performHookAction<T>(action: () => T): T {
|
||||
let result!: T
|
||||
act(() => {
|
||||
result = action()
|
||||
})
|
||||
return result
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
import type { MountContext } from './recording-scenario'
|
||||
|
||||
export function projectObservable(value: unknown): unknown {
|
||||
if (value instanceof Set) {
|
||||
return [...value].map(projectObservable)
|
||||
}
|
||||
if (value instanceof Map) {
|
||||
return [...value].map(([key, entry]) => [key, projectObservable(entry)])
|
||||
}
|
||||
if (Array.isArray(value)) {
|
||||
return value.map(projectObservable)
|
||||
}
|
||||
if (value && typeof value === 'object') {
|
||||
return Object.fromEntries(
|
||||
Object.entries(value).map(([key, entry]) => [
|
||||
key,
|
||||
key === 'client' ? 'logical-client' : projectObservable(entry)
|
||||
])
|
||||
)
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
||||
export function observableModel(context: MountContext, initial: Record<string, unknown>) {
|
||||
const values = { ...initial }
|
||||
const callbacks = new Map<string, (value: unknown) => void>()
|
||||
return new Proxy(values, {
|
||||
get(target, key: string) {
|
||||
if (key in target) {
|
||||
return target[key]
|
||||
}
|
||||
if (!key.startsWith('set') || key.length < 4) {
|
||||
throw new Error(`Missing model fixture: ${key}`)
|
||||
}
|
||||
if (!callbacks.has(key)) {
|
||||
const field = key[3].toLowerCase() + key.slice(4)
|
||||
callbacks.set(key, (value) => {
|
||||
target[field] = typeof value === 'function' ? value(target[field]) : value
|
||||
context.effect(field, projectObservable(target[field]))
|
||||
})
|
||||
}
|
||||
return callbacks.get(key)
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
import { compileFunction } from 'node:vm'
|
||||
import { existsSync, readFileSync } from 'node:fs'
|
||||
import { dirname, resolve } from 'node:path'
|
||||
import * as React from 'react'
|
||||
import ts from 'typescript'
|
||||
import { OPERATION_EXPOSURES, OPERATION_MUTATIONS, type Mutation } from './operation-mutations'
|
||||
|
||||
export type { Mutation }
|
||||
export type OperationModule = Record<string, (...args: any[]) => unknown>
|
||||
|
||||
// Only mounting boundaries are substituted; every operation and projection is loaded from source.
|
||||
export function operationModuleLoader(root: string, mutation?: Mutation) {
|
||||
const cache = new Map<string, OperationModule>()
|
||||
let mutationCount = 0
|
||||
function pathFor(base: string): string {
|
||||
const file = ['', '.ts', '.tsx', '/index.ts']
|
||||
.map((suffix) => base + suffix)
|
||||
.find((path) => existsSync(path) && /\.tsx?$/.test(path))
|
||||
if (!file) {
|
||||
throw new Error(`Module not found: ${base}`)
|
||||
}
|
||||
return file
|
||||
}
|
||||
function imported(base: string, name: string): unknown {
|
||||
if (name === 'react') {
|
||||
return React
|
||||
}
|
||||
if (!name.startsWith('.')) {
|
||||
return new Proxy(
|
||||
{},
|
||||
{
|
||||
get: () => {
|
||||
throw new Error(`Unspecified native mounting dependency: ${name}`)
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
return new Proxy(
|
||||
{},
|
||||
{ get: (_target, key) => load(pathFor(resolve(dirname(base), name)))[String(key)] }
|
||||
)
|
||||
}
|
||||
function barrel(file: string, source: string): OperationModule {
|
||||
const parsed = ts.createSourceFile(file, source, ts.ScriptTarget.Latest, true)
|
||||
return new Proxy(
|
||||
{},
|
||||
{
|
||||
get: (_target, key) => {
|
||||
for (const statement of parsed.statements) {
|
||||
if (
|
||||
!ts.isExportDeclaration(statement) ||
|
||||
!statement.moduleSpecifier ||
|
||||
!ts.isStringLiteral(statement.moduleSpecifier) ||
|
||||
statement.isTypeOnly
|
||||
) {
|
||||
continue
|
||||
}
|
||||
const name = statement.moduleSpecifier.text
|
||||
if (statement.exportClause && ts.isNamedExports(statement.exportClause)) {
|
||||
const binding = statement.exportClause.elements.find(
|
||||
(item) => item.name.text === key && !item.isTypeOnly
|
||||
)
|
||||
if (binding) {
|
||||
return (imported(file, name) as OperationModule)[
|
||||
binding.propertyName?.text ?? String(key)
|
||||
]
|
||||
}
|
||||
} else if (!statement.exportClause) {
|
||||
const target = pathFor(resolve(dirname(file), name))
|
||||
const text = readFileSync(target, 'utf8')
|
||||
if (
|
||||
new RegExp(`export (?:async )?(?:function|const|class) ${String(key)}\\b`).test(
|
||||
text
|
||||
)
|
||||
) {
|
||||
return load(target)[String(key)]
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new Error(`Unmapped barrel export: ${String(key)} in ${file}`)
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
function load(file: string): OperationModule {
|
||||
const cached = cache.get(file)
|
||||
if (cached) {
|
||||
return cached
|
||||
}
|
||||
let source = readFileSync(file, 'utf8')
|
||||
if (/mobile-tasks-(dependencies|legacy-foundation)\.tsx?$/.test(file)) {
|
||||
const result = barrel(file, source)
|
||||
cache.set(file, result)
|
||||
return result
|
||||
}
|
||||
const spec = mutation ? OPERATION_MUTATIONS[mutation] : undefined
|
||||
if (spec && file.endsWith(spec.file)) {
|
||||
// Counting occurrences, not replace calls: `replace` would silently take only the first.
|
||||
const occurrences = source.split(spec.before).length - 1
|
||||
if (occurrences !== 1) {
|
||||
throw new Error(`Mutant anchor matched ${occurrences} sites, expected 1: ${mutation}`)
|
||||
}
|
||||
source = source.replace(spec.before, spec.after)
|
||||
mutationCount++
|
||||
}
|
||||
const exports: OperationModule = {}
|
||||
cache.set(file, exports)
|
||||
const output = ts.transpileModule(source, {
|
||||
compilerOptions: {
|
||||
module: ts.ModuleKind.CommonJS,
|
||||
target: ts.ScriptTarget.ES2022,
|
||||
jsx: ts.JsxEmit.React
|
||||
}
|
||||
}).outputText
|
||||
const exposure = OPERATION_EXPOSURES.find(([suffix]) => file.endsWith(suffix))?.[1] ?? ''
|
||||
const evaluate = compileFunction(output + exposure, ['require', 'exports'], { filename: file })
|
||||
evaluate((name: string) => imported(file, name), exports)
|
||||
return exports
|
||||
}
|
||||
return {
|
||||
load: <T = OperationModule>(path: string): T =>
|
||||
load(pathFor(resolve(root, path))) as unknown as T,
|
||||
assertMutationApplied: () => {
|
||||
if (mutation && mutationCount !== 1) {
|
||||
throw new Error(`Expected one mutation, applied ${mutationCount}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
/**
|
||||
* One in-memory source edit per adapter family. Each anchor names a real expression in a mounted
|
||||
* operation; the recording that owns the family must change visible state when it is applied, which
|
||||
* is what proves that family's `state()` projection observes the operation's actual output.
|
||||
*/
|
||||
export type OperationMutation = {
|
||||
/** Suffix of the mounted source file the anchor belongs to. */
|
||||
file: string
|
||||
before: string
|
||||
after: string
|
||||
}
|
||||
|
||||
export const OPERATION_MUTATIONS = {
|
||||
// Loses the generation comparison, so a stale workspace response poisons the search cache.
|
||||
race: {
|
||||
file: 'use-mobile-native-chat-file-search.ts',
|
||||
before: '!response.ok || generationRef.current !== generation',
|
||||
after: '!response.ok'
|
||||
},
|
||||
// Accepts a null result envelope instead of rejecting it. The guard is repeated for three
|
||||
// mutations in this file; the anchor carries the message so only the recorded one is edited.
|
||||
acceptance: {
|
||||
file: 'use-mobile-tasks-project-metadata-actions.tsx',
|
||||
before: `if (result.ok === false) {
|
||||
throw new Error(result.error?.message ?? 'Failed to update GitHub item')`,
|
||||
after: `if (result?.ok === false) {
|
||||
throw new Error(result.error?.message ?? 'Failed to update GitHub item')`
|
||||
},
|
||||
// Rejects the barrier early, so the sibling comment request is abandoned out of order.
|
||||
order: {
|
||||
file: 'use-mobile-tasks-item-detail-loading.tsx',
|
||||
before: `{ timeoutMs: 30_000 }
|
||||
),
|
||||
client.sendRequest(
|
||||
'linear.issueComments'`,
|
||||
after: `{ timeoutMs: 30_000 }
|
||||
).then((response) => { if (!isSuccess(response)) throw new Error(response.error.message); return response }),
|
||||
client.sendRequest(
|
||||
'linear.issueComments'`
|
||||
},
|
||||
// Reads the overrides one level above the settings envelope.
|
||||
'bot-overrides-envelope': {
|
||||
file: 'use-pr-bot-author-overrides.ts',
|
||||
before: 'const overrides = result?.settings?.prBotAuthorOverrides',
|
||||
after:
|
||||
'const overrides = (result as { prBotAuthorOverrides?: unknown } | null)?.prBotAuthorOverrides'
|
||||
},
|
||||
// Keeps the settings envelope instead of unwrapping it into the runtime settings.
|
||||
'workspace-context-envelope': {
|
||||
file: 'use-new-workspace-runtime-context.ts',
|
||||
before: ` settingsResult.result as {
|
||||
settings: NewWorktreeRuntimeSettings & { visibleTaskProviders?: unknown }
|
||||
}
|
||||
).settings`,
|
||||
after: ` settingsResult.result as NewWorktreeRuntimeSettings & {
|
||||
visibleTaskProviders?: unknown
|
||||
}
|
||||
)`
|
||||
},
|
||||
// Treats any successful linear.status reply as a connected Linear account.
|
||||
'home-providers-linear': {
|
||||
file: 'mobile-home-host-requests.ts',
|
||||
before: 'linearConnected: linear?.connected === true',
|
||||
after: 'linearConnected: linear !== null'
|
||||
},
|
||||
// Reads the host platform from the wrong field of the host.platform result.
|
||||
'repo-metadata-platform': {
|
||||
file: 'use-host-repo-metadata.ts',
|
||||
before: 'const platform = (result as { platform?: unknown } | null)?.platform',
|
||||
after: 'const platform = (result as { hostPlatform?: unknown } | null)?.hostPlatform'
|
||||
},
|
||||
// Hydrates the runtime task settings from the envelope rather than its settings member.
|
||||
'task-hydration-envelope': {
|
||||
file: 'use-mobile-tasks-runtime-hydration.tsx',
|
||||
before: ` ? (((settingsResponse.result as { settings?: RuntimeTaskSettings }).settings ??
|
||||
{}) as RuntimeTaskSettings)`,
|
||||
after: ' ? ((settingsResponse.result ?? {}) as RuntimeTaskSettings)'
|
||||
},
|
||||
// Applies the preset only after the write settles, dropping the optimistic update.
|
||||
'task-preferences-optimistic': {
|
||||
file: 'use-mobile-tasks-client-settings-actions.tsx',
|
||||
before: ` setDefaultGitHubPreset(preset)
|
||||
if (!client || !taskUiReady) {
|
||||
return
|
||||
}
|
||||
void client.sendRequest('settings.update', { defaultTaskViewPreset: preset }).catch(() => {`,
|
||||
after: ` if (!client || !taskUiReady) {
|
||||
setDefaultGitHubPreset(preset)
|
||||
return
|
||||
}
|
||||
void client
|
||||
.sendRequest('settings.update', { defaultTaskViewPreset: preset })
|
||||
.then(() => setDefaultGitHubPreset(preset))
|
||||
.catch(() => {`
|
||||
},
|
||||
// Publishes the settings envelope as the refreshed workspace runtime settings.
|
||||
'workspace-submit-envelope': {
|
||||
file: 'use-new-workspace-create-submit.ts',
|
||||
before: ` latestRuntimeSettings = result.settings
|
||||
args.setRuntimeSettings(result.settings)`,
|
||||
after: ` latestRuntimeSettings = result as unknown as NewWorktreeRuntimeSettings
|
||||
args.setRuntimeSettings(result as unknown as NewWorktreeRuntimeSettings)`
|
||||
},
|
||||
// Publishes the settings envelope as the refreshed task runtime settings.
|
||||
'task-workspace-envelope': {
|
||||
file: 'use-mobile-tasks-workspace-create-actions.tsx',
|
||||
before: ` latestRuntimeTaskSettings = ((
|
||||
settingsResponse.result as { settings?: RuntimeTaskSettings }
|
||||
).settings ?? {}) as RuntimeTaskSettings`,
|
||||
after:
|
||||
' latestRuntimeTaskSettings = (settingsResponse.result ?? {}) as RuntimeTaskSettings'
|
||||
}
|
||||
} as const satisfies Record<string, OperationMutation>
|
||||
|
||||
export type Mutation = keyof typeof OPERATION_MUTATIONS
|
||||
|
||||
/**
|
||||
* Appended to a mounted module after transpile, keyed by file suffix. An adapter drives a real
|
||||
* operation the product keeps module-private; exposing it here beats editing the pinned source.
|
||||
*/
|
||||
export const OPERATION_EXPOSURES: readonly (readonly [string, string])[] = [
|
||||
[
|
||||
'MobileAgentSessionHistoryPanel.tsx',
|
||||
'\nexports.loadMobileResumeMetadata = loadMobileResumeMetadata;'
|
||||
]
|
||||
]
|
||||
@@ -0,0 +1,221 @@
|
||||
import { observableModel } from './observable-model'
|
||||
import { settingsMountAdapters } from './settings-mount-adapters'
|
||||
import { workspaceSettingsMounts } from './workspace-settings-mounts'
|
||||
import type { MountAdapter } from './recording-scenario'
|
||||
import { hookMount, performHookAction } from './hook-mount'
|
||||
import { operationModuleLoader, type Mutation } from './operation-module-loader'
|
||||
|
||||
export function pilotMountAdapters(
|
||||
root: string,
|
||||
options: { reference?: boolean; mutation?: Mutation } = {}
|
||||
) {
|
||||
const modules = operationModuleLoader(root, options.mutation)
|
||||
const adapters: Record<string, MountAdapter> = {
|
||||
...settingsMountAdapters(modules),
|
||||
...workspaceSettingsMounts(modules),
|
||||
'workspace.file-inventory': ({ client }) => {
|
||||
const useSearch = modules.load<
|
||||
typeof import('../../session/use-mobile-native-chat-file-search')
|
||||
>('mobile/src/session/use-mobile-native-chat-file-search.ts').useMobileNativeChatFileSearch
|
||||
const operations = options.reference
|
||||
? modules
|
||||
.load('mobile/src/session/native-host-session-native-chat-operations.ts')
|
||||
.nativeHostSessionNativeChatOperations(client)
|
||||
: undefined
|
||||
let workspace = 'A'
|
||||
let state: ReturnType<typeof useSearch>
|
||||
const hook = hookMount(() => {
|
||||
state = useSearch({ client, operations, worktreeId: workspace } as Parameters<
|
||||
typeof useSearch
|
||||
>[0])
|
||||
})
|
||||
return {
|
||||
action(name, args) {
|
||||
if (name === 'mount' || name === 'remount') {
|
||||
return hook.mount()
|
||||
}
|
||||
if (name === 'unmount') {
|
||||
return hook.unmount()
|
||||
}
|
||||
if (name === 'select') {
|
||||
workspace = String(args.workspace)
|
||||
return hook.update()
|
||||
}
|
||||
if (name === 'reset') {
|
||||
const previous = workspace
|
||||
workspace = `${workspace}-reset`
|
||||
hook.update()
|
||||
workspace = previous
|
||||
return hook.update()
|
||||
}
|
||||
if (name === 'query') {
|
||||
return performHookAction(() => state.loadNativeChatFiles(String(args.query)))
|
||||
}
|
||||
if (name === 'blur') {
|
||||
return
|
||||
}
|
||||
throw new Error(`Unknown inventory action: ${name}`)
|
||||
},
|
||||
state: () => ({ files: state?.nativeChatFilePaths ?? [] }),
|
||||
dispose: hook.unmount
|
||||
}
|
||||
},
|
||||
'project.update-metadata': (context) => {
|
||||
const useMetadata = modules.load<
|
||||
typeof import('../../tasks/use-mobile-tasks-project-metadata-actions')
|
||||
>(
|
||||
'mobile/src/tasks/use-mobile-tasks-project-metadata-actions.tsx'
|
||||
).useMobileTasksProjectMetadataActions
|
||||
const row = {
|
||||
id: 'item-1',
|
||||
itemType: 'ISSUE',
|
||||
content: { repository: 'owner/repo', number: 1, labels: [], assignees: [] }
|
||||
}
|
||||
const model = observableModel(context, {
|
||||
projectMutating: false,
|
||||
projectRowDetailError: '',
|
||||
projectRowItem: row,
|
||||
githubProjectTable: { rows: [row] },
|
||||
projectRowDetail: null,
|
||||
projectFieldDrafts: {}
|
||||
})
|
||||
Object.assign(model, {
|
||||
client: context.client,
|
||||
activeGitHubProjectHost: 'github.enterprise.test'
|
||||
})
|
||||
if (options.reference) {
|
||||
model.taskOperations = {
|
||||
projectMutation: modules
|
||||
.load('mobile/src/tasks/native-host-task-project-mutation-operations.ts')
|
||||
.nativeHostTaskProjectMutationOperations(context.client)
|
||||
}
|
||||
}
|
||||
let actions: ReturnType<typeof useMetadata>
|
||||
const hook = hookMount(() => {
|
||||
actions = useMetadata(model as unknown as Parameters<typeof useMetadata>[0])
|
||||
})
|
||||
return {
|
||||
action(name) {
|
||||
if (name === 'mount') {
|
||||
return hook.mount()
|
||||
}
|
||||
if (name === 'submit') {
|
||||
return actions.mutateProjectRowMetadata(
|
||||
row as unknown as Parameters<typeof actions.mutateProjectRowMetadata>[0],
|
||||
{ addLabels: ['recorded'] }
|
||||
)
|
||||
}
|
||||
throw new Error(`Unknown project action: ${name}`)
|
||||
},
|
||||
state: () => ({
|
||||
mutating: model.projectMutating,
|
||||
error: model.projectRowDetailError,
|
||||
row: model.projectRowItem
|
||||
}),
|
||||
dispose: hook.unmount
|
||||
}
|
||||
},
|
||||
'linear.issue-detail': (context) => {
|
||||
const useDetail = modules.load<
|
||||
typeof import('../../tasks/use-mobile-tasks-item-detail-loading')
|
||||
>('mobile/src/tasks/use-mobile-tasks-item-detail-loading.tsx').useMobileTasksItemDetailLoading
|
||||
const model = observableModel(context, {
|
||||
actionItem: {
|
||||
provider: 'linear',
|
||||
source: { id: 'issue-1', workspaceId: 'linear-workspace' }
|
||||
},
|
||||
detailLoading: false,
|
||||
detailError: '',
|
||||
detailPayload: null,
|
||||
items: []
|
||||
})
|
||||
Object.assign(model, { client: context.client, tasksSupported: true, detailRefreshSeq: 0 })
|
||||
if (options.reference) {
|
||||
model.taskOperations = {
|
||||
detail: modules
|
||||
.load('mobile/src/tasks/native-host-task-detail-operations.ts')
|
||||
.nativeHostTaskDetailOperations(context.client)
|
||||
}
|
||||
}
|
||||
const hook = hookMount(() => {
|
||||
useDetail(model as unknown as Parameters<typeof useDetail>[0])
|
||||
})
|
||||
return {
|
||||
action(name) {
|
||||
if (name === 'mount' || name === 'remount') {
|
||||
return hook.mount()
|
||||
}
|
||||
if (name === 'unmount') {
|
||||
return hook.unmount()
|
||||
}
|
||||
if (name === 'reset') {
|
||||
model.detailRefreshSeq = Number(model.detailRefreshSeq) + 1
|
||||
return hook.update()
|
||||
}
|
||||
if (name === 'blur') {
|
||||
return
|
||||
}
|
||||
throw new Error(`Unknown detail action: ${name}`)
|
||||
},
|
||||
state: () => ({
|
||||
loading: model.detailLoading,
|
||||
error: model.detailError,
|
||||
payload: model.detailPayload
|
||||
}),
|
||||
dispose: hook.unmount
|
||||
}
|
||||
},
|
||||
'settings.new-tab-agents': ({ client }) => {
|
||||
const load = modules.load<typeof import('../../session/mobile-new-tab-agent-loader')>(
|
||||
'mobile/src/session/mobile-new-tab-agent-loader.ts'
|
||||
).loadMobileNewTabAgentOptions
|
||||
return {
|
||||
action: (_name, args) =>
|
||||
load({ client, worktreeId: String(args.workspace ?? 'repo-1::/folder') }),
|
||||
state: () => ({}),
|
||||
dispose: () => {}
|
||||
}
|
||||
},
|
||||
'settings.task-preferences': (context) => {
|
||||
const usePreferences = modules.load<
|
||||
typeof import('../../tasks/use-mobile-tasks-client-settings-actions')
|
||||
>(
|
||||
'mobile/src/tasks/use-mobile-tasks-client-settings-actions.tsx'
|
||||
).useMobileTasksClientSettingsActions
|
||||
const model = observableModel(context, {
|
||||
defaultGitHubPreset: 'all',
|
||||
githubProjectSettings: {}
|
||||
})
|
||||
Object.assign(model, {
|
||||
client: context.client,
|
||||
clientRef: { current: context.client },
|
||||
repoSelectionHydratedRef: { current: false },
|
||||
defaultRepoSelectionRef: { current: null },
|
||||
taskUiReady: true,
|
||||
githubProjectFieldVisibilityScope: null,
|
||||
taskResumeRef: { current: {} },
|
||||
trustedOrcaHooks: {}
|
||||
})
|
||||
let actions: ReturnType<typeof usePreferences>
|
||||
const hook = hookMount(() => {
|
||||
actions = usePreferences(model as unknown as Parameters<typeof usePreferences>[0])
|
||||
})
|
||||
return {
|
||||
action(name, args) {
|
||||
if (name === 'mount') {
|
||||
return hook.mount()
|
||||
}
|
||||
if (name === 'write') {
|
||||
return actions.persistDefaultGitHubPreset(
|
||||
args.preset as Parameters<typeof actions.persistDefaultGitHubPreset>[0]
|
||||
)
|
||||
}
|
||||
throw new Error(`Unknown preferences action: ${name}`)
|
||||
},
|
||||
state: () => ({ preset: model.defaultGitHubPreset }),
|
||||
dispose: hook.unmount
|
||||
}
|
||||
}
|
||||
}
|
||||
return { adapters, assertMutationApplied: modules.assertMutationApplied }
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
import { readScenarios } from './scenario-input'
|
||||
import { resolve } from 'node:path'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { runRecording, runRecordingMutant } from './run-recording'
|
||||
import { pilotMountAdapters } from './pilot-mount-adapters'
|
||||
import { vitestRecordingScheduler } from './vitest-recording-scheduler'
|
||||
import {
|
||||
compareGolden,
|
||||
goldenBytes,
|
||||
goldenRecording,
|
||||
readGolden,
|
||||
writeGolden
|
||||
} from './golden-recording'
|
||||
import type { Recording } from './recording-scenario'
|
||||
import type { RecordedValue } from './recording-values'
|
||||
import type { Mutation } from './operation-mutations'
|
||||
|
||||
const root = resolve(import.meta.dirname, '../../../..')
|
||||
const input = readScenarios(
|
||||
process.env.RPC_FOUNDATION_SCENARIOS ??
|
||||
resolve(root, 'mobile/rpc-foundation/pilot-scenarios.json')
|
||||
)
|
||||
const goldens = process.env.RPC_FOUNDATION_GOLDENS ?? resolve(root, 'mobile/rpc-foundation/goldens')
|
||||
// One mutant per adapter family, so every family's state projection is shown to be load-bearing.
|
||||
const mutants: Record<string, Mutation> = {
|
||||
b1: 'race',
|
||||
b2: 'acceptance',
|
||||
b3: 'order',
|
||||
'settings-bot-overrides-fulfilled': 'bot-overrides-envelope',
|
||||
'settings-workspace-context-fulfilled': 'workspace-context-envelope',
|
||||
'settings-home-providers-fulfilled': 'home-providers-linear',
|
||||
'settings-repo-metadata-fulfilled': 'repo-metadata-platform',
|
||||
'settings-task-hydration-fulfilled': 'task-hydration-envelope',
|
||||
'settings-task-write': 'task-preferences-optimistic',
|
||||
'settings-workspace-submit-fulfilled': 'workspace-submit-envelope',
|
||||
'settings-task-workspace-fulfilled': 'task-workspace-envelope'
|
||||
}
|
||||
/**
|
||||
* The archived tree's visible state, pinned per seed: b1 serves the poisoned empty inventory, b2
|
||||
* accepts the null envelope and applies the label anyway, and b3 reports the issue error instead of
|
||||
* the comments error. An unrelated refactor of those files can no longer keep this green by merely
|
||||
* differing; the mutants remain the defect evidence and this run corroborates them.
|
||||
*/
|
||||
const referenceStates: Record<string, RecordedValue> = {
|
||||
b1: { files: [] },
|
||||
b2: {
|
||||
error: '',
|
||||
mutating: false,
|
||||
row: {
|
||||
content: {
|
||||
assignees: [],
|
||||
labels: [{ color: '808080', name: 'recorded' }],
|
||||
number: 1,
|
||||
repository: 'owner/repo'
|
||||
},
|
||||
id: 'item-1',
|
||||
itemType: 'ISSUE'
|
||||
}
|
||||
},
|
||||
b3: { error: 'issue refused', loading: false, payload: { $rpc: 'null' } }
|
||||
}
|
||||
|
||||
function visibleState(recording: Recording): RecordedValue {
|
||||
return recording.checkpoints.at(-1)!.observation.state
|
||||
}
|
||||
|
||||
describe('RPC main recordings', () => {
|
||||
for (const scenario of input.scenarios) {
|
||||
it(`${scenario.id}: frozen main parity and determinism`, async () => {
|
||||
let first = ''
|
||||
for (let run = 0; run < Number(process.env.RPC_FOUNDATION_DETERMINISM_RUNS ?? 2); run++) {
|
||||
const { adapters } = pilotMountAdapters(root)
|
||||
const recording = await runRecording(
|
||||
scenario,
|
||||
adapters[scenario.operation],
|
||||
vitestRecordingScheduler()
|
||||
)
|
||||
if (scenario.id === 'b1') {
|
||||
expect(visibleState(recording)).toEqual({ files: ['third.ts'] })
|
||||
}
|
||||
if (scenario.id === 'b2') {
|
||||
expect(visibleState(recording)).toMatchObject({
|
||||
error: "Cannot read properties of null (reading 'ok')"
|
||||
})
|
||||
}
|
||||
if (scenario.id === 'b3') {
|
||||
expect(visibleState(recording)).toMatchObject({
|
||||
error: 'comments transport error',
|
||||
loading: false
|
||||
})
|
||||
}
|
||||
const golden = goldenRecording(root, input.baseline, scenario, recording)
|
||||
const bytes = goldenBytes(golden)
|
||||
if (run) {
|
||||
expect(bytes).toBe(first)
|
||||
}
|
||||
first = bytes
|
||||
if (process.env.RPC_FOUNDATION_MODE === '--record') {
|
||||
await writeGolden(goldens, golden, '--record')
|
||||
} else {
|
||||
compareGolden(readGolden(goldens, scenario.id), golden)
|
||||
}
|
||||
}
|
||||
})
|
||||
const mutation = mutants[scenario.id]
|
||||
if (mutation) {
|
||||
it(`${scenario.id}: kills ${mutation}`, async () => {
|
||||
const { adapters, assertMutationApplied } = pilotMountAdapters(root, { mutation })
|
||||
const result = await runRecordingMutant(
|
||||
scenario,
|
||||
adapters[scenario.operation],
|
||||
vitestRecordingScheduler(),
|
||||
readGolden(goldens, scenario.id).recording,
|
||||
visibleState
|
||||
)
|
||||
assertMutationApplied()
|
||||
expect(result.verdict).toBe('killed')
|
||||
})
|
||||
const reference = referenceStates[scenario.id]
|
||||
if (reference) {
|
||||
it.skipIf(!process.env.RPC_FOUNDATION_REFERENCE_ROOT)(
|
||||
`${scenario.id}: rejects bcba08b3e4`,
|
||||
async () => {
|
||||
const { adapters } = pilotMountAdapters(process.env.RPC_FOUNDATION_REFERENCE_ROOT!, {
|
||||
reference: true
|
||||
})
|
||||
const result = await runRecording(
|
||||
scenario,
|
||||
adapters[scenario.operation],
|
||||
vitestRecordingScheduler()
|
||||
)
|
||||
expect(visibleState(result)).toEqual(reference)
|
||||
expect(reference).not.toEqual(visibleState(readGolden(goldens, scenario.id).recording))
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,53 @@
|
||||
import type { RecordingScenario, ScenarioStep } from './recording-scenario'
|
||||
|
||||
/** A generated variant plus the index in its own step list where its distinguishing input lands. */
|
||||
export type DivergingScenario = { scenario: RecordingScenario; divergence: number }
|
||||
|
||||
function stepsKey(steps: readonly ScenarioStep[]): string {
|
||||
// The replacer keeps an explicit-undefined param distinct from an absent one.
|
||||
return JSON.stringify(steps, (_key, value: unknown) =>
|
||||
value === undefined ? '$undefined' : value
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* A checkpoint before a variant's divergence observes steps identical to the base, so every variant
|
||||
* would record the same value. Record those once in a prelude and let each variant start at its own
|
||||
* divergence; checkpoints that merely happen to be equal are left alone.
|
||||
*/
|
||||
export function hoistPreludeCheckpoints(
|
||||
base: RecordingScenario,
|
||||
variants: readonly DivergingScenario[]
|
||||
): RecordingScenario[] {
|
||||
if (!variants.length) {
|
||||
throw new Error(`No variants to hoist: ${base.id}`)
|
||||
}
|
||||
for (const { scenario, divergence } of variants) {
|
||||
if (
|
||||
stepsKey(scenario.steps.slice(0, divergence)) !== stepsKey(base.steps.slice(0, divergence))
|
||||
) {
|
||||
throw new Error(`Variant diverges from the base before its divergence index: ${scenario.id}`)
|
||||
}
|
||||
}
|
||||
const shared = Math.max(...variants.map((variant) => variant.divergence))
|
||||
const preludeSteps = base.steps.slice(0, shared)
|
||||
const scenarios: RecordingScenario[] = []
|
||||
if (preludeSteps.some((step) => 'checkpoint' in step)) {
|
||||
scenarios.push({
|
||||
...base,
|
||||
id: `${base.id}.prelude`,
|
||||
schedules: ['prelude'],
|
||||
steps: preludeSteps
|
||||
})
|
||||
}
|
||||
for (const { scenario, divergence } of variants) {
|
||||
const steps = scenario.steps.filter(
|
||||
(step, index) => !('checkpoint' in step) || index >= divergence
|
||||
)
|
||||
if (!steps.some((step) => 'checkpoint' in step)) {
|
||||
throw new Error(`Variant has no checkpoint at or after its divergence: ${scenario.id}`)
|
||||
}
|
||||
scenarios.push({ ...scenario, steps })
|
||||
}
|
||||
return scenarios
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
import { createHash } from 'node:crypto'
|
||||
import { readFileSync, readdirSync } from 'node:fs'
|
||||
import { join, posix } from 'node:path'
|
||||
|
||||
export const RECORDER_DIRECTORY = 'mobile/src/test-support/rpc-recording'
|
||||
export const RECORDER_SCENARIO_INPUT = 'mobile/rpc-foundation/pilot-scenarios.json'
|
||||
const digests = new Map<string, string>()
|
||||
|
||||
function collect(root: string, relative: string, files: string[]): void {
|
||||
for (const entry of readdirSync(join(root, relative), { withFileTypes: true }).sort((a, b) =>
|
||||
a.name < b.name ? -1 : 1
|
||||
)) {
|
||||
const child = `${relative}/${entry.name}`
|
||||
if (entry.isDirectory()) {
|
||||
collect(root, child, files)
|
||||
} else if (!entry.name.endsWith('.md')) {
|
||||
files.push(child)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Every executable recorder input, so a golden is attributable to one runner and one scenario file.
|
||||
* Prose is excluded because it cannot change a recording; a candidate run recomputes this and
|
||||
* `compareGolden` fails the header, which forces a recorder edit to re-record deliberately.
|
||||
*/
|
||||
export function recorderSha256(root: string): string {
|
||||
const cached = digests.get(root)
|
||||
if (cached !== undefined) {
|
||||
return cached
|
||||
}
|
||||
const files: string[] = []
|
||||
collect(root, RECORDER_DIRECTORY, files)
|
||||
files.push(RECORDER_SCENARIO_INPUT)
|
||||
const digest = createHash('sha256')
|
||||
.update(
|
||||
files
|
||||
.map((file) => `${file}:${readFileSync(join(root, ...file.split(posix.sep)))}`)
|
||||
.join('\n')
|
||||
)
|
||||
.digest('hex')
|
||||
digests.set(root, digest)
|
||||
return digest
|
||||
}
|
||||
@@ -0,0 +1,324 @@
|
||||
import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'
|
||||
import { tmpdir } from 'node:os'
|
||||
import { join } from 'node:path'
|
||||
import { operationModuleLoader } from './operation-module-loader'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { captureArguments, captureError, captureValue } from './recording-values'
|
||||
import { RECORDER_DIRECTORY, recorderSha256 } from './recorder-digest'
|
||||
import { ScriptedRpcTransport } from './scripted-rpc-transport'
|
||||
import { vitestRecordingScheduler } from './vitest-recording-scheduler'
|
||||
import {
|
||||
compareGolden,
|
||||
GOLDEN_FORMAT_VERSION,
|
||||
goldenBytes,
|
||||
PROJECTION_VERSION,
|
||||
readGolden,
|
||||
writeGolden,
|
||||
type GoldenRecording
|
||||
} from './golden-recording'
|
||||
import { hoistPreludeCheckpoints } from './prelude-checkpoints'
|
||||
import { runRecording } from './run-recording'
|
||||
import type { Observation, RecordingScenario } from './recording-scenario'
|
||||
|
||||
describe('recording boundaries', () => {
|
||||
it('preserves omitted arguments, explicit undefined, null, order, and tagged-looking objects', () => {
|
||||
expect(captureArguments(['m'])).not.toEqual(captureArguments(['m', undefined]))
|
||||
expect(captureArguments(['m', undefined])).not.toEqual(captureArguments(['m', null]))
|
||||
expect(captureValue({ b: undefined, a: null })).toEqual(captureValue({ a: null, b: undefined }))
|
||||
expect(captureValue({ $rpc: 'undefined' })).not.toEqual(captureValue(undefined))
|
||||
expect(captureValue([1, 2])).not.toEqual(captureValue([2, 1]))
|
||||
})
|
||||
|
||||
it('runs the actual stable-client projection and physical serialization', async () => {
|
||||
const clock = vitestRecordingScheduler()
|
||||
clock.start()
|
||||
const transport = new ScriptedRpcTransport(clock.elapsed)
|
||||
try {
|
||||
const result = transport.client.sendRequest(
|
||||
'worktree.ps',
|
||||
{ omitted: undefined, nullable: null },
|
||||
{ timeoutMs: 7 }
|
||||
)
|
||||
await clock.flush()
|
||||
expect(transport.requests[0].args).toEqual(
|
||||
captureArguments(['worktree.ps', { omitted: undefined, nullable: null }, { timeoutMs: 7 }])
|
||||
)
|
||||
expect(JSON.parse(transport.payloads[0].json)).toEqual({
|
||||
id: 'frame-1',
|
||||
deviceToken: 'recording-device',
|
||||
method: 'worktree.ps',
|
||||
params: { nullable: null, supportsWorktreeVisibilitySourceDefaults: true }
|
||||
})
|
||||
transport.complete(
|
||||
'worktree.ps#1',
|
||||
{ omitted: undefined, nullable: null, supportsWorktreeVisibilitySourceDefaults: true },
|
||||
{ ok: true, result: null }
|
||||
)
|
||||
await result
|
||||
} finally {
|
||||
transport.dispose()
|
||||
await clock.flush()
|
||||
clock.stop()
|
||||
}
|
||||
})
|
||||
|
||||
it('requires logical bindings plus matching params for concurrent same-method calls', async () => {
|
||||
const clock = vitestRecordingScheduler()
|
||||
clock.start()
|
||||
const transport = new ScriptedRpcTransport(clock.elapsed)
|
||||
try {
|
||||
const left = transport.client.sendRequest('files.list', { worktree: 'A' })
|
||||
const right = transport.client.sendRequest('files.list', { worktree: 'B' })
|
||||
await clock.flush()
|
||||
expect(() => transport.complete('files.list#1', { worktree: 'A' }, {})).toThrow(
|
||||
'logical binding'
|
||||
)
|
||||
expect(() => transport.bind('left', 'files.list#1', { worktree: 'B' })).toThrow(
|
||||
'params mismatch'
|
||||
)
|
||||
transport.bind('left', 'files.list#1', { worktree: 'A' })
|
||||
transport.bind('right', 'files.list#2', { worktree: 'B' })
|
||||
transport.complete('right', { worktree: 'B' }, { ok: true, result: [] })
|
||||
transport.complete('left', { worktree: 'A' }, { ok: true, result: [] })
|
||||
await Promise.all([left, right])
|
||||
} finally {
|
||||
transport.dispose()
|
||||
await clock.flush()
|
||||
clock.stop()
|
||||
}
|
||||
})
|
||||
|
||||
it('records actual deadline ambiguity and leaves peers pending before their deadlines', async () => {
|
||||
const clock = vitestRecordingScheduler()
|
||||
clock.start()
|
||||
const transport = new ScriptedRpcTransport(clock.elapsed)
|
||||
try {
|
||||
void transport.client.sendRequest('short', {}, { timeoutMs: 5 }).catch(() => {})
|
||||
void transport.client.sendRequest('long', {}, { timeoutMs: 50 }).catch(() => {})
|
||||
await clock.advance(5)
|
||||
// Exact virtual milliseconds: the deadline is recorded at the value the product asked for.
|
||||
expect(transport.requests[0].settlement).toEqual({
|
||||
status: 'rejected',
|
||||
startedAt: 0,
|
||||
settledAt: 5,
|
||||
error: {
|
||||
category: 'Error',
|
||||
message: 'Request timed out: short',
|
||||
isRpcDeliveryUnknown: true
|
||||
}
|
||||
})
|
||||
expect(transport.requests[1].settlement).toEqual({ status: 'pending', startedAt: 0 })
|
||||
} finally {
|
||||
transport.dispose()
|
||||
await clock.flush()
|
||||
clock.stop()
|
||||
}
|
||||
})
|
||||
|
||||
it('never writes from candidate mode and requires both recording authorizations', async () => {
|
||||
const directory = mkdtempSync(join(tmpdir(), 'rpc-recording-'))
|
||||
const golden = sampleGolden('test')
|
||||
const previous = process.env.RPC_FOUNDATION_RECORD
|
||||
try {
|
||||
process.env.RPC_FOUNDATION_RECORD = '0'
|
||||
await expect(writeGolden(directory, golden, '--record')).rejects.toThrow('require')
|
||||
process.env.RPC_FOUNDATION_RECORD = '1'
|
||||
await expect(writeGolden(directory, golden, 'candidate')).rejects.toThrow('require')
|
||||
await writeGolden(directory, golden, '--record')
|
||||
expect(readGolden(directory, 'test')).toEqual(golden)
|
||||
expect(() => readGolden(directory, '../escape')).toThrow('Unsafe')
|
||||
writeFileSync(
|
||||
join(directory, 'stale.json'),
|
||||
JSON.stringify({
|
||||
...JSON.parse(readFileSync(join(directory, 'test.json'), 'utf8')),
|
||||
goldenFormatVersion: 1
|
||||
})
|
||||
)
|
||||
expect(() => readGolden(directory, 'stale')).toThrow(
|
||||
`format version 1; this reader requires ${GOLDEN_FORMAT_VERSION}`
|
||||
)
|
||||
} finally {
|
||||
if (previous === undefined) {
|
||||
delete process.env.RPC_FOUNDATION_RECORD
|
||||
} else {
|
||||
process.env.RPC_FOUNDATION_RECORD = previous
|
||||
}
|
||||
rmSync(directory, { recursive: true })
|
||||
}
|
||||
})
|
||||
|
||||
it('pools repeated observation values and still resolves them for comparison', () => {
|
||||
const golden = sampleGolden('pooled')
|
||||
golden.recording.checkpoints.push({ id: 'again', observation: observation('idle') })
|
||||
const file = JSON.parse(goldenBytes(golden)) as {
|
||||
values: Record<string, unknown>
|
||||
recording: { checkpoints: { observation: Observation }[] }
|
||||
}
|
||||
const [first, second] = file.recording.checkpoints
|
||||
expect(second!.observation).toEqual(first!.observation)
|
||||
// [] is shared by three fields; {} and the state object are the other two pool entries.
|
||||
expect(Object.keys(file.values)).toHaveLength(3)
|
||||
expect(file.values[first!.observation.state as unknown as string]).toEqual({ phase: 'idle' })
|
||||
})
|
||||
|
||||
it('names the scenario, checkpoint and field, and prints values rather than hashes', () => {
|
||||
const expected = sampleGolden('diffable')
|
||||
const actual = sampleGolden('diffable')
|
||||
actual.recording.checkpoints[0]!.observation.state = { phase: 'busy' }
|
||||
expect(() => compareGolden(expected, actual)).toThrow(
|
||||
/Recording differs: diffable checkpoint settled field state\.phase[\s\S]*"idle"[\s\S]*"busy"/
|
||||
)
|
||||
})
|
||||
|
||||
it('accepts a dependency bump but still refuses a different baseline', () => {
|
||||
const expected = sampleGolden('provenance')
|
||||
const bumped = sampleGolden('provenance')
|
||||
bumped.lockfileSha256 = 'd'.repeat(64)
|
||||
expect(() => compareGolden(expected, bumped)).not.toThrow()
|
||||
const rebased = sampleGolden('provenance')
|
||||
rebased.baseline = 'e'.repeat(40)
|
||||
expect(() => compareGolden(expected, rebased)).toThrow(
|
||||
/Recording differs: provenance header baseline/
|
||||
)
|
||||
})
|
||||
|
||||
it('records a shared prefix once and refuses a variant that already diverged', () => {
|
||||
const base: RecordingScenario = {
|
||||
id: 'family',
|
||||
operation: 'op',
|
||||
version: 1,
|
||||
family: 'op',
|
||||
sites: [],
|
||||
schedules: [],
|
||||
steps: [
|
||||
{ action: 'mount', id: 'mount' },
|
||||
{ checkpoint: 'pending' },
|
||||
{ complete: 'a#1', params: {}, reply: { ok: true } },
|
||||
{ checkpoint: 'settled' }
|
||||
]
|
||||
}
|
||||
const variant = (id: string, reply: unknown): RecordingScenario => ({
|
||||
...base,
|
||||
id,
|
||||
steps: base.steps.map((step) => ('complete' in step ? { ...step, reply } : step))
|
||||
})
|
||||
const hoisted = hoistPreludeCheckpoints(base, [
|
||||
{ divergence: 2, scenario: variant('family.ok', { ok: true }) },
|
||||
{ divergence: 2, scenario: variant('family.refused', { ok: false }) }
|
||||
])
|
||||
expect(hoisted.map((scenario) => scenario.id)).toEqual([
|
||||
'family.prelude',
|
||||
'family.ok',
|
||||
'family.refused'
|
||||
])
|
||||
expect(hoisted[0]!.steps.filter((step) => 'checkpoint' in step)).toEqual([
|
||||
{ checkpoint: 'pending' }
|
||||
])
|
||||
expect(hoisted[1]!.steps.filter((step) => 'checkpoint' in step)).toEqual([
|
||||
{ checkpoint: 'settled' }
|
||||
])
|
||||
expect(() =>
|
||||
hoistPreludeCheckpoints(base, [
|
||||
{ divergence: 3, scenario: variant('family.late', { ok: false }) }
|
||||
])
|
||||
).toThrow('diverges from the base')
|
||||
})
|
||||
|
||||
it('refuses a checkpoint whose clock drifted from the scripted advances', async () => {
|
||||
const scheduler = vitestRecordingScheduler()
|
||||
await expect(
|
||||
runRecording(
|
||||
{
|
||||
id: 'drift',
|
||||
operation: 'op',
|
||||
version: 1,
|
||||
family: 'op',
|
||||
sites: [],
|
||||
schedules: [],
|
||||
steps: [{ advance: 10 }, { checkpoint: 'settled' }]
|
||||
},
|
||||
() => ({ action: () => {}, state: () => ({}), dispose: () => {} }),
|
||||
{ ...scheduler, elapsed: () => scheduler.elapsed() + 1 }
|
||||
)
|
||||
).rejects.toThrow('Checkpoint clock drifted: drift settled at 11, scripted 10')
|
||||
})
|
||||
|
||||
it('records an error code and cause, and omits both when the error carries neither', () => {
|
||||
expect(captureError(new Error('plain'))).toEqual({
|
||||
category: 'Error',
|
||||
message: 'plain',
|
||||
isRpcDeliveryUnknown: false
|
||||
})
|
||||
const detailed = Object.assign(new TypeError('outer'), {
|
||||
code: 'refused',
|
||||
cause: new Error('inner')
|
||||
})
|
||||
expect(captureError(detailed)).toMatchObject({
|
||||
code: 'refused',
|
||||
cause: { category: 'Error', message: 'inner' }
|
||||
})
|
||||
})
|
||||
|
||||
it('digests every executable recorder input and ignores prose', () => {
|
||||
const root = mkdtempSync(join(tmpdir(), 'rpc-recorder-'))
|
||||
try {
|
||||
const directory = join(root, RECORDER_DIRECTORY)
|
||||
mkdirSync(directory, { recursive: true })
|
||||
mkdirSync(join(root, 'mobile/rpc-foundation'), { recursive: true })
|
||||
writeFileSync(join(root, 'mobile/rpc-foundation/pilot-scenarios.json'), '{}')
|
||||
writeFileSync(join(directory, 'runner.ts'), 'export const runner = 1')
|
||||
const original = recorderSha256(root)
|
||||
writeFileSync(join(directory, 'README.md'), 'prose')
|
||||
expect(recorderSha256(join(root, '.'))).toBe(original)
|
||||
writeFileSync(join(directory, 'runner.ts'), 'export const runner = 2')
|
||||
expect(recorderSha256(join(root, './'))).not.toBe(original)
|
||||
} finally {
|
||||
rmSync(root, { recursive: true })
|
||||
}
|
||||
})
|
||||
|
||||
it('refuses a mutation anchor that matches more than once', () => {
|
||||
const root = mkdtempSync(join(tmpdir(), 'rpc-mutant-'))
|
||||
try {
|
||||
const anchor = 'const overrides = result?.settings?.prBotAuthorOverrides'
|
||||
mkdirSync(join(root, 'mod'), { recursive: true })
|
||||
writeFileSync(
|
||||
join(root, 'mod/use-pr-bot-author-overrides.ts'),
|
||||
`const result = {} as { settings?: { prBotAuthorOverrides?: unknown } }\nexport function first() {\n ${anchor}\n return overrides\n}\nexport function second() {\n ${anchor}\n return overrides\n}\n`
|
||||
)
|
||||
const loader = operationModuleLoader(root, 'bot-overrides-envelope')
|
||||
expect(() => loader.load('mod/use-pr-bot-author-overrides.ts')).toThrow(
|
||||
'matched 2 sites, expected 1'
|
||||
)
|
||||
} finally {
|
||||
rmSync(root, { recursive: true })
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
function observation(phase: string): Observation {
|
||||
return {
|
||||
sender: [],
|
||||
payloads: [],
|
||||
settlements: {},
|
||||
state: { phase },
|
||||
effects: []
|
||||
}
|
||||
}
|
||||
|
||||
function sampleGolden(id: string): GoldenRecording {
|
||||
return {
|
||||
operation: 'op',
|
||||
family: 'op',
|
||||
namedDeltas: [],
|
||||
runnerVersion: 1,
|
||||
baseline: 'a'.repeat(40),
|
||||
lockfileSha256: 'b'.repeat(64),
|
||||
recorderSha256: 'c'.repeat(64),
|
||||
platform: process.platform,
|
||||
scenarioVersion: 1,
|
||||
projectionVersion: PROJECTION_VERSION,
|
||||
goldenFormatVersion: GOLDEN_FORMAT_VERSION,
|
||||
recording: { scenario: id, checkpoints: [{ id: 'settled', observation: observation('idle') }] }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
import type { RpcClient } from '../../transport/rpc-client'
|
||||
import type { RecordedValue } from './recording-values'
|
||||
|
||||
export type RpcRequestSender = Pick<RpcClient, 'sendRequest'>
|
||||
export type Rejection = {
|
||||
message: string
|
||||
category?: 'Error' | 'TypeError'
|
||||
deliveryUnknown?: boolean
|
||||
}
|
||||
export type ScenarioStep =
|
||||
| { action: string; id: string; args?: Record<string, unknown> }
|
||||
| { complete: string; params: unknown; reply?: unknown; reject?: Rejection }
|
||||
| { bind: string; request: string; params: unknown }
|
||||
| { advance: number }
|
||||
| { checkpoint: string }
|
||||
export type RecordingScenario = {
|
||||
id: string
|
||||
operation: string
|
||||
version: number
|
||||
family: string
|
||||
sites: string[]
|
||||
schedules: string[]
|
||||
namedDeltas?: string[]
|
||||
steps: ScenarioStep[]
|
||||
}
|
||||
export type MountedOperation = {
|
||||
action: (name: string, args: Record<string, unknown>) => unknown
|
||||
state: () => unknown
|
||||
dispose: () => void | Promise<void>
|
||||
}
|
||||
export type MountContext = {
|
||||
client: RpcClient
|
||||
effect: (name: string, value: unknown) => void
|
||||
}
|
||||
export type MountAdapter = (context: MountContext) => MountedOperation
|
||||
export type RecordingScheduler = {
|
||||
start: () => void
|
||||
flush: () => Promise<void>
|
||||
advance: (ms: number) => Promise<void>
|
||||
/** Virtual milliseconds since the pinned recording epoch. */
|
||||
elapsed: () => number
|
||||
stop: () => void
|
||||
}
|
||||
export type Observation = {
|
||||
sender: RecordedValue
|
||||
payloads: RecordedValue
|
||||
settlements: RecordedValue
|
||||
state: RecordedValue
|
||||
effects: RecordedValue
|
||||
}
|
||||
export type Recording = {
|
||||
scenario: string
|
||||
checkpoints: { id: string; observation: Observation }[]
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
import { isRpcDeliveryUnknown } from '../../transport/rpc-delivery-ambiguity'
|
||||
|
||||
export type RecordedValue =
|
||||
| null
|
||||
| boolean
|
||||
| number
|
||||
| string
|
||||
| RecordedValue[]
|
||||
| {
|
||||
[key: string]: RecordedValue
|
||||
}
|
||||
|
||||
export function captureValue(value: unknown): RecordedValue {
|
||||
if (value === undefined) {
|
||||
return { $rpc: 'undefined' }
|
||||
}
|
||||
if (value === null) {
|
||||
return { $rpc: 'null' }
|
||||
}
|
||||
if (Array.isArray(value)) {
|
||||
return value.map(captureValue)
|
||||
}
|
||||
if (typeof value === 'object') {
|
||||
if (![Object.prototype, null].includes(Object.getPrototypeOf(value))) {
|
||||
throw new Error('Observation requires an explicit projection for non-plain objects')
|
||||
}
|
||||
const entries = Object.keys(value)
|
||||
.sort()
|
||||
.map((key) => [key, captureValue((value as Record<string, unknown>)[key])] as const)
|
||||
return '$rpc' in value
|
||||
? { $rpc: 'object', entries: entries.map(([key, entry]) => [key, entry]) }
|
||||
: Object.fromEntries(entries)
|
||||
}
|
||||
if (typeof value === 'number' && !Number.isFinite(value)) {
|
||||
return { $rpc: 'number', value: String(value) }
|
||||
}
|
||||
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
||||
return value
|
||||
}
|
||||
throw new Error(`Unsupported observation: ${typeof value}`)
|
||||
}
|
||||
|
||||
export function captureArguments(args: readonly unknown[]): RecordedValue {
|
||||
return ['method', 'params', 'options'].map((name, index) => ({
|
||||
name,
|
||||
value: index < args.length ? captureValue(args[index]) : { $rpc: 'absent' }
|
||||
}))
|
||||
}
|
||||
|
||||
/** `code` and `cause` are recorded only when present, so an error without them keeps three fields. */
|
||||
export function captureError(error: unknown, depth = 0): RecordedValue {
|
||||
const detail = error as { code?: unknown; cause?: unknown }
|
||||
const code = error instanceof Error ? detail.code : undefined
|
||||
const cause = error instanceof Error && depth < 4 ? detail.cause : undefined
|
||||
return {
|
||||
category: error instanceof Error ? error.constructor.name : typeof error,
|
||||
message: error instanceof Error ? error.message : String(error),
|
||||
isRpcDeliveryUnknown: isRpcDeliveryUnknown(error),
|
||||
...(code === undefined ? {} : { code: captureValue(code) }),
|
||||
...(cause === undefined ? {} : { cause: captureError(cause, depth + 1) })
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* `startedAt` and `settledAt` are virtual milliseconds on the pinned fake clock. They give the
|
||||
* observation a temporal dimension: a transition the product schedules for itself, such as a
|
||||
* request deadline or a debounce, is recorded at the time it actually happens, so any change to
|
||||
* that duration moves a recorded number rather than needing a scenario placed across it.
|
||||
*/
|
||||
export type Settlement =
|
||||
| { status: 'pending'; startedAt: number }
|
||||
| { status: 'fulfilled'; startedAt: number; settledAt: number; value: RecordedValue }
|
||||
| { status: 'rejected'; startedAt: number; settledAt: number; error: RecordedValue }
|
||||
|
||||
export function rejectedSettlement(error: unknown, at: number): Settlement {
|
||||
return { status: 'rejected', startedAt: at, settledAt: at, error: captureError(error) }
|
||||
}
|
||||
|
||||
export function observeSettlement(
|
||||
value: unknown,
|
||||
now: () => number,
|
||||
update: (state: Settlement) => void
|
||||
): void {
|
||||
const startedAt = now()
|
||||
update({ status: 'pending', startedAt })
|
||||
Promise.resolve(value).then(
|
||||
(result) =>
|
||||
update({ status: 'fulfilled', startedAt, settledAt: now(), value: captureValue(result) }),
|
||||
(error: unknown) =>
|
||||
update({ status: 'rejected', startedAt, settledAt: now(), error: captureError(error) })
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
import { hoistPreludeCheckpoints } from './prelude-checkpoints'
|
||||
import type { RecordingScenario, Rejection, ScenarioStep } from './recording-scenario'
|
||||
|
||||
export type ReplyPartition = { id: string; reply?: unknown; reject?: Rejection }
|
||||
|
||||
/**
|
||||
* Only shapes a host can send. `successResponse` always sets `result`, so an absent key means the
|
||||
* handler returned undefined and there is no explicit-undefined shape on a JSON wire; `null` is a
|
||||
* real result (`linear.getIssue` on a missing issue, and the b2 seed). The GitHub project
|
||||
* mutations carry an inner `{ok, error}` envelope whose error is a string or an object. Everything
|
||||
* else a client sees is the dispatcher refusing, not knowing the method, or the transport failing.
|
||||
*/
|
||||
export function replyPartitions(normal: unknown): ReplyPartition[] {
|
||||
return [
|
||||
{ id: 'normal', reply: { ok: true, result: normal } },
|
||||
{ id: 'result-absent', reply: { ok: true } },
|
||||
{ id: 'result-null', reply: { ok: true, result: null } },
|
||||
{ id: 'inner-ok-missing', reply: { ok: true, result: { error: 'refused' } } },
|
||||
{
|
||||
id: 'inner-false-string-error',
|
||||
reply: { ok: true, result: { ok: false, error: 'inner refused' } }
|
||||
},
|
||||
{
|
||||
id: 'inner-false-object-error',
|
||||
reply: { ok: true, result: { ok: false, error: { message: 'inner refused' } } }
|
||||
},
|
||||
{
|
||||
id: 'outer-refused',
|
||||
reply: { ok: false, error: { code: 'refused', message: 'outer refused' } }
|
||||
},
|
||||
{
|
||||
id: 'method-not-found',
|
||||
reply: { ok: false, error: { code: 'method_not_found', message: 'Unknown method' } }
|
||||
},
|
||||
{ id: 'transport-rejection', reject: { message: 'transport failure', deliveryUnknown: true } }
|
||||
]
|
||||
}
|
||||
|
||||
export function driveReplyMatrix(
|
||||
base: RecordingScenario,
|
||||
request: string,
|
||||
normal: unknown
|
||||
): RecordingScenario[] {
|
||||
const sites = base.steps.flatMap((step, index) =>
|
||||
'complete' in step && step.complete === request ? [index] : []
|
||||
)
|
||||
if (sites.length !== 1) {
|
||||
throw new Error(`Matrix requires exactly one completion: ${request}`)
|
||||
}
|
||||
const divergence = sites[0]!
|
||||
return hoistPreludeCheckpoints(
|
||||
base,
|
||||
replyPartitions(normal).map((partition) => ({
|
||||
divergence,
|
||||
scenario: {
|
||||
...base,
|
||||
id: `${base.id}.${partition.id}`,
|
||||
steps: base.steps.map((step, index): ScenarioStep =>
|
||||
index === divergence && 'complete' in step
|
||||
? {
|
||||
complete: request,
|
||||
params: step.params,
|
||||
...('reject' in partition
|
||||
? { reject: partition.reject }
|
||||
: { reply: partition.reply })
|
||||
}
|
||||
: step
|
||||
)
|
||||
}
|
||||
}))
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
import { recordUnhandledRejections } from './unhandled-recording'
|
||||
import {
|
||||
captureValue,
|
||||
observeSettlement,
|
||||
rejectedSettlement,
|
||||
type Settlement,
|
||||
type RecordedValue
|
||||
} from './recording-values'
|
||||
import type {
|
||||
MountAdapter,
|
||||
Recording,
|
||||
RecordingScenario,
|
||||
RecordingScheduler,
|
||||
MountedOperation
|
||||
} from './recording-scenario'
|
||||
import { ScriptedRpcTransport } from './scripted-rpc-transport'
|
||||
|
||||
export async function runRecording(
|
||||
scenario: RecordingScenario,
|
||||
mount: MountAdapter,
|
||||
scheduler: RecordingScheduler
|
||||
): Promise<Recording> {
|
||||
scheduler.start()
|
||||
const transport = new ScriptedRpcTransport(scheduler.elapsed)
|
||||
const effects: { name: string; value: RecordedValue }[] = []
|
||||
const settlements: Record<string, Settlement> = {}
|
||||
const recording: Recording = { scenario: scenario.id, checkpoints: [] }
|
||||
const effect = (name: string, value: unknown) => {
|
||||
effects.push({ name, value: captureValue(value) })
|
||||
}
|
||||
const stopUnhandled = recordUnhandledRejections(effect)
|
||||
let mounted: MountedOperation | undefined
|
||||
const ids = new Set<string>()
|
||||
let advanced = 0
|
||||
try {
|
||||
mounted = mount({ client: transport.client, effect })
|
||||
for (const step of scenario.steps) {
|
||||
if ('action' in step) {
|
||||
if (ids.has(step.id)) {
|
||||
throw new Error(`Duplicate action: ${step.id}`)
|
||||
}
|
||||
ids.add(step.id)
|
||||
try {
|
||||
const value =
|
||||
step.action === 'disconnect'
|
||||
? transport.disconnect()
|
||||
: step.action === 'cutover'
|
||||
? transport.cutover()
|
||||
: mounted.action(step.action, step.args ?? {})
|
||||
observeSettlement(value, scheduler.elapsed, (state) => {
|
||||
settlements[step.id] = state
|
||||
})
|
||||
} catch (error) {
|
||||
settlements[step.id] = rejectedSettlement(error, scheduler.elapsed())
|
||||
}
|
||||
} else if ('complete' in step) {
|
||||
transport.complete(step.complete, step.params, step.reply, step.reject)
|
||||
} else if ('bind' in step) {
|
||||
transport.bind(step.bind, step.request, step.params)
|
||||
} else if ('advance' in step) {
|
||||
advanced += step.advance
|
||||
await scheduler.advance(step.advance)
|
||||
}
|
||||
await scheduler.flush()
|
||||
if ('checkpoint' in step) {
|
||||
// A checkpoint's own clock is the sum of the scripted advances, so recording it would add
|
||||
// bytes and no signal. Asserted rather than recorded, so a future drift fails loudly.
|
||||
if (scheduler.elapsed() !== advanced) {
|
||||
throw new Error(
|
||||
`Checkpoint clock drifted: ${scenario.id} ${step.checkpoint} at ${scheduler.elapsed()}, scripted ${advanced}`
|
||||
)
|
||||
}
|
||||
recording.checkpoints.push({
|
||||
id: step.checkpoint,
|
||||
observation: {
|
||||
sender: structuredClone(transport.requests) as unknown as RecordedValue,
|
||||
payloads: structuredClone(transport.payloads),
|
||||
settlements: structuredClone(settlements) as unknown as RecordedValue,
|
||||
state: captureValue(mounted.state()),
|
||||
effects: structuredClone(effects)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
if (!recording.checkpoints.length) {
|
||||
throw new Error(`No checkpoints: ${scenario.id}`)
|
||||
}
|
||||
return recording
|
||||
} finally {
|
||||
try {
|
||||
await mounted?.dispose()
|
||||
transport.dispose()
|
||||
await scheduler.flush()
|
||||
} finally {
|
||||
stopUnhandled()
|
||||
scheduler.stop()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export async function runRecordingMutant(
|
||||
scenario: RecordingScenario,
|
||||
mutatedMount: MountAdapter,
|
||||
scheduler: RecordingScheduler,
|
||||
baseline: Recording,
|
||||
project: (recording: Recording) => unknown = (recording) => recording
|
||||
): Promise<{ verdict: 'killed' | 'survived'; recording: Recording }> {
|
||||
const recording = await runRecording(scenario, mutatedMount, scheduler)
|
||||
return {
|
||||
verdict:
|
||||
JSON.stringify(project(recording)) === JSON.stringify(project(baseline))
|
||||
? 'survived'
|
||||
: 'killed',
|
||||
recording
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import { readFileSync } from 'node:fs'
|
||||
import type { RecordingScenario } from './recording-scenario'
|
||||
|
||||
function decode(value: unknown): unknown {
|
||||
if (Array.isArray(value)) {
|
||||
return value.map(decode)
|
||||
}
|
||||
if (value && typeof value === 'object') {
|
||||
if (Object.keys(value).length === 1 && '$undefined' in value && value.$undefined === true) {
|
||||
return undefined
|
||||
}
|
||||
return Object.fromEntries(Object.entries(value).map(([key, entry]) => [key, decode(entry)]))
|
||||
}
|
||||
return value
|
||||
}
|
||||
export function readScenarios(path: string): { baseline: string; scenarios: RecordingScenario[] } {
|
||||
const input = decode(JSON.parse(readFileSync(path, 'utf8'))) as {
|
||||
baseline: string
|
||||
scenarios: RecordingScenario[]
|
||||
}
|
||||
if (
|
||||
!/^[a-f0-9]{40}$/.test(input.baseline) ||
|
||||
!Array.isArray(input.scenarios) ||
|
||||
!input.scenarios.length
|
||||
) {
|
||||
throw new Error('Invalid recording manifest')
|
||||
}
|
||||
const ids = input.scenarios.map((scenario) => scenario.id)
|
||||
if (new Set(ids).size !== ids.length) {
|
||||
throw new Error('Duplicate scenario ids')
|
||||
}
|
||||
return input
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
import { hoistPreludeCheckpoints, type DivergingScenario } from './prelude-checkpoints'
|
||||
import type { RecordingScenario, ScenarioStep } from './recording-scenario'
|
||||
|
||||
type Completion = Extract<ScenarioStep, { complete: string }>
|
||||
export const REQUIRED_SCHEDULES = [
|
||||
'forward',
|
||||
'reverse',
|
||||
'reset-before-first',
|
||||
'reset-after-first',
|
||||
'reset-before-second',
|
||||
'reset-after-second',
|
||||
'a-b-a',
|
||||
'stale-inflight-cleanup',
|
||||
'unmount-remount',
|
||||
'blur-retained-route',
|
||||
'client-cutover',
|
||||
'timeout',
|
||||
'disconnect',
|
||||
'both-reject-forward',
|
||||
'both-reject-reverse',
|
||||
'reject-peer-pending'
|
||||
] as const
|
||||
|
||||
export function siblingSchedules(
|
||||
base: RecordingScenario,
|
||||
first: Completion,
|
||||
second: Completion
|
||||
): RecordingScenario[] {
|
||||
const firstIndex = base.steps.indexOf(first)
|
||||
const secondIndex = base.steps.indexOf(second)
|
||||
if (firstIndex === -1 || secondIndex < firstIndex) {
|
||||
throw new Error('Sibling completions must be ordered members of the base scenario')
|
||||
}
|
||||
const prefix = base.steps.slice(0, firstIndex).filter((step) => !('checkpoint' in step))
|
||||
const suffix = base.steps.slice(secondIndex + 1).filter((step) => !('checkpoint' in step))
|
||||
const checkpoint = { checkpoint: 'sibling-pending' }
|
||||
const rejected = (step: Completion): Completion => ({
|
||||
complete: step.complete,
|
||||
params: step.params,
|
||||
reject: { message: `${step.complete} rejected`, deliveryUnknown: true }
|
||||
})
|
||||
const variants: Record<string, ScenarioStep[]> = {
|
||||
forward: [first, checkpoint, second],
|
||||
reverse: [second, checkpoint, first],
|
||||
'both-reject-forward': [rejected(first), checkpoint, rejected(second)],
|
||||
'both-reject-reverse': [rejected(second), checkpoint, rejected(first)],
|
||||
'reject-peer-pending': [rejected(first), checkpoint],
|
||||
timeout: [{ advance: 30_000 }],
|
||||
disconnect: [{ action: 'disconnect', id: 'disconnect' }],
|
||||
'client-cutover': [{ action: 'cutover', id: 'cutover' }]
|
||||
}
|
||||
return Object.entries(variants).map(([schedule, steps]) => ({
|
||||
...base,
|
||||
id: `${base.id}.${schedule}`,
|
||||
schedules: [schedule],
|
||||
steps: [...prefix, ...steps, ...suffix, { checkpoint: 'settled' }]
|
||||
}))
|
||||
}
|
||||
|
||||
/** Completions are rebound so a lifecycle boundary can land between a request and its reply. */
|
||||
export function bindCompletions(steps: readonly ScenarioStep[]): ScenarioStep[] {
|
||||
return steps.flatMap((step): ScenarioStep[] =>
|
||||
'complete' in step
|
||||
? [
|
||||
{ bind: `lifecycle-${step.complete}`, request: step.complete, params: step.params },
|
||||
{ ...step, complete: `lifecycle-${step.complete}` }
|
||||
]
|
||||
: [step]
|
||||
)
|
||||
}
|
||||
|
||||
export function lifecycleSchedules(
|
||||
base: RecordingScenario,
|
||||
action: 'reset' | 'unmount' | 'blur'
|
||||
): DivergingScenario[] {
|
||||
const completions = base.steps.flatMap((step, index) => ('complete' in step ? [index] : []))
|
||||
return completions.flatMap((index, occurrence) =>
|
||||
['before', 'after'].map((side) => {
|
||||
const insertion = index + (side === 'after' ? 1 : 0)
|
||||
const steps = [...base.steps]
|
||||
steps.splice(
|
||||
insertion,
|
||||
0,
|
||||
{ action, id: `lifecycle-${action}` },
|
||||
{ checkpoint: 'lifecycle-boundary' }
|
||||
)
|
||||
if (action === 'unmount') {
|
||||
steps.push({ action: 'remount', id: 'remount' }, { checkpoint: 'remounted' })
|
||||
}
|
||||
return {
|
||||
divergence: bindCompletions(base.steps.slice(0, insertion)).length,
|
||||
scenario: {
|
||||
...base,
|
||||
id: `${base.id}.${action}-${side}-${occurrence + 1}`,
|
||||
schedules: [`${action}-${side}-${occurrence + 1}`],
|
||||
steps: bindCompletions(steps)
|
||||
}
|
||||
}
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
export function interruptionSchedules(base: RecordingScenario): RecordingScenario[] {
|
||||
const completion = base.steps.findLastIndex((step) => 'complete' in step)
|
||||
if (completion === -1) {
|
||||
throw new Error('Interruption schedule needs an in-flight request')
|
||||
}
|
||||
return hoistPreludeCheckpoints(
|
||||
base,
|
||||
['timeout', 'disconnect', 'cutover'].map((interruption) => ({
|
||||
divergence: completion,
|
||||
scenario: {
|
||||
...base,
|
||||
id: `${base.id}.${interruption}`,
|
||||
schedules: [interruption],
|
||||
steps: [
|
||||
...base.steps.slice(0, completion),
|
||||
interruption === 'timeout'
|
||||
? { advance: 30_000 }
|
||||
: { action: interruption, id: interruption },
|
||||
{ checkpoint: 'interrupted' },
|
||||
...base.steps.slice(completion)
|
||||
]
|
||||
}
|
||||
}))
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
import type { ConnectionState, RpcResponse } from '../../transport/types'
|
||||
import type { RpcClient } from '../../transport/rpc-client'
|
||||
import { RpcClientRequestTracker } from '../../transport/rpc-client-request-tracker'
|
||||
import { createStableLogicalRpcClient } from '../../transport/stable-logical-rpc-client'
|
||||
import { markRpcDeliveryUnknown } from '../../transport/rpc-delivery-ambiguity'
|
||||
import {
|
||||
captureArguments,
|
||||
captureValue,
|
||||
observeSettlement,
|
||||
type Settlement
|
||||
} from './recording-values'
|
||||
import type { Rejection } from './recording-scenario'
|
||||
|
||||
export class ScriptedRpcTransport {
|
||||
readonly requests: {
|
||||
name: string
|
||||
args: ReturnType<typeof captureArguments>
|
||||
settlement: Settlement
|
||||
}[] = []
|
||||
readonly payloads: { name: string; json: string }[] = []
|
||||
readonly client: RpcClient
|
||||
readonly logical
|
||||
private counts = new Map<string, number>()
|
||||
private bindings = new Map<string, { id: string; params: unknown; completed: boolean }>()
|
||||
private aliases = new Map<string, string>()
|
||||
private activeName = ''
|
||||
private frameCount = 0
|
||||
private state: ConnectionState = 'connected'
|
||||
private listeners = new Set<(state: ConnectionState) => void>()
|
||||
private rejects = new Map<string, (error: Error) => void>()
|
||||
private tracker = new RpcClientRequestTracker({
|
||||
nextId: () => `frame-${++this.frameCount}`,
|
||||
getState: () => this.state,
|
||||
waitForConnected: async () => {
|
||||
if (this.state !== 'connected') {
|
||||
throw new Error('Scripted transport disconnected')
|
||||
}
|
||||
},
|
||||
deviceToken: 'recording-device',
|
||||
sendEncrypted: (value) => {
|
||||
const payload = value as { id: string; method: string; params: unknown }
|
||||
const name = this.wireNames.shift()
|
||||
if (!name) {
|
||||
throw new Error('Unbound physical request')
|
||||
}
|
||||
this.bindings.set(name, { id: payload.id, params: payload.params, completed: false })
|
||||
this.payloads.push({ name, json: JSON.stringify(value) })
|
||||
return true
|
||||
}
|
||||
})
|
||||
private wireNames: string[] = []
|
||||
|
||||
/** `now` is the recording scheduler's virtual clock; every settlement is stamped from it. */
|
||||
constructor(private readonly now: () => number = () => 0) {
|
||||
const session = this.session()
|
||||
this.logical = createStableLogicalRpcClient(session, 'lan')
|
||||
this.client = {
|
||||
...this.logical,
|
||||
sendRequest: (...args: Parameters<RpcClient['sendRequest']>) => {
|
||||
const occurrence = (this.counts.get(args[0]) ?? 0) + 1
|
||||
this.counts.set(args[0], occurrence)
|
||||
const name = `${args[0]}#${occurrence}`
|
||||
this.activeName = name
|
||||
const request = {
|
||||
name,
|
||||
args: captureArguments(args),
|
||||
settlement: { status: 'pending', startedAt: this.now() } as Settlement
|
||||
}
|
||||
this.requests.push(request)
|
||||
const promise = this.logical.sendRequest(...args)
|
||||
observeSettlement(promise, this.now, (state) => {
|
||||
request.settlement = state
|
||||
})
|
||||
return promise
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private session(): RpcClient {
|
||||
return {
|
||||
sendRequest: (...args) => {
|
||||
const name = this.activeName
|
||||
this.wireNames.push(name)
|
||||
return new Promise<RpcResponse>((resolve, reject) => {
|
||||
this.rejects.set(name, reject)
|
||||
this.tracker.sendRequest(...args).then(resolve, reject)
|
||||
})
|
||||
},
|
||||
subscribe: () => {
|
||||
throw new Error('Subscriptions are outside this request-only runner')
|
||||
},
|
||||
updateTerminalSubscriptionViewport: () => {},
|
||||
getState: () => this.state,
|
||||
getReconnectAttempt: () => 0,
|
||||
getLastConnectedAt: () => 0,
|
||||
onStateChange: (listener) => {
|
||||
this.listeners.add(listener)
|
||||
return () => {
|
||||
this.listeners.delete(listener)
|
||||
}
|
||||
},
|
||||
notifyForeground: () => {},
|
||||
close: () => {
|
||||
this.tracker.rejectAll('Connection closed', { deliveryUnknown: true })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bind(alias: string, name: string, params: unknown): void {
|
||||
name = this.aliases.get(name) ?? name
|
||||
const binding = this.bindings.get(name)
|
||||
if (!binding || this.aliases.has(alias)) {
|
||||
throw new Error(`Invalid request binding: ${alias}`)
|
||||
}
|
||||
if (JSON.stringify(captureValue(binding.params)) !== JSON.stringify(captureValue(params))) {
|
||||
throw new Error(`Binding params mismatch: ${alias}`)
|
||||
}
|
||||
this.aliases.set(alias, name)
|
||||
}
|
||||
|
||||
complete(name: string, params: unknown, reply: unknown, rejection?: Rejection): void {
|
||||
const alias = this.aliases.get(name)
|
||||
const requestedName = alias ?? name
|
||||
const method = requestedName.split('#')[0]
|
||||
if (
|
||||
!alias &&
|
||||
[...this.bindings].filter(([key, value]) => key.split('#')[0] === method && !value.completed)
|
||||
.length > 1
|
||||
) {
|
||||
throw new Error(`Concurrent requests require a logical binding: ${name}`)
|
||||
}
|
||||
name = requestedName
|
||||
const binding = this.bindings.get(name)
|
||||
if (!binding || binding.completed) {
|
||||
throw new Error(`Missing or completed request: ${name}`)
|
||||
}
|
||||
if (JSON.stringify(captureValue(binding.params)) !== JSON.stringify(captureValue(params))) {
|
||||
throw new Error(`Request params mismatch: ${name}`)
|
||||
}
|
||||
binding.completed = true
|
||||
if (rejection) {
|
||||
const error =
|
||||
rejection.category === 'TypeError'
|
||||
? new TypeError(rejection.message)
|
||||
: new Error(rejection.message)
|
||||
if (rejection.deliveryUnknown) {
|
||||
markRpcDeliveryUnknown(error)
|
||||
}
|
||||
// Resolve the physical tracker to cancel its deadline before injecting the scripted rejection.
|
||||
this.rejects.get(name)?.(error)
|
||||
this.tracker.resolve({ id: binding.id, ok: true, result: null } as RpcResponse)
|
||||
} else {
|
||||
this.tracker.resolve({ ...(reply as object), id: binding.id } as RpcResponse)
|
||||
}
|
||||
}
|
||||
|
||||
disconnect(): void {
|
||||
this.state = 'disconnected'
|
||||
this.tracker.rejectAll('Connection lost', { deliveryUnknown: true })
|
||||
for (const listener of this.listeners) {
|
||||
listener(this.state)
|
||||
}
|
||||
}
|
||||
|
||||
async cutover(): Promise<void> {
|
||||
await this.logical.migrateTo(this.session(), 'relay')
|
||||
}
|
||||
|
||||
dispose(): void {
|
||||
this.logical.close()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,185 @@
|
||||
import type { MountAdapter } from './recording-scenario'
|
||||
import { hookMount } from './hook-mount'
|
||||
import { observableModel, projectObservable } from './observable-model'
|
||||
import { operationModuleLoader } from './operation-module-loader'
|
||||
|
||||
export function settingsMountAdapters(
|
||||
modules: ReturnType<typeof operationModuleLoader>
|
||||
): Record<string, MountAdapter> {
|
||||
return {
|
||||
'settings.bot-overrides': ({ client }) => {
|
||||
const useOverrides = modules.load<typeof import('../../session/use-pr-bot-author-overrides')>(
|
||||
'mobile/src/session/use-pr-bot-author-overrides.ts'
|
||||
).usePRBotAuthorOverrides
|
||||
let state: ReadonlySet<string> = new Set()
|
||||
let revision = 1
|
||||
const hook = hookMount(() => {
|
||||
state = useOverrides(client, 'connected', revision)
|
||||
})
|
||||
return {
|
||||
action(name) {
|
||||
if (name === 'mount' || name === 'remount') {
|
||||
return hook.mount()
|
||||
}
|
||||
if (name === 'unmount') {
|
||||
return hook.unmount()
|
||||
}
|
||||
if (name === 'reset') {
|
||||
revision++
|
||||
return hook.update()
|
||||
}
|
||||
if (name === 'blur') {
|
||||
return
|
||||
}
|
||||
throw new Error(`Unknown overrides action: ${name}`)
|
||||
},
|
||||
state: () => [...state],
|
||||
dispose: hook.unmount
|
||||
}
|
||||
},
|
||||
'settings.workspace-context': ({ client }) => {
|
||||
const useContext = modules.load<
|
||||
typeof import('../../components/use-new-workspace-runtime-context')
|
||||
>('mobile/src/components/use-new-workspace-runtime-context.ts').useNewWorkspaceRuntimeContext
|
||||
let state: ReturnType<typeof useContext>
|
||||
let visible = true
|
||||
const hook = hookMount(() => {
|
||||
state = useContext(client, visible, 'host-1')
|
||||
})
|
||||
return {
|
||||
action(name) {
|
||||
if (name === 'mount' || name === 'remount') {
|
||||
return hook.mount()
|
||||
}
|
||||
if (name === 'unmount') {
|
||||
return hook.unmount()
|
||||
}
|
||||
if (name === 'blur') {
|
||||
visible = false
|
||||
return hook.update()
|
||||
}
|
||||
if (name === 'reset') {
|
||||
visible = true
|
||||
return hook.update()
|
||||
}
|
||||
throw new Error(`Unknown context action: ${name}`)
|
||||
},
|
||||
state: () => ({
|
||||
settings: state?.runtimeSettings,
|
||||
trust: state?.trustedOrcaHooks,
|
||||
providers: state?.availableProviders
|
||||
}),
|
||||
dispose: hook.unmount
|
||||
}
|
||||
},
|
||||
'settings.home-providers': (context) => {
|
||||
const load = modules.load(
|
||||
'mobile/src/home/mobile-home-host-requests.ts'
|
||||
).fetchMobileHomeTaskProviders
|
||||
let providers: unknown = {}
|
||||
let disposed = false
|
||||
return {
|
||||
action(name) {
|
||||
if (name === 'unmount') {
|
||||
disposed = true
|
||||
return
|
||||
}
|
||||
load(
|
||||
context.client,
|
||||
'host-1',
|
||||
(update: (value: unknown) => unknown) => {
|
||||
providers = update(providers)
|
||||
context.effect('providers', providers)
|
||||
},
|
||||
() => disposed
|
||||
)
|
||||
},
|
||||
state: () => providers,
|
||||
dispose: () => {
|
||||
disposed = true
|
||||
}
|
||||
}
|
||||
},
|
||||
'settings.resume-metadata': ({ client }) => {
|
||||
const load = modules.load(
|
||||
'mobile/src/agent-history/MobileAgentSessionHistoryPanel.tsx'
|
||||
).loadMobileResumeMetadata
|
||||
return { action: () => load(client), state: () => ({}), dispose: () => {} }
|
||||
},
|
||||
'settings.repo-metadata': (context) => {
|
||||
const useMetadata = modules.load<typeof import('../../host-screen/use-host-repo-metadata')>(
|
||||
'mobile/src/host-screen/use-host-repo-metadata.ts'
|
||||
).useHostRepoMetadata
|
||||
const state = observableModel(context, {
|
||||
clientRef: { current: context.client },
|
||||
fetchRepoMetadataInFlightRef: { current: new Set() },
|
||||
fetchRepoMetadataPendingRef: { current: new Set() },
|
||||
repoMetadataFetchedAtRef: { current: 0 }
|
||||
})
|
||||
let load: ReturnType<typeof useMetadata>
|
||||
const hook = hookMount(() => {
|
||||
load = useMetadata({
|
||||
client: context.client,
|
||||
connState: 'connected',
|
||||
hostId: 'host-1',
|
||||
state: state as unknown as Parameters<typeof useMetadata>[0]['state']
|
||||
})
|
||||
})
|
||||
return {
|
||||
action(name) {
|
||||
if (name === 'mount') {
|
||||
return hook.mount()
|
||||
}
|
||||
return load({ force: name !== 'load-cached' })
|
||||
},
|
||||
state: () =>
|
||||
projectObservable(
|
||||
Object.fromEntries(Object.entries(state).filter(([key]) => !key.endsWith('Ref')))
|
||||
),
|
||||
dispose: hook.unmount
|
||||
}
|
||||
},
|
||||
'settings.task-hydration': (context) => {
|
||||
const useHydration = modules.load<
|
||||
typeof import('../../tasks/use-mobile-tasks-runtime-hydration')
|
||||
>('mobile/src/tasks/use-mobile-tasks-runtime-hydration.tsx').useMobileTasksRuntimeHydration
|
||||
const model = observableModel(context, {
|
||||
client: context.client,
|
||||
connState: 'connected',
|
||||
defaultLinearTeamSelectionRef: { current: null },
|
||||
defaultRepoSelectionRef: { current: null },
|
||||
repoSelectionHydratedRef: { current: false },
|
||||
taskResumeRef: { current: {} },
|
||||
runtimeTaskSettings: {},
|
||||
taskStateHydrated: false,
|
||||
provider: 'github',
|
||||
repoList: { state: { status: 'loading' } },
|
||||
repos: [],
|
||||
requestedTaskSource: undefined,
|
||||
resetGitHubItemsState: () => context.effect('reset-items', null),
|
||||
resetWorkspaceCreateState: () => context.effect('reset-workspace', null),
|
||||
visibleProviders: ['github']
|
||||
})
|
||||
const hook = hookMount(() => {
|
||||
useHydration(model as unknown as Parameters<typeof useHydration>[0])
|
||||
})
|
||||
return {
|
||||
action(name) {
|
||||
if (name === 'mount' || name === 'remount') {
|
||||
return hook.mount()
|
||||
}
|
||||
if (name === 'unmount') {
|
||||
return hook.unmount()
|
||||
}
|
||||
throw new Error(`Unknown hydration action: ${name}`)
|
||||
},
|
||||
state: () =>
|
||||
projectObservable({
|
||||
settings: model.runtimeTaskSettings,
|
||||
hydrated: model.taskStateHydrated
|
||||
}),
|
||||
dispose: hook.unmount
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import { captureError } from './recording-values'
|
||||
|
||||
let active = false
|
||||
|
||||
// Main's detached effects can reject without a caller promise; record that observable failure too.
|
||||
export function recordUnhandledRejections(
|
||||
effect: (name: string, value: unknown) => void
|
||||
): () => void {
|
||||
if (active) {
|
||||
throw new Error('Recordings must run sequentially in each process')
|
||||
}
|
||||
active = true
|
||||
const previous = process.rawListeners('unhandledRejection')
|
||||
process.removeAllListeners('unhandledRejection')
|
||||
process.on('unhandledRejection', (error) => effect('unhandled-rejection', captureError(error)))
|
||||
return () => {
|
||||
active = false
|
||||
process.removeAllListeners('unhandledRejection')
|
||||
for (const listener of previous) {
|
||||
process.on('unhandledRejection', listener)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
import { act } from 'react-test-renderer'
|
||||
import { vi } from 'vitest'
|
||||
import type { RecordingScheduler } from './recording-scenario'
|
||||
|
||||
const RECORDING_EPOCH = new Date('2026-01-01T00:00:00Z')
|
||||
|
||||
export function vitestRecordingScheduler(): RecordingScheduler {
|
||||
async function flush() {
|
||||
await act(async () => {
|
||||
// Drain promise continuations and due timers without advancing request deadlines.
|
||||
await vi.advanceTimersByTimeAsync(0)
|
||||
})
|
||||
}
|
||||
return {
|
||||
start() {
|
||||
vi.useFakeTimers({
|
||||
toFake: [
|
||||
'Date',
|
||||
'setTimeout',
|
||||
'clearTimeout',
|
||||
'setInterval',
|
||||
'clearInterval',
|
||||
'performance'
|
||||
]
|
||||
})
|
||||
vi.setSystemTime(RECORDING_EPOCH)
|
||||
let seed = 1
|
||||
const random = () => {
|
||||
seed = (Math.imul(seed, 1664525) + 1013904223) >>> 0
|
||||
return seed / 4294967296
|
||||
}
|
||||
vi.spyOn(Math, 'random').mockImplementation(random)
|
||||
if (globalThis.crypto !== undefined) {
|
||||
let id = 0
|
||||
vi.spyOn(globalThis.crypto, 'randomUUID').mockImplementation(
|
||||
() => `00000000-0000-4000-8000-${(++id).toString(16).padStart(12, '0')}`
|
||||
)
|
||||
}
|
||||
if (globalThis.crypto !== undefined) {
|
||||
vi.spyOn(globalThis.crypto, 'getRandomValues').mockImplementation((array) => {
|
||||
if (array) {
|
||||
const bytes = new Uint8Array(array.buffer, array.byteOffset, array.byteLength)
|
||||
for (let i = 0; i < bytes.length; i++) {
|
||||
bytes[i] = Math.floor(random() * 256)
|
||||
}
|
||||
}
|
||||
return array
|
||||
})
|
||||
}
|
||||
},
|
||||
flush,
|
||||
elapsed: () => Date.now() - RECORDING_EPOCH.getTime(),
|
||||
advance: async (ms) => {
|
||||
await act(async () => {
|
||||
await vi.advanceTimersByTimeAsync(ms)
|
||||
})
|
||||
},
|
||||
stop() {
|
||||
vi.clearAllTimers()
|
||||
vi.useRealTimers()
|
||||
vi.restoreAllMocks()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
import type { MountAdapter } from './recording-scenario'
|
||||
import { hookMount, performHookAction } from './hook-mount'
|
||||
import { observableModel, projectObservable } from './observable-model'
|
||||
import { operationModuleLoader } from './operation-module-loader'
|
||||
|
||||
export function workspaceSettingsMounts(
|
||||
modules: ReturnType<typeof operationModuleLoader>
|
||||
): Record<string, MountAdapter> {
|
||||
return {
|
||||
'settings.workspace-submit': (context) => {
|
||||
const useSubmit = modules.load<
|
||||
typeof import('../../components/use-new-workspace-create-submit')
|
||||
>('mobile/src/components/use-new-workspace-create-submit.ts').useNewWorkspaceCreateSubmit
|
||||
const model = observableModel(context, {
|
||||
client: context.client,
|
||||
selectedRepo: { id: 'repo-1', displayName: 'Repo' },
|
||||
selectedAgent: { id: 'claude', label: 'Claude' },
|
||||
runtimeSettings: { disabledTuiAgents: ['claude'] },
|
||||
detectedAgentIds: new Set(['codex']),
|
||||
sshGate: { requiresConnection: false },
|
||||
composer: { name: 'recorded', createSelection: null, isNameAutoManaged: false },
|
||||
note: '',
|
||||
retiredWorktreeNames: {},
|
||||
setupCommand: null,
|
||||
setupTrust: null,
|
||||
setupRunPolicy: 'never',
|
||||
setupDecisionChoice: null,
|
||||
runSetup: false,
|
||||
trustedOrcaHooks: {},
|
||||
getWorktreeCreateCutoverSupport: async () => false,
|
||||
transitionDrawer: (view: unknown) => context.effect('drawer', view),
|
||||
onCreated: (id: unknown, name: unknown) => context.effect('created', { id, name }),
|
||||
onClose: () => context.effect('close', null)
|
||||
})
|
||||
let state: ReturnType<typeof useSubmit>
|
||||
const hook = hookMount(() => {
|
||||
state = useSubmit(model as unknown as Parameters<typeof useSubmit>[0])
|
||||
})
|
||||
return {
|
||||
action(name) {
|
||||
if (name === 'mount') {
|
||||
return hook.mount()
|
||||
}
|
||||
if (name === 'submit') {
|
||||
return performHookAction(() => state.create())
|
||||
}
|
||||
throw new Error(`Unknown submit action: ${name}`)
|
||||
},
|
||||
state: () =>
|
||||
projectObservable({
|
||||
creating: state?.creating,
|
||||
settings: model.runtimeSettings,
|
||||
error: model.error
|
||||
}),
|
||||
dispose: hook.unmount
|
||||
}
|
||||
},
|
||||
'settings.task-workspace': (context) => {
|
||||
const useCreate = modules.load<
|
||||
typeof import('../../tasks/use-mobile-tasks-workspace-create-actions')
|
||||
>(
|
||||
'mobile/src/tasks/use-mobile-tasks-workspace-create-actions.tsx'
|
||||
).useMobileTasksWorkspaceCreateActions
|
||||
const model = observableModel(context, {
|
||||
client: context.client,
|
||||
hostId: 'host-1',
|
||||
tasksSupported: true,
|
||||
taskStateHydrated: true,
|
||||
runtimeTaskSettings: { disabledTuiAgents: ['claude'] },
|
||||
trustedOrcaHooks: {},
|
||||
workspaceDetectedAgentIds: new Set(['codex']),
|
||||
workspaceLastAutoName: '',
|
||||
ensureWorkspaceSshReady: async () => {},
|
||||
getWorkspaceTargetRepo: () => ({
|
||||
id: 'repo-1',
|
||||
displayName: 'Repo',
|
||||
connectionId: 'ssh-1'
|
||||
}),
|
||||
resolveCreateSetupDecision: async () => ({
|
||||
kind: 'prompt',
|
||||
command: 'setup',
|
||||
source: 'repo'
|
||||
}),
|
||||
router: { push: (value: unknown) => context.effect('navigation', value) }
|
||||
})
|
||||
let actions: ReturnType<typeof useCreate>
|
||||
const hook = hookMount(() => {
|
||||
actions = useCreate(model as unknown as Parameters<typeof useCreate>[0])
|
||||
})
|
||||
return {
|
||||
action(name) {
|
||||
if (name === 'mount') {
|
||||
return hook.mount()
|
||||
}
|
||||
if (name === 'submit') {
|
||||
return actions.createWorkspace(
|
||||
{ key: 'linear:1', provider: 'linear', source: { id: 'issue-1' } } as Parameters<
|
||||
typeof actions.createWorkspace
|
||||
>[0],
|
||||
undefined,
|
||||
undefined,
|
||||
'claude'
|
||||
)
|
||||
}
|
||||
throw new Error(`Unknown task workspace action: ${name}`)
|
||||
},
|
||||
state: () =>
|
||||
projectObservable({
|
||||
settings: model.runtimeTaskSettings,
|
||||
error: model.error,
|
||||
creating: model.creatingKey
|
||||
}),
|
||||
dispose: hook.unmount
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user