mirror of
https://github.com/stablyai/orca.git
synced 2026-09-25 16:02:38 +00:00
test(mobile): record the host screen's worktree mutations
Review of #20705 showed the `use-host-worktree-actions.ts` holdout reason was wrong: its only native call is the pinned-id write, and that sits behind `if (hostId)`, so mounting with no hostId never reaches it. Two scenarios in one new family, recorded from the pinned baseline with the call site still on the raw port. The first drives all three sends so the reply matrix covers each method; the second refuses `worktree.rm` to pin the row restore. The adapter is a new module, so no existing golden's `adapterSha256` moves and none of the 250 goldens already here is rewritten. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
This commit is contained in:
@@ -0,0 +1,328 @@
|
||||
{
|
||||
"operation": "host.worktree-actions",
|
||||
"family": "host.worktree-actions",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462",
|
||||
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
|
||||
"recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2",
|
||||
"adapterSha256": "2bc320d05d944b5c47176d4462350c4825e414511af52f7743ec9b6d6ebf93c2",
|
||||
"scenarioSha256": "720add498c79425ca8efc9764fd5d8307fe33bc891842604cfc899f770b79811",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 5,
|
||||
"values": {
|
||||
"04938673cbf5": {
|
||||
"name": "worktree.activate#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.activate"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"navigation": "caller",
|
||||
"notifyClients": false,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0ebfc1859f18": {
|
||||
"name": "pinnedIds",
|
||||
"value": ["wt-1"]
|
||||
},
|
||||
"2b635c2a4fbb": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"32f21eaae959": {
|
||||
"confirmRemoveHost": false,
|
||||
"lastKnownWorktrees": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": true,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
],
|
||||
"optimisticActiveWorktreeIdentity": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"pinnedIds": ["wt-1"],
|
||||
"routeActionState": {},
|
||||
"worktrees": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": true,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"4caf7515e224": {
|
||||
"name": "worktree.set#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.set\",\"params\":{\"worktree\":\"id:wt-1\",\"isPinned\":true}}"
|
||||
},
|
||||
"56b6d4fb8c56": {
|
||||
"name": "worktree.set#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.set"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"isPinned": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"5c186d67b84c": {
|
||||
"name": "lastKnownWorktrees",
|
||||
"value": []
|
||||
},
|
||||
"69d698d4f352": {
|
||||
"name": "worktree.rm#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.rm\",\"params\":{\"worktree\":\"id:wt-1\",\"force\":true}}"
|
||||
},
|
||||
"6e959a9dd70e": {
|
||||
"confirmRemoveHost": false,
|
||||
"lastKnownWorktrees": [],
|
||||
"optimisticActiveWorktreeIdentity": "|wt-1",
|
||||
"pinnedIds": ["wt-1"],
|
||||
"routeActionState": {},
|
||||
"worktrees": []
|
||||
},
|
||||
"7b87f237a7b6": {
|
||||
"name": "worktrees",
|
||||
"value": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": true,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"9270aeb7d9c6": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
},
|
||||
"b1509905fc66": {
|
||||
"name": "optimisticActiveWorktreeIdentity",
|
||||
"value": "|wt-1"
|
||||
},
|
||||
"ba357321dd85": {
|
||||
"name": "lastKnownWorktrees",
|
||||
"value": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": true,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"bf2b36bda2d2": {
|
||||
"name": "worktree.set#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.set"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"isPinned": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
"c3eecb0c6e96": {
|
||||
"name": "worktree.activate#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.activate\",\"params\":{\"worktree\":\"id:wt-1\",\"notifyClients\":false,\"navigation\":\"caller\"}}"
|
||||
},
|
||||
"d440bd87d1ce": {
|
||||
"name": "worktrees",
|
||||
"value": []
|
||||
},
|
||||
"e3e3c397a66a": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
"eb79a9b3682a": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "host-worktree-actions-pin-open-delete",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "pin-optimistic",
|
||||
"observation": {
|
||||
"sender": ["bf2b36bda2d2"],
|
||||
"payloads": ["4caf7515e224"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a"
|
||||
},
|
||||
"state": "32f21eaae959",
|
||||
"effects": ["7b87f237a7b6", "ba357321dd85", "0ebfc1859f18"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "delete-optimistic",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "e3e3c397a66a"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "9270aeb7d9c6"
|
||||
},
|
||||
"state": "6e959a9dd70e",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "settled",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "2b635c2a4fbb"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "6e959a9dd70e",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
{
|
||||
"operation": "host.worktree-actions",
|
||||
"family": "host.worktree-actions",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462",
|
||||
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
|
||||
"recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2",
|
||||
"adapterSha256": "2bc320d05d944b5c47176d4462350c4825e414511af52f7743ec9b6d6ebf93c2",
|
||||
"scenarioSha256": "5dd5e7eabaabba1e471b13958f59891c3b28f553087c96315598c83a14ded7e7",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 5,
|
||||
"values": {
|
||||
"3fd02e693647": {
|
||||
"name": "worktree.rm#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.rm\",\"params\":{\"worktree\":\"id:wt-1\",\"force\":true}}"
|
||||
},
|
||||
"5c186d67b84c": {
|
||||
"name": "lastKnownWorktrees",
|
||||
"value": []
|
||||
},
|
||||
"8056533b940f": {
|
||||
"confirmRemoveHost": false,
|
||||
"lastKnownWorktrees": [],
|
||||
"optimisticActiveWorktreeIdentity": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"pinnedIds": [],
|
||||
"routeActionState": {},
|
||||
"worktrees": []
|
||||
},
|
||||
"9270aeb7d9c6": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
},
|
||||
"b569ed5b8bd2": {
|
||||
"name": "worktrees",
|
||||
"value": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": false,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"b92861217ed8": {
|
||||
"name": "lastKnownWorktrees",
|
||||
"value": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": false,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"d440bd87d1ce": {
|
||||
"name": "worktrees",
|
||||
"value": []
|
||||
},
|
||||
"e3e3c397a66a": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
"e97d1f006b72": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "worktree_busy",
|
||||
"message": "Worktree is busy"
|
||||
},
|
||||
"id": "frame-1",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"eb79a9b3682a": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"f48071bb2e8c": {
|
||||
"confirmRemoveHost": false,
|
||||
"lastKnownWorktrees": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": false,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
],
|
||||
"optimisticActiveWorktreeIdentity": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"pinnedIds": [],
|
||||
"routeActionState": {},
|
||||
"worktrees": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": false,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "host-worktree-delete-refused",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "delete-optimistic",
|
||||
"observation": {
|
||||
"sender": ["e3e3c397a66a"],
|
||||
"payloads": ["3fd02e693647"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"delete": "9270aeb7d9c6"
|
||||
},
|
||||
"state": "8056533b940f",
|
||||
"effects": ["d440bd87d1ce", "5c186d67b84c"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "restored",
|
||||
"observation": {
|
||||
"sender": ["e97d1f006b72"],
|
||||
"payloads": ["3fd02e693647"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "f48071bb2e8c",
|
||||
"effects": ["d440bd87d1ce", "5c186d67b84c", "b569ed5b8bd2", "b92861217ed8"]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,998 @@
|
||||
{
|
||||
"operation": "host.worktree-actions",
|
||||
"family": "host.worktree-actions",
|
||||
"namedDeltas": [],
|
||||
"runnerVersion": 1,
|
||||
"baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462",
|
||||
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
|
||||
"recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2",
|
||||
"adapterSha256": "2bc320d05d944b5c47176d4462350c4825e414511af52f7743ec9b6d6ebf93c2",
|
||||
"scenarioSha256": "c47656a4ca21762e4b5a247ddf9a96efb746bec81e942ffa308a774bab1449e2",
|
||||
"platform": "darwin",
|
||||
"scenarioVersion": 1,
|
||||
"projectionVersion": 2,
|
||||
"goldenFormatVersion": 5,
|
||||
"values": {
|
||||
"04938673cbf5": {
|
||||
"name": "worktree.activate#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.activate"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"navigation": "caller",
|
||||
"notifyClients": false,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-2",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0ebfc1859f18": {
|
||||
"name": "pinnedIds",
|
||||
"value": ["wt-1"]
|
||||
},
|
||||
"11e971c034ae": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": {
|
||||
"message": "inner refused"
|
||||
},
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"2b635c2a4fbb": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"2c0740d2cefb": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": ""
|
||||
},
|
||||
"id": "frame-3",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"32f21eaae959": {
|
||||
"confirmRemoveHost": false,
|
||||
"lastKnownWorktrees": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": true,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
],
|
||||
"optimisticActiveWorktreeIdentity": {
|
||||
"$rpc": "null"
|
||||
},
|
||||
"pinnedIds": ["wt-1"],
|
||||
"routeActionState": {},
|
||||
"worktrees": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": true,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"4caf7515e224": {
|
||||
"name": "worktree.set#1",
|
||||
"json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.set\",\"params\":{\"worktree\":\"id:wt-1\",\"isPinned\":true}}"
|
||||
},
|
||||
"4f1b109adcc0": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": "inner refused",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"56b6d4fb8c56": {
|
||||
"name": "worktree.set#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.set"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"isPinned": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-1",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"5c186d67b84c": {
|
||||
"name": "lastKnownWorktrees",
|
||||
"value": []
|
||||
},
|
||||
"60cb8c68db7d": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "Connection closed",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"69d698d4f352": {
|
||||
"name": "worktree.rm#1",
|
||||
"json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.rm\",\"params\":{\"worktree\":\"id:wt-1\",\"force\":true}}"
|
||||
},
|
||||
"6e959a9dd70e": {
|
||||
"confirmRemoveHost": false,
|
||||
"lastKnownWorktrees": [],
|
||||
"optimisticActiveWorktreeIdentity": "|wt-1",
|
||||
"pinnedIds": ["wt-1"],
|
||||
"routeActionState": {},
|
||||
"worktrees": []
|
||||
},
|
||||
"7b87f237a7b6": {
|
||||
"name": "worktrees",
|
||||
"value": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": true,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"7ce7ff16ad9e": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "refused",
|
||||
"message": "outer refused"
|
||||
},
|
||||
"id": "frame-3",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"86754b292acd": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"error": {
|
||||
"code": "method_not_found",
|
||||
"message": "Unknown method"
|
||||
},
|
||||
"id": "frame-3",
|
||||
"ok": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"909c8bc23636": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"$rpc": "null"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"9270aeb7d9c6": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
},
|
||||
"972099c06c75": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"b1509905fc66": {
|
||||
"name": "optimisticActiveWorktreeIdentity",
|
||||
"value": "|wt-1"
|
||||
},
|
||||
"b569ed5b8bd2": {
|
||||
"name": "worktrees",
|
||||
"value": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": false,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"b92861217ed8": {
|
||||
"name": "lastKnownWorktrees",
|
||||
"value": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": false,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"ba357321dd85": {
|
||||
"name": "lastKnownWorktrees",
|
||||
"value": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": true,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"bf2b36bda2d2": {
|
||||
"name": "worktree.set#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.set"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"isPinned": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
"c3eecb0c6e96": {
|
||||
"name": "worktree.activate#1",
|
||||
"json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.activate\",\"params\":{\"worktree\":\"id:wt-1\",\"notifyClients\":false,\"navigation\":\"caller\"}}"
|
||||
},
|
||||
"ce97d2eedacb": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "transport failure",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"cf69e8a7e125": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "rejected",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"error": {
|
||||
"category": "Error",
|
||||
"message": "",
|
||||
"isRpcDeliveryUnknown": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"d440bd87d1ce": {
|
||||
"name": "worktrees",
|
||||
"value": []
|
||||
},
|
||||
"e3e3c397a66a": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "pending",
|
||||
"startedAt": 0
|
||||
}
|
||||
},
|
||||
"eb79a9b3682a": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"$rpc": "undefined"
|
||||
}
|
||||
},
|
||||
"faaf50dee85b": {
|
||||
"confirmRemoveHost": false,
|
||||
"lastKnownWorktrees": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": false,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
],
|
||||
"optimisticActiveWorktreeIdentity": "|wt-1",
|
||||
"pinnedIds": ["wt-1"],
|
||||
"routeActionState": {},
|
||||
"worktrees": [
|
||||
{
|
||||
"displayName": "marlin",
|
||||
"isPinned": false,
|
||||
"repo": "repo-1",
|
||||
"worktreeId": "wt-1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"ff4c661d50a3": {
|
||||
"name": "worktree.rm#1",
|
||||
"args": [
|
||||
{
|
||||
"name": "method",
|
||||
"value": "worktree.rm"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"value": {
|
||||
"force": true,
|
||||
"worktree": "id:wt-1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"value": {
|
||||
"$rpc": "absent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"settlement": {
|
||||
"status": "fulfilled",
|
||||
"startedAt": 0,
|
||||
"settledAt": 0,
|
||||
"value": {
|
||||
"id": "frame-3",
|
||||
"ok": true,
|
||||
"result": {
|
||||
"error": "refused"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"recording": {
|
||||
"scenario": "matrix-host.worktree-actions-worktree.rm-1",
|
||||
"checkpoints": [
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.prelude:pin-optimistic",
|
||||
"observation": {
|
||||
"sender": ["bf2b36bda2d2"],
|
||||
"payloads": ["4caf7515e224"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a"
|
||||
},
|
||||
"state": "32f21eaae959",
|
||||
"effects": ["7b87f237a7b6", "ba357321dd85", "0ebfc1859f18"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.prelude:delete-optimistic",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "e3e3c397a66a"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "9270aeb7d9c6"
|
||||
},
|
||||
"state": "6e959a9dd70e",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.prelude:cleanup",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "60cb8c68db7d"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "6e959a9dd70e",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c",
|
||||
"b569ed5b8bd2",
|
||||
"b92861217ed8"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.normal:settled",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "2b635c2a4fbb"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "6e959a9dd70e",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.result-absent:settled",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "972099c06c75"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "6e959a9dd70e",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.result-null:settled",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "909c8bc23636"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "6e959a9dd70e",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.inner-ok-missing:settled",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "ff4c661d50a3"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "6e959a9dd70e",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.inner-false-string-error:settled",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "4f1b109adcc0"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "6e959a9dd70e",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.inner-false-object-error:settled",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "11e971c034ae"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "6e959a9dd70e",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.outer-refused:settled",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "7ce7ff16ad9e"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "faaf50dee85b",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c",
|
||||
"b569ed5b8bd2",
|
||||
"b92861217ed8"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.outer-refused-no-message:settled",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "2c0740d2cefb"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "faaf50dee85b",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c",
|
||||
"b569ed5b8bd2",
|
||||
"b92861217ed8"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.method-not-found:settled",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "86754b292acd"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "faaf50dee85b",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c",
|
||||
"b569ed5b8bd2",
|
||||
"b92861217ed8"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.transport-rejection:settled",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "ce97d2eedacb"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "faaf50dee85b",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c",
|
||||
"b569ed5b8bd2",
|
||||
"b92861217ed8"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete.transport-rejection-no-message:settled",
|
||||
"observation": {
|
||||
"sender": ["56b6d4fb8c56", "04938673cbf5", "cf69e8a7e125"],
|
||||
"payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"],
|
||||
"settlements": {
|
||||
"mount": "eb79a9b3682a",
|
||||
"toggle-pin": "eb79a9b3682a",
|
||||
"open-session": "eb79a9b3682a",
|
||||
"delete": "eb79a9b3682a"
|
||||
},
|
||||
"state": "faaf50dee85b",
|
||||
"effects": [
|
||||
"7b87f237a7b6",
|
||||
"ba357321dd85",
|
||||
"0ebfc1859f18",
|
||||
"b1509905fc66",
|
||||
"d440bd87d1ce",
|
||||
"5c186d67b84c",
|
||||
"b569ed5b8bd2",
|
||||
"b92861217ed8"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7615,6 +7615,119 @@
|
||||
"checkpoint": "settled"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-actions-pin-open-delete",
|
||||
"operation": "host.worktree-actions",
|
||||
"version": 1,
|
||||
"family": "host.worktree-actions",
|
||||
"sites": ["mobile/src/host-screen/use-host-worktree-actions.ts"],
|
||||
"schedules": [],
|
||||
"steps": [
|
||||
{
|
||||
"action": "mount",
|
||||
"id": "mount"
|
||||
},
|
||||
{
|
||||
"action": "toggle-pin",
|
||||
"id": "toggle-pin"
|
||||
},
|
||||
{
|
||||
"checkpoint": "pin-optimistic"
|
||||
},
|
||||
{
|
||||
"complete": "worktree.set#1",
|
||||
"params": {
|
||||
"worktree": "id:wt-1",
|
||||
"isPinned": true
|
||||
},
|
||||
"reply": {
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"action": "open-session",
|
||||
"id": "open-session"
|
||||
},
|
||||
{
|
||||
"complete": "worktree.activate#1",
|
||||
"params": {
|
||||
"worktree": "id:wt-1",
|
||||
"notifyClients": false,
|
||||
"navigation": "caller"
|
||||
},
|
||||
"reply": {
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"action": "delete",
|
||||
"id": "delete"
|
||||
},
|
||||
{
|
||||
"checkpoint": "delete-optimistic"
|
||||
},
|
||||
{
|
||||
"complete": "worktree.rm#1",
|
||||
"params": {
|
||||
"worktree": "id:wt-1",
|
||||
"force": true
|
||||
},
|
||||
"reply": {
|
||||
"ok": true,
|
||||
"result": {
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"checkpoint": "settled"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "host-worktree-delete-refused",
|
||||
"operation": "host.worktree-actions",
|
||||
"version": 1,
|
||||
"family": "host.worktree-actions",
|
||||
"sites": ["mobile/src/host-screen/use-host-worktree-actions.ts"],
|
||||
"schedules": [],
|
||||
"steps": [
|
||||
{
|
||||
"action": "mount",
|
||||
"id": "mount"
|
||||
},
|
||||
{
|
||||
"action": "delete",
|
||||
"id": "delete"
|
||||
},
|
||||
{
|
||||
"checkpoint": "delete-optimistic"
|
||||
},
|
||||
{
|
||||
"complete": "worktree.rm#1",
|
||||
"params": {
|
||||
"worktree": "id:wt-1",
|
||||
"force": true
|
||||
},
|
||||
"reply": {
|
||||
"ok": false,
|
||||
"error": {
|
||||
"code": "worktree_busy",
|
||||
"message": "Worktree is busy"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"checkpoint": "restored"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
import type { MountAdapter } from '../recording-scenario'
|
||||
import { hookMount, performHookAction } from '../hook-mount'
|
||||
import { observableModel, projectObservable } from '../observable-model'
|
||||
import type { operationModuleLoader } from '../operation-module-loader'
|
||||
|
||||
const ROW = { worktreeId: 'wt-1', displayName: 'marlin', repo: 'repo-1', isPinned: false }
|
||||
|
||||
/**
|
||||
* The host screen's three worktree mutations: pin, delete and open.
|
||||
*
|
||||
* Mounted with no hostId, which is the only thing that keeps the hook off native storage: the
|
||||
* pinned-id write is the sole native call and it sits behind `if (hostId)`.
|
||||
*/
|
||||
export function hostWorktreeActionMountAdapters(
|
||||
modules: ReturnType<typeof operationModuleLoader>
|
||||
): Record<string, MountAdapter> {
|
||||
return {
|
||||
'host.worktree-actions': (context) => {
|
||||
const useActions = modules.load<
|
||||
typeof import('../../../host-screen/use-host-worktree-actions')
|
||||
>('mobile/src/host-screen/use-host-worktree-actions.ts').useHostWorktreeActions
|
||||
const state = observableModel(context, {
|
||||
newWorktreeModalRef: { current: null },
|
||||
newWorktreeModalVisibleRef: { current: false },
|
||||
pinnedIds: new Set<string>(),
|
||||
worktrees: [ROW],
|
||||
lastKnownWorktrees: [ROW],
|
||||
confirmRemoveHost: false,
|
||||
optimisticActiveWorktreeIdentity: null,
|
||||
routeActionState: {}
|
||||
})
|
||||
let actions: ReturnType<typeof useActions>
|
||||
const hook = hookMount(() => {
|
||||
actions = useActions({
|
||||
client: context.client,
|
||||
connState: 'connected',
|
||||
embedded: false,
|
||||
fetchWorktrees: async () => {},
|
||||
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the hook only forwards this to host removal, which no scenario drives.
|
||||
forgetHostClient: (() => {}) as unknown as Parameters<
|
||||
typeof useActions
|
||||
>[0]['forgetHostClient'],
|
||||
hostId: undefined,
|
||||
pathname: '/h/host-1',
|
||||
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: navigation is observed through the recorded sends, not the router.
|
||||
router: { push: () => {}, replace: () => {} } as unknown as Parameters<
|
||||
typeof useActions
|
||||
>[0]['router'],
|
||||
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the recorder supplies only the members the hook reads.
|
||||
state: state as unknown as Parameters<typeof useActions>[0]['state']
|
||||
})
|
||||
})
|
||||
return {
|
||||
action(name) {
|
||||
if (name === 'mount') {
|
||||
return hook.mount()
|
||||
}
|
||||
if (name === 'toggle-pin') {
|
||||
return performHookAction(() => actions.togglePin(ROW.worktreeId))
|
||||
}
|
||||
if (name === 'delete') {
|
||||
return performHookAction(() => actions.handleDeleteWorktree(ROW))
|
||||
}
|
||||
if (name === 'open-session') {
|
||||
return performHookAction(() => actions.openWorktreeSession(ROW))
|
||||
}
|
||||
throw new Error(`Unknown worktree action: ${name}`)
|
||||
},
|
||||
state: () =>
|
||||
projectObservable(
|
||||
Object.fromEntries(Object.entries(state).filter(([key]) => !key.endsWith('Ref')))
|
||||
),
|
||||
dispose: hook.unmount
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
import { fileInventoryMountAdapters } from './file-inventory-mount-adapters'
|
||||
import { fileRequestMountAdapters } from './file-request-mount-adapters'
|
||||
import { hostScreenMountAdapters } from './host-screen-mount-adapters'
|
||||
import { hostWorktreeActionMountAdapters } from './host-worktree-action-mount-adapters'
|
||||
import { hostedReviewMountAdapters } from './hosted-review-mount-adapters'
|
||||
import { newTabAgentMountAdapters } from './new-tab-agent-mount-adapters'
|
||||
import { newWorkspaceMountAdapters } from './new-workspace-mount-adapters'
|
||||
@@ -22,6 +23,10 @@ export const MOUNTED_OPERATION_MODULES: readonly MountedOperationModule[] = [
|
||||
{ source: 'file-inventory-mount-adapters.ts', mounts: fileInventoryMountAdapters },
|
||||
{ source: 'file-request-mount-adapters.ts', mounts: fileRequestMountAdapters },
|
||||
{ source: 'host-screen-mount-adapters.ts', mounts: hostScreenMountAdapters },
|
||||
{
|
||||
source: 'host-worktree-action-mount-adapters.ts',
|
||||
mounts: hostWorktreeActionMountAdapters
|
||||
},
|
||||
{ source: 'hosted-review-mount-adapters.ts', mounts: hostedReviewMountAdapters },
|
||||
{ source: 'new-tab-agent-mount-adapters.ts', mounts: newTabAgentMountAdapters },
|
||||
{ source: 'new-workspace-mount-adapters.ts', mounts: newWorkspaceMountAdapters },
|
||||
|
||||
Reference in New Issue
Block a user