test(mobile): consolidate the RPC migration's verification infrastructure (#20521)

* test(mobile): record main RPC hooks and regression schedules

Add scripted sender recordings, guarded main goldens, reply matrices, lifecycle schedules, settings caller fixtures, and targeted B-seed mutants.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(mobile): flush recording user actions through React act

Keep lifecycle updates in separate act boundaries while wrapping direct stateful user actions.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(mobile): compile recorded modules with the Node VM API

Use the same trusted-source execution boundary as existing mobile VM test harnesses.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(mobile): pool golden values and hoist pre-divergence checkpoints

Golden format version 2 stores each distinct observation field value once in
a `values` map keyed by a 12-hex sha256 of its sorted-key JSON, and a
checkpoint references five hashes. Output stays pretty-printed; the reader
rejects any other format version, resolves hashes back to values, and reports
the scenario, checkpoint, field and JSON path on a mismatch.

Generated variants now declare where their distinguishing input lands, so
checkpoints observed before that point are recorded once in a `.prelude`
scenario instead of once per reply partition. Reply matrices, interruption
schedules and lifecycle schedules share the primitive, which asserts each
variant's pre-divergence prefix matches the base. Equal-but-differently-reached
checkpoints are untouched.

17.71 MB / 3,599 checkpoints / 58.4% intra-file duplicates becomes
4.21 MB / 1,961 checkpoints / 23.6%, with every file's set of distinct
observations unchanged.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(mobile): make the recordings sense deadlines, the recorder, and every family

The goldens carried no temporal information, so a request deadline could be cut
to a third and all 61 files stayed byte-identical. Every threshold is now
straddled by two advances with a checkpoint between them: the 30 s request
deadline in both schedule drivers, the 120 ms search debounce in b1, and the 60 s
repo-metadata cache TTL. Shortening any of them moves an observation.

The record fence pinned product sources but excluded the whole recorder, so
--record could rewrite every golden from a modified runner and report the
baseline intact. Goldens now pin recorderSha256 over every non-markdown file in
the runner plus pilot-scenarios.json, and the fence exemption shrinks to the one
directory that digest covers.

Mutation evidence covered 3 of 13 mounted operations. There is now one anchored
mutant per adapter family, covering 11 operations and 51 of the 61 goldens; the
two omitted are the pure async loaders whose entire output is their settlement.
Anchors are asserted to match exactly one site, which caught the acceptance
mutant silently half-applying against three identical guards.

The archived-tree assertion pins each seed's visible state instead of merely
differing from main, and error observations carry code and cause when present.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(mobile): record settlement times instead of straddling deadlines

The previous commit made the reviewer's divide-by-three deadline mutant fail by
placing checkpoints on each side of the 30 s deadline. That is a patch: a timing
change that does not cross a hand-placed boundary stays invisible. Those
scenario edits are reverted, and pilot-scenarios.json and schedule-driver.ts are
byte-identical to what they were before them.

The real defect was that the projection had no temporal dimension, so every
settlement now carries startedAt and settledAt in virtual milliseconds on the
pinned fake clock. Any transition the product schedules for itself is recorded
at the time it actually fires, so a deadline or debounce change of any size, in
either direction, moves a recorded number.

A checkpoint's own clock is not recorded. It is always the sum of the scripted
advances, 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.

projectionVersion is 2 and all 61 goldens are re-recorded. With the added
timestamps stripped, the distinct-observation set is identical to the previous
recording, so the change is purely additive.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(mobile): probe the repo-metadata cache inside its TTL window

Recorded settlement times cover thresholds the product schedules for itself, but
not one it only consults when something else makes it act. The repo-metadata TTL
is the single such case: with probes only at 0 s and 60 s, a 20 s TTL and a 60 s
TTL are both expired at 60 s and record identically, so a 3x cache-lifetime
regression was invisible.

settings-repo-cache-expiry now probes the cache at 59 s as well. This is
coverage, not a substitute for recorded time: it bounds how small a TTL
reduction is visible rather than making the reduction itself observable, and the
README says so.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(mobile): record the reply shapes a host can send, not a cross product

The reply matrix froze ~26 malformed envelopes crossed against every consumed
field and three boundary kinds, which is 163,925 lines of JSON pinning accidents
on inputs no desktop produces. `successResponse` always sets `result`, so a JSON
wire has no explicit-undefined slot, and no mounted handler returns a number, a
string, an array, a bare `{}` or a boolean: `settings.get` returns
`{settings: ...}`, and the seed methods return an object or nothing.

Each family now runs nine witnessed partitions once, with no field cross: a
normal result, an absent result, `null`, an inner `{ok: false}` envelope with a
string or an object error, an inner envelope missing `ok`, an outer refusal,
`method_not_found`, and a transport rejection. `null` stays because
`linear.getIssue` returns it for a missing issue and b2 is a shipped null-result
bug; it is also what carries the one named delta these goldens record.

`run-step1-exit.ts` had zero callers and shelled out to the same two Vitest
files as `rpc-recording.mts`, so it and its README paragraph go, along with
`MUTATION_NAMES`, which only it read.

In the module loader, the `rpc-delivery-ambiguity` escape is measured dead: over
every scenario, mutant and reference run it was taken once, by the test that
existed to take it. Golden comparison already fails loudly if a mounted module
ever imports the marker, so both go. The history-panel exposure moves into a
declarative table beside the mutation anchors, leaving the loader with one
source-text mechanism and no per-file branch.

The VM stays. Mount adapters load product sources from an arbitrary `root`, and
the archived bcba08b3e4 tree is bare `mobile/src` and `src` with no package.json
and no node_modules, so no bundler-resolved import can reach it and the seed
rejection gate cannot run without it. Direct import also swaps a 38-module lazy
graph for a 338-module eager one behind 20 native mocks, because
`mobile-tasks-dependencies.ts` re-exports from `react-native` and four other
native packages and `export *` enumerates.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* fix(mobile): treat the recorded lockfile hash as provenance, not an oracle

Every golden pinned `lockfileSha256`, so any dependency bump on main failed all
61 comparisons on the merge commit while the traces were identical. A dependency
that changes behaviour changes the trace itself; one that does not must not fail
a candidate. `platform` already had this exemption — `lockfileSha256` joins it.

Recording still refuses to run unless the lockfile matches the pinned baseline,
so goldens are still produced under frozen conditions.

Verified against main's lockfile: 85 passed, previously 61 failed. The declared
mutation set still reports every mutant killed.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(rpc): cover repeat queries and settings refresh boundaries

Add three scenarios, preserve existing traces, remove unreachable archived checks, and document observed mutation kills and remaining adapter limitations.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* docs(rpc): keep the known-open holes, drop the review transcript

The audit file was mostly a point-in-time record of mutation runs that had already
happened, in an artifacts directory, where it would go stale on the next scenario
change. The durable part is which holes are still open and why they cannot be
reached, which belongs beside the runner it describes.

Markdown is outside recorderSha256, so no re-record; 88 passed | 3 skipped.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* chore(mobile): stage the nine RPC probe scenarios and goldens

These existed only on one machine's /tmp. Landing them verbatim first so a
reboot cannot lose them; a follow-up commit moves them into the suite.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(mobile): fold the nine probe scenarios into the recording oracle

The probes were env-var invocations over loose /tmp manifests. They now live in
pilot-scenarios.json and rpc-foundation/goldens, so `pnpm --dir mobile test` runs
them with no flag to remember.

Re-records every golden against main (22f56f7c2a). Two causes:

- #20280 gave LogicalClientCutoverError the delivery-unknown mark and its cause,
  so nine cutover/interruption goldens now record `isRpcDeliveryUnknown: true`
  plus a `Connection closed` cause. The other 55 are byte-identical after 260
  commits of main.
- #20499 replaced the five anchored raw-envelope reads with typed operations, so
  those mutation anchors matched zero sites. Each is re-anchored at the same
  defect's new home; bot-overrides moves to the shared reader that now owns it.

probe-hole-witness.test.ts pins hole and closure together: a probe must kill its
mutation and every pre-probe scenario of the same operation must still survive
it, so a redundant probe fails instead of accumulating.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(mobile): list the recording harness in the raw-port inventory

main's #20026 boundary test fails on any non-test file that reaches the raw
request port and is not inventoried. The oracle's scripted transport is exactly
that — it drives the real tracker and logical client — so it belongs in OWNERS
beside the supervisor fakes, not in the step-4 pending backlog.

Also states what the oracle covers, the two holes it was blind to until the
probes, and the step-4 runbook.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(mobile): pin the goldens to the tree that recorded them

The inventory entry is a fenced product-tree edit, so --record refused against
main's sha. Baseline now names the branch commit the goldens were recorded from;
the next re-record after this lands bumps it to the merge commit.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(mobile): carry a SAFETY rationale on every recorder cast

main added a changed-code casting gate after this branch was cut, so 45 `as`
sites in the recorder read as new findings. Each now states why the assertion
holds; they cluster into five reasons — recorded observations are RecordedValue
by construction, parsed manifests and goldens are validated on the next lines,
interned pools resolve their own hashes, a VM-evaluated module has no static
type, and the mount adapters supply only the members each hook reads.

Re-records the goldens: the comments move recorderSha256.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* docs(rpc): state the measured blindness, not the assumed one

Applying each mutation to real product source shows the two holes are not equal.
The reorder is invisible to 83 of 84 tests and only a probe sees it. The refusal
blanking is also caught by the family reply matrix, because a refusal from cold
publishes null over a non-null initial value — an observational gap, not a
detection gap. Says so rather than letting the stronger claim carry both.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(mobile): close three ways the oracle could pass without checking

All four review findings were real; three let the oracle report green while
verifying less than it claimed.

- The baseline guard used `git diff --quiet`, which ignores untracked files, so
  an untracked module under mobile/src or src/shared could change resolution
  while a golden still recorded a pinned baseline header. Adds a
  `git ls-files --others` check over the same paths, recorder still exempt.
- The determinism loop read `Number(env ?? 2)` unvalidated, so
  RPC_FOUNDATION_DETERMINISM_RUNS=0 skipped the body and 57 tests passed having
  recorded and compared nothing. Now requires an integer >= 2.
- Cleanup-time observations were dropped: every checkpoint clones the effects
  array, so anything appended during dispose or the final flush never reached a
  golden. Warns and documents the six scenarios that hit it today; recording
  them changes every golden and is its own change.
- Two SAFETY rationales described each other's assertion. Swapped.

Goldens re-recorded for the recorder-digest change: 73 files, one header line
each, no recorded observation moved.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

* test(mobile): record teardown observations as a cleanup checkpoint

Each checkpoint clones the effects array, so a rejection or state write produced
by dispose, the transport teardown or the final flush landed after the recording
was built and never reached a golden. An unmount leak is exactly what this
oracle exists to catch, so teardown now runs on the recorded path and anything
it observes becomes a checkpoint with id `cleanup`. State is captured before
dispose, since the operation is gone afterwards.

Six scenarios were dropping observations, across five goldens: projectRowDetailError,
projectMutating, hostLabelById, hostPlatform, workspaceAgent, workspaceAgentOverridden,
creatingKey, selectedAgent, agentOverridden and error. Those five gain a cleanup
checkpoint; the other 68 goldens change by their header line only, so no existing
observation moved.

Also fixes the README's own formatting, which failed `format:check`.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
This commit is contained in:
Jinwoo Hong
2026-09-13 20:56:21 -04:00
committed by GitHub
parent d138c3278d
commit 7ce8e18d07
105 changed files with 64470 additions and 1 deletions
+555
View File
@@ -0,0 +1,555 @@
{
"operation": "workspace.file-inventory",
"family": "legacy-inventory",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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"
}
}
]
}
}
+200
View File
@@ -0,0 +1,200 @@
{
"operation": "project.update-metadata",
"family": "project-explicit-false",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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"
}
}
]
}
}
+310
View File
@@ -0,0 +1,310 @@
{
"operation": "linear.issue-detail",
"family": "linear-detail-barrier",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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,376 @@
{
"operation": "workspace.file-inventory",
"family": "legacy-inventory",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
"goldenFormatVersion": 2,
"values": {
"09d53cd763b1": [
{
"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": true,
"cause": {
"category": "Error",
"message": "Connection closed",
"isRpcDeliveryUnknown": true
}
}
}
}
],
"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
}
}
}
],
"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": "09d53cd763b1",
"payloads": "6713de8f80d3",
"settlements": "44517661da0d",
"state": "602e35a92eec",
"effects": "4f53cda18c2b"
}
},
{
"id": "inventory-lifecycle.cutover:settled",
"observation": {
"sender": "09d53cd763b1",
"payloads": "6713de8f80d3",
"settlements": "44517661da0d",
"state": "602e35a92eec",
"effects": "4f53cda18c2b"
}
}
]
}
}
@@ -0,0 +1,274 @@
{
"operation": "settings.bot-overrides",
"family": "settings.bot-overrides",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": [],
"582aad0720e3": [
{
"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": true,
"cause": {
"category": "Error",
"message": "Connection closed",
"isRpcDeliveryUnknown": true
}
}
}
}
],
"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\"}"
}
]
},
"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": "582aad0720e3",
"payloads": "9e493785145e",
"settlements": "8df6a469391c",
"state": "4f53cda18c2b",
"effects": "4f53cda18c2b"
}
},
{
"id": "settings-bot-overrides-fulfilled.cutover:settled",
"observation": {
"sender": "582aad0720e3",
"payloads": "9e493785145e",
"settlements": "8df6a469391c",
"state": "4f53cda18c2b",
"effects": "4f53cda18c2b"
}
}
]
}
}
@@ -0,0 +1,137 @@
{
"operation": "workspace.file-inventory",
"family": "legacy-inventory",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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
@@ -0,0 +1,915 @@
{
"operation": "project.update-metadata",
"family": "project-explicit-false",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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"
}
},
"602c739007cd": [
{
"name": "projectMutating",
"value": true
},
{
"name": "projectRowDetailError",
"value": "Connection closed"
},
{
"name": "projectMutating",
"value": false
}
],
"699c2c3a725a": [
{
"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": "Connection closed",
"isRpcDeliveryUnknown": true
}
}
}
],
"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.prelude:cleanup",
"observation": {
"sender": "699c2c3a725a",
"payloads": "0318f81a142b",
"settlements": "6dfef4ef572b",
"state": "0c4dced3e005",
"effects": "602c739007cd"
}
},
{
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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,725 @@
{
"operation": "settings.task-workspace",
"family": "settings.task-workspace",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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
}
}
}
],
"d0feb81f9400": [
{
"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 closed",
"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
}
},
"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.prelude:cleanup",
"observation": {
"sender": "d0feb81f9400",
"payloads": "9e493785145e",
"settlements": "6dfef4ef572b",
"state": "7abdfe20af50",
"effects": "236832733364"
}
},
{
"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
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,244 @@
{
"operation": "settings.new-tab-agents",
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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
}
}
],
"227b6af1aa2d": [
{
"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": {
"error": {
"code": "refused",
"message": "agents refused"
},
"id": "frame-3",
"ok": false
}
}
}
],
"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": "probe-new-tab-both-refused",
"checkpoints": [
{
"id": "pending",
"observation": {
"sender": "155ff7f445b7",
"payloads": "3076d0a13ab4",
"settlements": "b11c8efab170",
"state": "44136fa355b3",
"effects": "4f53cda18c2b"
}
},
{
"id": "settled",
"observation": {
"sender": "227b6af1aa2d",
"payloads": "503a535a0cd0",
"settlements": "274355646d54",
"state": "44136fa355b3",
"effects": "4f53cda18c2b"
}
}
]
}
}
@@ -0,0 +1,243 @@
{
"operation": "settings.new-tab-agents",
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
"goldenFormatVersion": 2,
"values": {
"0b6f5724327e": [
{
"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": {
"$rpc": "null"
}
}
}
},
{
"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": {
"error": {
"code": "refused",
"message": "agents refused"
},
"id": "frame-3",
"ok": false
}
}
}
],
"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
}
},
"b2ed82397ed2": {
"load": {
"status": "rejected",
"startedAt": 0,
"settledAt": 0,
"error": {
"category": "Error",
"message": "agents refused",
"isRpcDeliveryUnknown": false
}
}
}
},
"recording": {
"scenario": "probe-new-tab-null-sibling-refused",
"checkpoints": [
{
"id": "pending",
"observation": {
"sender": "155ff7f445b7",
"payloads": "3076d0a13ab4",
"settlements": "b11c8efab170",
"state": "44136fa355b3",
"effects": "4f53cda18c2b"
}
},
{
"id": "settled",
"observation": {
"sender": "0b6f5724327e",
"payloads": "503a535a0cd0",
"settlements": "b2ed82397ed2",
"state": "44136fa355b3",
"effects": "4f53cda18c2b"
}
}
]
}
}
@@ -0,0 +1,241 @@
{
"operation": "settings.new-tab-agents",
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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\"}}"
}
],
"6eae545ef4a0": {
"load": {
"status": "rejected",
"startedAt": 0,
"settledAt": 0,
"error": {
"category": "Error",
"message": "agents disconnected",
"isRpcDeliveryUnknown": true
}
}
},
"98f2d44e2e10": [
{
"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": "rejected",
"startedAt": 0,
"settledAt": 0,
"error": {
"category": "Error",
"message": "agents disconnected",
"isRpcDeliveryUnknown": true
}
}
}
],
"b11c8efab170": {
"load": {
"status": "pending",
"startedAt": 0
}
}
},
"recording": {
"scenario": "probe-new-tab-refused-sibling-rejects",
"checkpoints": [
{
"id": "pending",
"observation": {
"sender": "155ff7f445b7",
"payloads": "3076d0a13ab4",
"settlements": "b11c8efab170",
"state": "44136fa355b3",
"effects": "4f53cda18c2b"
}
},
{
"id": "settled",
"observation": {
"sender": "98f2d44e2e10",
"payloads": "503a535a0cd0",
"settlements": "6eae545ef4a0",
"state": "44136fa355b3",
"effects": "4f53cda18c2b"
}
}
]
}
}
@@ -0,0 +1,241 @@
{
"operation": "settings.new-tab-agents",
"family": "settings-agent-read",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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
}
},
"ddae1d634b3e": {
"load": {
"status": "rejected",
"startedAt": 0,
"settledAt": 0,
"error": {
"category": "Error",
"message": "settings disconnected",
"isRpcDeliveryUnknown": true
}
}
},
"fc4b6e5f9239": [
{
"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": {
"error": {
"code": "refused",
"message": "agents refused"
},
"id": "frame-3",
"ok": false
}
}
}
]
},
"recording": {
"scenario": "probe-new-tab-rejects-sibling-refused",
"checkpoints": [
{
"id": "pending",
"observation": {
"sender": "155ff7f445b7",
"payloads": "3076d0a13ab4",
"settlements": "b11c8efab170",
"state": "44136fa355b3",
"effects": "4f53cda18c2b"
}
},
{
"id": "settled",
"observation": {
"sender": "fc4b6e5f9239",
"payloads": "503a535a0cd0",
"settlements": "ddae1d634b3e",
"state": "44136fa355b3",
"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
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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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,746 @@
{
"operation": "settings.home-providers",
"family": "settings.home-providers",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
"goldenFormatVersion": 2,
"values": {
"01a7596f538f": [
{
"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": {
"error": {
"code": "refused",
"message": "settings refused"
},
"id": "frame-4",
"ok": false
}
}
},
{
"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
}
}
}
}
],
"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"]
}
}
],
"161b05d3a099": {
"load": {
"status": "fulfilled",
"startedAt": 0,
"settledAt": 0,
"value": {
"$rpc": "undefined"
}
},
"reload": {
"status": "fulfilled",
"startedAt": 0,
"settledAt": 0,
"value": {
"$rpc": "undefined"
}
}
},
"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"]
},
"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
}
}
]
},
"recording": {
"scenario": "settings-home-providers-refuse-after-data",
"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"
}
},
{
"id": "data-present",
"observation": {
"sender": "3b52deb98f39",
"payloads": "13d58e42ea1c",
"settlements": "50274b2889df",
"state": "79b8c1b0d1d1",
"effects": "40b162c1b21a"
}
},
{
"id": "refresh-pending",
"observation": {
"sender": "d6e8453528de",
"payloads": "d1e42a0a312d",
"settlements": "161b05d3a099",
"state": "79b8c1b0d1d1",
"effects": "40b162c1b21a"
}
},
{
"id": "refused-after-data",
"observation": {
"sender": "01a7596f538f",
"payloads": "d1e42a0a312d",
"settlements": "161b05d3a099",
"state": "79b8c1b0d1d1",
"effects": "1476fcb5bc03"
}
}
]
}
}
@@ -0,0 +1,258 @@
{
"operation": "settings.home-providers",
"family": "settings.home-providers",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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"
}
}
]
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,473 @@
{
"operation": "settings.repo-metadata",
"family": "settings.repo-metadata",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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"
}
}
]
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,405 @@
{
"operation": "settings.resume-metadata",
"family": "settings.resume-metadata",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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"
}
}
]
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,858 @@
{
"operation": "settings.task-hydration",
"family": "settings.task-hydration",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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,940 @@
{
"operation": "settings.workspace-context",
"family": "settings.workspace-context",
"namedDeltas": [],
"runnerVersion": 1,
"baseline": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": {}
},
"3ee7bea0470d": {
"mount": {
"status": "fulfilled",
"startedAt": 0,
"settledAt": 0,
"value": {
"$rpc": "undefined"
}
},
"blur": {
"status": "fulfilled",
"startedAt": 0,
"settledAt": 0,
"value": {
"$rpc": "undefined"
}
},
"revisit": {
"status": "fulfilled",
"startedAt": 0,
"settledAt": 0,
"value": {
"$rpc": "undefined"
}
}
},
"4f53cda18c2b": [],
"60fdc69b3ee5": [
{
"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": {}
}
}
}
},
{
"name": "preflight.check#2",
"args": [
{
"name": "method",
"value": "preflight.check"
},
{
"name": "params",
"value": {
"$rpc": "absent"
}
},
{
"name": "options",
"value": {
"$rpc": "absent"
}
}
],
"settlement": {
"status": "pending",
"startedAt": 0
}
},
{
"name": "linear.status#2",
"args": [
{
"name": "method",
"value": "linear.status"
},
{
"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
}
},
{
"name": "ui.get#2",
"args": [
{
"name": "method",
"value": "ui.get"
},
{
"name": "params",
"value": {
"$rpc": "absent"
}
},
{
"name": "options",
"value": {
"$rpc": "absent"
}
}
],
"settlement": {
"status": "pending",
"startedAt": 0
}
}
],
"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\"}"
}
],
"7d7f0d2cb674": [
{
"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\"}"
},
{
"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#2",
"json": "{\"id\":\"frame-7\",\"deviceToken\":\"recording-device\",\"method\":\"settings.get\"}"
},
{
"name": "ui.get#2",
"json": "{\"id\":\"frame-8\",\"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
}
}
],
"d5bfc5b033a8": [
{
"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": {}
}
}
}
},
{
"name": "preflight.check#2",
"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-5",
"ok": true,
"result": {
"glab": {
"installed": false
}
}
}
}
},
{
"name": "linear.status#2",
"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-6",
"ok": true,
"result": {
"connected": false
}
}
}
},
{
"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-7",
"ok": false
}
}
},
{
"name": "ui.get#2",
"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-8",
"ok": true,
"result": {
"ui": {}
}
}
}
}
],
"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-refuse-after-data",
"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"
}
},
{
"id": "data-present",
"observation": {
"sender": "edae57429e34",
"payloads": "7076fb41232c",
"settlements": "0131611322e3",
"state": "2a7485a88169",
"effects": "4f53cda18c2b"
}
},
{
"id": "refresh-pending",
"observation": {
"sender": "60fdc69b3ee5",
"payloads": "7d7f0d2cb674",
"settlements": "3ee7bea0470d",
"state": "2a7485a88169",
"effects": "4f53cda18c2b"
}
},
{
"id": "refused-after-data",
"observation": {
"sender": "d5bfc5b033a8",
"payloads": "7d7f0d2cb674",
"settlements": "3ee7bea0470d",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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": "aba77d5babfeb3988a8ad39a16a1bc5af86ebf80",
"lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571",
"recorderSha256": "70e4ea4590f92a02dd93cf9212d0160f9bc194fbd59eee746c917e9dc42c5718",
"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"
}
}
]
}
}
@@ -0,0 +1,52 @@
diff --git a/mobile/scripts/mock-server-rpc-handlers.ts b/mobile/scripts/mock-server-rpc-handlers.ts
index f67db5bc2f2..5049bd9d143 100644
--- a/mobile/scripts/mock-server-rpc-handlers.ts
+++ b/mobile/scripts/mock-server-rpc-handlers.ts
@@ -165,17 +165,37 @@ export function handleRequest(
respond(success(request.id, { repos: FAKE_REPOS }))
break
- case 'settings.get':
- respond(
- success(request.id, {
- settings: {
- defaultTuiAgent: 'codex',
- disabledTuiAgents: [],
- agentCmdOverrides: {}
- }
- })
- )
+ case 'settings.get': {
+ // MOCK_SETTINGS_GET_MODE drives runtime validation of the refusal/null/absent branches.
+ const mode = process.env.MOCK_SETTINGS_GET_MODE ?? 'ok'
+ if (mode === 'refused') {
+ respond(error(request.id, 'refused', 'settings refused'))
+ } else if (mode === 'method-not-found') {
+ respond(error(request.id, 'method_not_found', 'Unknown method'))
+ } else if (mode === 'null-result') {
+ respond(success(request.id, null))
+ } else if (mode === 'absent-result') {
+ const resp = success(request.id, undefined)
+ delete (resp as { result?: unknown }).result
+ respond(resp)
+ } else if (mode === 'absent-settings') {
+ respond(success(request.id, {}))
+ } else if (mode === 'drop') {
+ // Mid-request disconnect: never answer, then close the socket.
+ setTimeout(() => ws.close(), 50)
+ } else {
+ respond(
+ success(request.id, {
+ settings: {
+ defaultTuiAgent: 'codex',
+ disabledTuiAgents: [],
+ agentCmdOverrides: {}
+ }
+ })
+ )
+ }
break
+ }
case 'settings.getTerminalQuickCommands':
respond(success(request.id, { terminalQuickCommands: fakeQuickCommands }))
@@ -0,0 +1,130 @@
// Runtime probe: real mock-desktop settings.get replies through the migrated acceptance layer.
import WebSocket from 'ws'
import nacl from 'tweetnacl'
import { readFileSync } from 'node:fs'
import { deriveSharedKey, e2eeDecrypt, e2eeEncrypt } from '../../scripts/mock-server-encryption.ts'
import {
botOverridesRead,
newTabSettingsRead,
optionalSettingsRead,
settingsRead
} from '../../src/transport/settings-read-operations.ts'
const PORT = Number(process.env.PORT) || 6768
const KEY_FILE = process.env.MOCK_SERVER_KEY_FILE!
const serverPublic = nacl.box.keyPair.fromSecretKey(
Uint8Array.from(Buffer.from(readFileSync(KEY_FILE, 'utf-8').trim(), 'base64'))
).publicKey
function rawReply(): Promise<unknown> {
const kp = nacl.box.keyPair()
const key = deriveSharedKey(kp.secretKey, serverPublic)
const ws = new WebSocket(`ws://127.0.0.1:${PORT}`)
return new Promise((resolve, reject) => {
let settled = false
const finish = (value: unknown) => {
if (!settled) {
settled = true
try {
ws.close()
} catch {}
resolve(value)
}
}
const timer = setTimeout(() => finish({ __outcome: 'no-reply-timeout' }), 5000)
ws.on('open', () =>
ws.send(
JSON.stringify({
type: 'e2ee_hello',
publicKeyB64: Buffer.from(kp.publicKey).toString('base64')
})
)
)
ws.on('close', () => {
clearTimeout(timer)
finish({ __outcome: 'socket-closed-before-reply' })
})
ws.on('error', (e) => {
clearTimeout(timer)
if (!settled) {
settled = true
reject(e)
}
})
ws.on('message', (data) => {
const text = data.toString('utf-8')
if (text.startsWith('{"type":"e2ee_ready"')) {
ws.send(
e2eeEncrypt(JSON.stringify({ type: 'e2ee_auth', deviceToken: 'mock-device-token' }), key)
)
return
}
const plain = e2eeDecrypt(text, key)
if (plain === null) {
return
}
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the probe prints whatever the host sent, so the frame is read as a bag of fields.
const frame = JSON.parse(plain) as { type?: string; id?: string }
if (frame.type === 'e2ee_authenticated') {
ws.send(
e2eeEncrypt(
JSON.stringify({ id: 'probe-1', method: 'settings.get', token: 'mock-device-token' }),
key
)
)
return
}
if (frame.id === 'probe-1') {
clearTimeout(timer)
finish(frame)
}
})
})
}
function describe(label: string, run: () => unknown): string {
try {
const value = run()
return `${label}=${JSON.stringify(value)}`
} catch (error) {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: a thrown value is not an Error by type; only its constructor name and message are printed.
return `${label}=THREW ${(error as Error).constructor.name}: ${(error as Error).message}`
}
}
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the probe substitutes one recorded reply for the whole client surface.
const reply = (await rawReply()) as Record<string, unknown>
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the probe substitutes one recorded reply for the whole client surface.
const client = {
sendRequest: async () => reply
} as unknown as Parameters<typeof settingsRead.request>[0]
const lines: string[] = [`mode=${process.env.MOCK_SETTINGS_GET_MODE ?? 'ok'}`]
lines.push(`wireReply=${JSON.stringify(reply)}`)
if (reply.__outcome) {
lines.push('interpret=skipped (no reply frame)')
} else {
for (const [name, op] of [
['settingsRead', settingsRead],
['optionalSettingsRead', optionalSettingsRead],
['botOverridesRead', botOverridesRead],
['newTabSettingsRead', newTabSettingsRead]
] as const) {
const response = await op.request(client)
lines.push(
describe(name, () => {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: each operation is driven through its own declared reply type in turn.
const outcome = op.interpret(response as never) as
| (() => unknown)
| { accepted?: boolean; value?: unknown }
// new-tab acceptance returns a deferred reader, not an accept envelope.
if (typeof outcome === 'function') {
return { deferred: outcome() }
}
const value = typeof outcome?.value === 'function' ? outcome.value() : outcome?.value
return outcome?.accepted === undefined ? value : { accepted: outcome.accepted, value }
})
)
}
}
process.stdout.write(lines.join('\n') + '\n')
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"
]
}
]
}
+70
View File
@@ -0,0 +1,70 @@
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')
}
// Why a second check: `git diff` only sees tracked paths, so an untracked module under the
// guarded trees can change resolution while the baseline check still passes — the golden would
// then carry a pinned baseline header it did not actually record against.
const untracked = await runProcess({
program: 'git',
args: [
'ls-files',
'--others',
'--exclude-standard',
'--',
'mobile/src',
'src/shared',
':!mobile/src/test-support/rpc-recording'
],
cwd: root
})
if (untracked.code !== 0) {
throw new Error(`Could not enumerate untracked product sources: ${untracked.stderr}`)
}
if (untracked.stdout.trim() !== '') {
throw new Error(
`Untracked product sources would not be pinned by the baseline:\n${untracked.stdout.trim()}`
)
}
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,247 @@
# 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.
## What this oracle does and does not see
It replays 46 scenarios against frozen goldens and fails on any divergence: 73 goldens over 118
tests, all inside `pnpm --dir mobile test`. For a migration it answers one question — does the
rewritten call site produce the same sender calls, settlements, state and effects as main did?
It is not a substitute for reading the diff. Two facts bound it, both learned the hard way:
- **It was blind to refusal ordering.** Reordering the settings and sibling refusal checks in
`mobile-new-tab-agent-loader.ts` survives every golden except `probe-new-tab-both-refused`
measured by applying the reorder to the real source: 1 failure in 84 tests, and the one failure
is a probe. Every pre-probe "refused" scenario refuses on the _first_ request, and every
correlated-failure schedule rejects at the transport, where neither check is reached. A human
reviewer caught that class by reading #20499.
- **It did not observe data loss on refresh.** No pre-probe golden records state after a refused
_refresh_, so "does this screen keep its data or blank it?" was undocumented. This one is an
observational gap, not a proven detection gap: publishing an unaccepted read in
`use-new-workspace-runtime-context.ts` is caught by the refuse-after-data probe _and_ by
`matrix-settings.workspace-context`, because a refusal from cold publishes `null` over a non-null
initial value. Claim the recorded behaviour, not blindness.
`probe-hole-witness.test.ts` closes both and keeps them closed. It asserts the hole and the closure
together: each probe must kill its mutation _and_ every pre-probe scenario of the same operation
must still survive it. A probe that stops being load-bearing fails instead of lingering.
What is still not covered: what the count-based raw-port inventory covers instead (which files
reach `sendRequest`, and how often), native storage, transport skew, the `subscribe`/
`sendUnsubscribe` ports, and the two mutations under _Known-open holes_ below. Four of the nine
probes pin behaviour with no demonstrated mutation — the two mixed reject/refusal new-tab orders
and the home-providers and resume-metadata refresh refusals; they are frozen observations, not
proven defect detectors. `settings.resume-metadata` projects `{}` as its state, so its probe
observes only sender calls and settlements.
### Recorded finding: a refused refresh is not handled the same way twice
The five refuse-after-data probes record `settingsRead` refusing a _refresh_ after a success.
Four call sites retain what they had. `use-mobile-tasks-runtime-hydration.tsx` does not: it
publishes `{}`, so a refused refresh wipes the runtime task settings. That divergence is recorded,
not repaired — `settings-task-hydration-refuse-after-data.json` is the observation, and changing
the behaviour is a product change with its own re-record.
## Running it for a step-4 migration
```sh
# 1. Before touching the call site, confirm the oracle is green on your branch.
ORCA_BACKGROUND_LAUNCH=1 pnpm --dir mobile test src/test-support/rpc-recording
# 2. Migrate the call site. Re-run. Any divergence is your diff, reported down to the JSON path.
# 3. If a divergence is intended, say so deliberately. Recording refuses to run unless the
# product tree matches the pinned baseline, so bump `baseline` in pilot-scenarios.json to the
# commit you are recording from first.
ORCA_BACKGROUND_LAUNCH=1 RPC_FOUNDATION_RECORD=1 \
pnpm --dir mobile exec tsx scripts/rpc-recording.mts --record
```
A re-record is a claim about behaviour. State the cause in the commit; every golden the refresh
moves should have one.
If your call site carries a mutation anchor in `operation-mutations.ts`, rewriting it will make the
anchor match zero sites. Re-anchor the same defect at its new home rather than deleting the mutant:
#20499 broke five anchors that way, and each one had a new home.
`live-probe/` holds the runtime companion: `mock-desktop-settings-reply-modes.patch` teaches the
mock desktop server to answer `settings.get` with a refusal, `method_not_found`, a null or absent
result, absent settings, or silence, and `settings-get-reply-probe.mts` drives a real socket
through the migrated acceptance layer. Opt-in, never applied by the suite, because the patch is a
product-tree edit.
## 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.
## The cleanup checkpoint
Teardown runs on the recorded path, not only in `finally`. Each checkpoint clones the effects
array, so a rejection or state write produced by `dispose()`, the transport teardown or the final
`scheduler.flush()` used to land after the recording was built and never reached a golden — and an
unmount leak is exactly what this oracle exists to catch.
When teardown observes anything, it becomes a checkpoint with id `cleanup`. `state` is captured
before dispose, because the operation is gone afterwards.
Five goldens carry one today, covering six scenarios whose dropped observations were not noise:
`projectRowDetailError`, `projectMutating`, `hostLabelById`, `hostPlatform`, `workspaceAgent`,
`workspaceAgentOverridden`, `creatingKey`, `selectedAgent`, `agentOverridden` and `error`. A
scenario that stops leaking loses its checkpoint, which is a visible golden diff rather than a
silent improvement.
@@ -0,0 +1,20 @@
/**
* How many times each scenario is recorded and compared against itself.
*
* Why it validates instead of coercing: the loop bound came straight from `Number(env ?? 2)`, so
* `0`, `-1` or a typo skipped the body entirely and every scenario reported green having recorded
* and compared nothing. A verification suite must not have a silent no-op mode.
*/
export function determinismRuns(): number {
const raw = process.env.RPC_FOUNDATION_DETERMINISM_RUNS
if (raw === undefined) {
return 2
}
const runs = Number(raw)
if (!Number.isInteger(runs) || runs < 2) {
throw new Error(
`RPC_FOUNDATION_DETERMINISM_RUNS must be an integer >= 2 to compare a run against another; got ${JSON.stringify(raw)}`
)
}
return runs
}
@@ -0,0 +1,163 @@
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'
import { determinismRuns } from './determinism-runs'
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 < determinismRuns(); 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,194 @@
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 {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the file is validated against GoldenFile on the next lines.
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`)
}
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: goldenFormatVersion was just checked, so the pool is present.
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)) {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: header keys are compared as data, not consumed as fields.
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(
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: both sides are recorded observations, so every member is a RecordedValue.
(entry, at) => canonicalJson(entry) !== canonicalJson(actual[at] as RecordedValue)
)
return index === -1 || index >= actual.length
? here
: firstDifference(
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: both sides are recorded observations, so every member is a RecordedValue.
expected[index] as RecordedValue,
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: both sides are recorded observations, so every member is a RecordedValue.
actual[index] as RecordedValue,
`${path}[${index}]`
)
}
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the array branch above already rejected a non-object pair.
const left = expected as Record<string, RecordedValue>
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the array branch above already rejected a non-object pair.
const right = actual as Record<string, RecordedValue>
const key = [...new Set([...Object.keys(left), ...Object.keys(right)])].sort().find(
(name) =>
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: both sides are recorded observations, so every member is a RecordedValue.
canonicalJson(left[name] as RecordedValue) !== canonicalJson(right[name] as RecordedValue)
)
return key === undefined || !(key in left) || !(key in right)
? here
: // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: both sides are recorded observations, so every member is a RecordedValue.
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,92 @@
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(',')}]`
}
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: canonicalJson only reaches here for a plain object observation.
const record = value as Record<string, RecordedValue>
return `{${Object.keys(record)
.sort()
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: a recorded object holds recorded values.
.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) => {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: every observation field is assigned below before the value is read.
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()
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: pool entries are the recorded values that were interned into it.
.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) => {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: every observation field is assigned below before the value is read.
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})`
)
}
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the hash was resolved against the same pool that interned it.
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,131 @@
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) {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the barrel target is a module this loader evaluated.
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 =>
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: a VM-evaluated module has no static type; the caller names the shape it mounts.
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,143 @@
/**
* 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: 'settings-read-operations.ts',
before: "settings == null ? undefined : Reflect.get(Object(settings), 'prBotAuthorOverrides')",
after: "raw == null ? undefined : Reflect.get(Object(raw), 'prBotAuthorOverrides')"
},
// Publishes the settings envelope instead of the accepted operation value.
'workspace-context-envelope': {
file: 'use-new-workspace-runtime-context.ts',
before:
'(settingsResult.value as NewWorktreeRuntimeSettings & { visibleTaskProviders?: unknown })',
after:
'(settingsRes.value.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 the accepted value.
'task-hydration-envelope': {
file: 'use-mobile-tasks-runtime-hydration.tsx',
before: '((settingsResult.value ?? {}) 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 = settings.value as NewWorktreeRuntimeSettings',
after: 'latestRuntimeSettings = settingsReply.result as NewWorktreeRuntimeSettings'
},
// Reads settings eagerly, so a null result throws before the sibling's refusal is checked.
'new-tab-deferred-settings-read': {
file: 'settings-read-operations.ts',
before: ' value: () => settingsMember(raw),',
after: ' value: ((settings) => () => settings)(settingsMember(raw)),'
},
// Checks the sibling's refusal before the operation's own, so a correlated refusal reports the
// sibling. Invisible to every scenario whose sibling succeeds or rejects at the transport.
'new-tab-refusal-order': {
file: 'mobile-new-tab-agent-loader.ts',
before: ` const readSettings = newTabSettingsRead.interpret(settingsResponse)
if (!detectedResponse.ok) {
throw new Error((detectedResponse as RpcFailure).error.message)
}`,
after: ` if (!detectedResponse.ok) {
throw new Error((detectedResponse as RpcFailure).error.message)
}
const readSettings = newTabSettingsRead.interpret(settingsResponse)`
},
// Publishes an unaccepted read, blanking settings a refusal should have left alone. Invisible
// to any scenario that refuses before the screen ever held data.
'workspace-context-refusal-blanks': {
file: 'use-new-workspace-runtime-context.ts',
before: ` if (settingsValue) {
setRuntimeSettings(settingsValue)
}`,
after: ' setRuntimeSettings(settingsValue)'
},
// Publishes the settings envelope as the refreshed task runtime settings.
'task-workspace-envelope': {
file: 'use-mobile-tasks-workspace-create-actions.tsx',
before: 'latestRuntimeTaskSettings = (settingsResult.value ?? {}) as RuntimeTaskSettings',
after: 'latestRuntimeTaskSettings = (settingsReply.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,227 @@
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(() => {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the recorder supplies only the members the hook reads.
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(() => {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the recorder supplies only the members the hook reads.
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(
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the scenario supplies the row as JSON, not as a typed model.
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(() => {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the recorder supplies only the members the hook reads.
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(() => {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the recorder supplies only the members the hook reads.
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(
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the preset arrives from the scenario JSON as a string.
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,140 @@
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'
import { determinismRuns } from './determinism-runs'
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 < determinismRuns(); 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,67 @@
import { resolve } from 'node:path'
import { describe, expect, it } from 'vitest'
import { readScenarios } from './scenario-input'
import { readGolden } from './golden-recording'
import { runRecordingMutant } from './run-recording'
import { pilotMountAdapters } from './pilot-mount-adapters'
import { vitestRecordingScheduler } from './vitest-recording-scheduler'
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')
/**
* Each probe exists because a real mutation survived the whole pre-probe suite. Hole and closure
* are asserted together: if a pre-probe scenario of the same operation also caught the mutation,
* the probe is redundant and this test says so instead of letting it accumulate.
*/
const HOLES: readonly { mutation: Mutation; operation: string; closedBy: readonly string[] }[] = [
{
mutation: 'new-tab-refusal-order',
operation: 'settings.new-tab-agents',
closedBy: ['probe-new-tab-both-refused']
},
{
mutation: 'new-tab-deferred-settings-read',
operation: 'settings.new-tab-agents',
closedBy: ['probe-new-tab-null-sibling-refused']
},
{
mutation: 'workspace-context-refusal-blanks',
operation: 'settings.workspace-context',
closedBy: ['settings-workspace-context-refuse-after-data']
}
]
async function verdict(id: string, mutation: Mutation): Promise<string> {
const scenario = input.scenarios.find((candidate) => candidate.id === id)!
const { adapters, assertMutationApplied } = pilotMountAdapters(root, { mutation })
const result = await runRecordingMutant(
scenario,
adapters[scenario.operation],
vitestRecordingScheduler(),
readGolden(goldens, id).recording
)
assertMutationApplied()
return result.verdict
}
describe('probe scenarios close holes the pre-probe recordings left open', () => {
for (const hole of HOLES) {
const family = input.scenarios.filter((scenario) => scenario.operation === hole.operation)
for (const id of hole.closedBy) {
it(`${id} kills ${hole.mutation}`, async () => {
expect(await verdict(id, hole.mutation)).toBe('killed')
})
}
for (const scenario of family.filter(({ id }) => !hole.closedBy.includes(id))) {
it(`${scenario.id} cannot see ${hole.mutation}`, async () => {
expect(await verdict(scenario.id, hole.mutation)).toBe('survived')
})
}
}
})
@@ -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,327 @@
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') })
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the bytes were just produced by goldenBytes, so the pool is present.
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)
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: an interned observation field is a pool hash at rest.
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 = settings == null ? undefined : Reflect.get(Object(settings), 'prBotAuthorOverrides')"
mkdirSync(join(root, 'mod'), { recursive: true })
writeFileSync(
join(root, 'mod/settings-read-operations.ts'),
`const raw = {} as { settings?: unknown }\nconst settings = raw.settings\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/settings-read-operations.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,94 @@
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()
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the plain-object branch above already narrowed the container.
.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 {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: code and cause are read defensively; a thrown value carries neither by type.
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,148 @@
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
let cleaned = false
const teardown = async (): Promise<void> => {
cleaned = true
await mounted?.dispose()
transport.dispose()
await scheduler.flush()
}
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: {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: a structured clone of recorded requests is recorded data.
sender: structuredClone(transport.requests) as unknown as RecordedValue,
payloads: structuredClone(transport.payloads),
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: a structured clone of recorded settlements is recorded data.
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}`)
}
// Why cleanup runs here and not only in `finally`: each checkpoint clones `effects`, so a
// rejection or state write produced by dispose, transport teardown or the final flush landed
// after the recording was built and never reached a golden. Unmount leaks are exactly what
// this oracle exists to catch, so teardown happens on the recorded path and anything it
// observes becomes its own checkpoint. `state` is captured before dispose because the
// operation is gone afterwards.
const beforeCleanup = effects.length
const stateAtCleanup = captureValue(mounted.state())
await teardown()
if (effects.length !== beforeCleanup) {
recording.checkpoints.push({
id: 'cleanup',
observation: {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: a structured clone of recorded requests is recorded data.
sender: structuredClone(transport.requests) as unknown as RecordedValue,
payloads: structuredClone(transport.payloads),
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: a structured clone of recorded settlements is recorded data.
settlements: structuredClone(settlements) as unknown as RecordedValue,
state: stateAtCleanup,
effects: structuredClone(effects)
}
})
}
return recording
} finally {
try {
if (!cleaned) {
await teardown()
}
} 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,34 @@
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[] } {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the manifest shape is validated on the next lines.
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,176 @@
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) => {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the physical client publishes the frame this transport just serialized.
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),
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: a pending settlement has no settledAt yet.
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)
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the scenario asked for a null result, which is a reply shape a host can send.
this.tracker.resolve({ id: binding.id, ok: true, result: null } as RpcResponse)
} else {
// oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the scenario supplies the reply as JSON; the wire id is the transports.
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()
}
}

Some files were not shown because too many files have changed in this diff Show More