From 36ef93a64f3a10b335ffe8a9f9976cc5e6155faa Mon Sep 17 00:00:00 2001 From: Jinwoo Hong <73622457+Jinwoo-H@users.noreply.github.com> Date: Tue, 15 Sep 2026 13:10:32 -0400 Subject: [PATCH] refactor(mobile): migrate the small domains onto RpcOperation (step 4) (#20705) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor(mobile): pin each RPC golden to its own mount adapter, not every domain's `recorderSha256` covered the whole recorder directory, mount adapters included, so a domain PR that adds its adapter module moved the header of all 153 goldens. #20568 did exactly that and its merge with main conflicted on that one line in 153 files; every future domain PR would collide with every other in flight the same way. Split the directory at a real seam instead of a filename convention: `adapters/` holds one module per domain, registered in `adapters/mounted-operation-modules.ts`, and `recorderSha256` now covers the engine only. A new `adapterSha256` covers the source of the module that mounts each operation a golden's scenarios drive, read off the same `mounts` calls that build the table the recording runs against, so the pin cannot name a file the runner did not use. Adding a domain's module now re-digests nothing already recorded; editing one fails exactly the goldens mounted through it. `adapter-seam.test.ts` keeps the split from drifting: an engine file inside `adapters/`, an adapter defined in an engine file, a register entry naming the wrong file, and an adapter importing a sibling each fail. The five adapters that were inline in `pilot-mount-adapters.ts` move into their own modules, which leaves that file as the registry and nothing else. `GOLDEN_FORMAT_VERSION` goes to 5 for the new header field; the goldens re-record in the next commit. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): re-record the RPC goldens under the split recorder/adapter digest Header-only. Every changed line is `recorderSha256` (the engine digest no longer covers `adapters/`), the new `adapterSha256`, or `goldenFormatVersion` 4 -> 5; `baseline` is unchanged and recording ran against the same pinned product tree. git diff -U0 -- mobile/rpc-foundation/goldens | grep -E '^[+-]' \ | grep -vE '^(\+\+\+|---)' \ | grep -vE '^[+-] "(recorderSha256|adapterSha256|goldenFormatVersion)":' | wc -l 0 The seven `adapterSha256` values partition the 153 goldens by the module each was recorded through: 58 settings, 37 hosted review, 21 source control, 11 new-tab agents, 9 file inventory, 9 tasks, 8 workspace settings. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * refactor(mobile): stop pinning goldens to recorder inputs no recording can read The adapter split left three per-domain edits still moving all 153 headers: the mutant table, the per-family mutant registry beside it, and the probe-hole witness. None can change a recording -- the loader consults a mutant only when a mutant test asks for one, and no suite but the two recording drivers writes a golden -- so pinning them claimed a provenance the goldens do not have and charged every domain a full re-record for it. `mutants/` now holds the table, the registry, the reference states, the mutant suites and the probe-hole witness, and `recorderSha256` skips it. What makes that sound is that no recording can reach it: `operationModuleLoader` takes a resolved mutation spec instead of importing a table by name, so nothing on the recording path names `mutants/` at all. `mutants/mutant-seam.test.ts` checks exactly that, and fails if an engine file names the directory or anything outside imports from it. `recorderSha256` also pins only the suites in `recording-drivers.ts`, which `scripts/rpc-recording.mts` records from, so the two cannot drift. A suite that reads goldens, or writes one to a scratch directory, is no longer provenance for a recorded file. `OPERATION_EXPOSURES` went the other way, because it does change what a recording loads: withhold the resume-metadata exposure and exactly four goldens fail. Each domain module now declares its own exposures and gets its own loader, so `adapterSha256` pins the ones that reached each golden. Two assertions in the digest boundary test were vacuous: `join(root, '.')` normalises back to `root` and hit `recorderSha256`'s per-root cache, so the prose-is-ignored claim never recomputed anything. Each call now spells the root differently. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): re-record the RPC goldens under the mutant and driver exclusions Header-only, and no format bump: the header shape is unchanged. `recorderSha256` moves on all 153 because the engine set shrank, and `adapterSha256` moves on the 58 settings goldens because that module now carries its own exposure declaration. git diff -U0 HEAD~1 -- mobile/rpc-foundation/goldens | grep -E '^[+-]' \ | grep -vE '^(\+\+\+|---)' \ | grep -vE '^[+-] "(recorderSha256|adapterSha256)":' | wc -l 0 Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * fix(mobile): restore the preferences actions the merge resolution dropped #20568 added `resume` and `trust` actions to the `settings.task-preferences` adapter while it still lived in `pilot-mount-adapters.ts`. This branch had already moved that adapter into `adapters/task-mount-adapters.ts`, so resolving the `pilot-mount-adapters.ts` conflict in favour of the registry merge silently discarded them and `tw-task-preferences-resume-write` failed to record at all ("Missing or completed request: ui.set#1"). Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): re-record the RPC goldens at main's tip after the merge All 208 goldens, header-only. `baseline` moves from 50e752fc66 to main's tip c6a7216984, `goldenFormatVersion` from 4 to 5, `recorderSha256` to the value of the engine with `adapters/` and `mutants/` carved out, and `adapterSha256` is new on every file. Nine distinct adapter digests over 208 goldens: each golden now pins only the module that mounts it. No observation moved. The whole-diff census against origin/main reports exactly four changed keys and nothing else: 208 "adapterSha256": 416 "baseline": 416 "goldenFormatVersion": 416 "recorderSha256": Recorded in place rather than through the README's detached-baseline dance: this branch changes no product file, so its tree at the merge is byte-identical to c6a7216984 under mobile/src, src/shared and the lockfile, and the parity claim stays non-circular. README says so now. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): hold the recording drivers to the engine's mutant-seam rule The name scan exempted every `.test.ts` on the ground that a test cannot change a recording. Two of them can: the recording drivers are the recording path. A driver that read the mutant table by path rather than importing it passed both seam checks — the import scan sees no import, and the name scan waved it through as a test: const table = resolve(import.meta.dirname, 'mutants/operation-mutations.ts') console.log(readFileSync(table, 'utf8').length) at the top of `pilot-recordings.test.ts` gave 2 passed before, and after this change fails with ["pilot-recordings.test.ts"]. Only non-driver tests are exempt now. This file lives in `mutants/`, which `recorderSha256` skips, so no golden moves: the recorder suite is green on the existing 208 with zero dirty. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * refactor(mobile): drop the registry parameter no caller varies `pilotMountAdapters` took `registered` so a caller could mount a different module set; all six callers take the default. The header-digest tests vary the registry through `goldenRecording`, which keeps its own parameter and is where the stub roots need it. Engine source, so `recorderSha256` moves and the goldens follow in the next commit. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): re-record the RPC goldens after the registry parameter came out All 208, `recorderSha256` only. The re-record against the previous commit moves 416 lines, every one of them that field: 416 "recorderSha256": Against origin/main the picture is unchanged from the merge: 208 goldens, 0 added or deleted, 0 non-header lines, and exactly four keys differing — 208 "adapterSha256" 416 "baseline" 416 "goldenFormatVersion" 416 "recorderSha256" Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * docs(mobile): wrap the recording README at the width the rest of it uses Seven lines this branch added ran past 100 columns, worst 124. No wording changed. Markdown is outside `recorderSha256`, so no golden moves. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * docs(mobile): name the worktree overlay, not the archive that cannot work `git archive` was offered alongside a detached checkout as a way to lay this branch's recorder over the pinned baseline. It cannot work: the fence in scripts/rpc-recording.mts runs `git diff --quiet ` and an untracked-file check, both of which need a real `.git`. In an archive tree git exits non-zero for lack of a repository and the script reports "Product sources or lockfile differ from the pinned main baseline", which reads as a product mismatch that is not there. The transport agent lost time to exactly that. Names `git worktree add --detach` only, and says what the misleading failure looks like if someone tries an archive anyway. Markdown is outside `recorderSha256`, so no golden moves. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): close two ways an adapter module escapes its own digest Two holes, one class: the seam was checked by how an import was spelled and by what the register's values evaluated to, never by where they resolve or where they were written. Inward imports: the scan dropped every specifier starting with `..`, so `'../adapters/settings-mount-adapters'` climbed out of the directory and back into it unseen. A reviewer had `new-tab-agent-mount-adapters.ts` project a value read from the settings module, edited that module, and watched the mounted state change while the new-tab adapter digest held. Specifiers now resolve against the directory and anything landing back inside it fails: ["new-tab-agent-mount-adapters.ts imports ../adapters/settings-mount-adapters"] The register: `adapters/mounted-operation-modules.ts` is pinned by nothing — `recorderSha256` skips the directory and `adapterSha256` reads each entry's `source`. An `exposes` written inline there drives the mounted product module with no digest covering it. The same reviewer replaced the new-tab entry's `exposes` with a literal overriding `loadMobileNewTabAgentOptions`; twelve fence tests passed. Both `mounts` and `exposes` must now be identifiers the register imports from that entry's own module: ["new-tab-agent-mount-adapters.ts writes exposes inline instead of importing it"] Checked on the register's syntax, not its values, because an inline literal and an imported binding are indistinguishable once evaluated. Pinning the register in the engine digest would also close it, and is the wrong trade: every domain adding a register line would re-digest all 208 goldens, which is the conflict this PR exists to remove. Keeping the register an index costs nothing and keeps a domain's line local. Both fixes live in a `.test.ts` outside the drivers, so no golden moves. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): prove the mutant seam from the drivers out, not by spelling The seam rested on a grep for the literal `mutants`, which the exported `MUTANT_DIRECTORY` spells without containing. A reviewer had `pilot-mount-adapters.ts` read the mutant table through that constant and both checks passed. The README's claim — that nothing on the recording path names the directory — was false as written. Three changes, in order of strength: Reachability is now proved forward. The suite walks the static import graph from the two recording drivers and fails if any module under `mutants/` is in it. That answers the real question, what a golden's bytes can depend on, instead of the old inward scan's question, who mentions this directory. Non-emptiness is asserted on both sides so a graph that resolved nothing cannot pass by reaching nothing. The name scan covers both spellings, for paths a module can be read by rather than imported. The reviewer's probe now fails as ["pilot-mount-adapters.ts"]. `MUTANT_DIRECTORY` is no longer exported. Its two consumers were both tests of the digest, and they now spell the path instead, which is strictly better for them: a test that imports the constant follows a rename silently, while one that spells it fails on a rename — and that specific directory name is the whole soundness argument. This edits `recorder-digest.ts`, so the goldens re-record in the next commit. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): re-record the RPC goldens after MUTANT_DIRECTORY stopped being exported All 208, `recorderSha256` only. Against the previous commit the diff is 416 lines and every one of them is that field: 416 "recorderSha256": Against origin/main, unchanged: 208 goldens, 0 added or deleted, 0 non-header lines, four keys differing — 208 "adapterSha256" 416 "baseline" 416 "goldenFormatVersion" 416 "recorderSha256" Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * docs(mobile): state the mutant seam's actual argument, and its edge The README claimed nothing on the recording path names `mutants/`. That was the old inward scan's claim and a reviewer falsified it with the exported constant. It now describes what the check does: a forward walk of the import graph from the two recording drivers, plus a name scan in both spellings for read-by-path, plus the constant no longer being exported. It also names the case neither closes — a path assembled from fragments at runtime. Markdown is outside `recorderSha256`, so no golden moves. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): prove the engine/adapter seam in both directions The inward scan only held adapters to the seam. An engine file importing an adapter executes code its own digest skips and that every golden recorded through another domain leaves out of `adapterSha256`, so the register is now the only crossing allowed from the engine side. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): name what the driver walk missed instead of counting it Seeding `seen` with the drivers made the driver-presence check true by construction, and the size bound compared a graph inflated by `typeof import` product modules against a recorder-sized number. Both go; the walk now reports the recording files it failed to reach, which is empty today and names an orphan engine file the moment one appears. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * docs(mobile): reflow four paragraphs left ragged by the rewrap Orphan fragments only, no wording change: the golden-schema field list, the mutant-evidence paragraph, the probe-witness sentence and the re-anchor note. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): record the small-domain call sites before migrating them Thirteen new families cover the files, new-workspace, host-screen, home and worktree call sites step 4 migrates next: ownership capture, the preview loader and its terminal-artifact grant refresh, the artifact save, the tab doc's three shapes, the drawer's execution target and setup hook, the Codex reset-credit probe, the host view settings, the Home stats card and the three workspace catalog reads. Recorded against main's product code, so these are the parity baseline the refactor must not move. Four new adapter modules under adapters/ and no engine edit, so recorderSha256 is unmoved and every existing golden is byte-identical: 40 files added, none changed. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * refactor(mobile): send the small-domain reads through RpcOperation Thirty-five of the domain's fifty-five raw-port references now go through a declared operation: the files domain's preview, artifact and tab-doc reads and its ownership capture, the New Workspace drawer, the host screen's metadata and view-settings mirror, the Home stats card, and all three workspace catalog reads. No behaviour change, and the oracle says so: zero goldens move. Acceptance is preserved call site by call site, including two that look like defects and stay that way — a refused worktree.listRetiredNames still settles as an empty registry rather than holding the previous names, and a refused ui.get on a null result still throws into the host screen's own catch. Where two call sites disagreed about one method, both policies are named: files.read and files.readPreview throw for a session file tab and skip for the preview screen, repo.hooks throws for task create and skips for the drawer, and status.get now carries a fourth family for the Codex capability probe's object-or-null rule. The drawer's SSH connect, SSH state and agent detection reuse the workspace-create operations the tasks migration already declared rather than restating them. Two things outside the call sites. requestSingleFlight now shares the params optionality rule that request already had, so an all-optional schema such as preflight.check can omit its params on both helpers instead of only one; that is type-level and puts nothing new on the wire. And the retired-names fixture resolved a reply with no `ok`, a shape no host sends, which read as a refusal once the acceptance policy routed on it. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): drive the image arm of the preview loader The mutation census found two migrated operations that no recording reached: repointing files.readPreview or files.readTerminalArtifactPreview to a wrong method, and swapping either one's acceptance policy, changed nothing any golden observed. Both preview-load scenarios read a text path, so the loader's image branch was migrated with no wire behind it. Two scenarios now read an image path through each arm, and the adapter takes the path from the scenario instead of a constant. All four mutations die on the new goldens. They are recorded from the pinned baseline with this branch's recorder laid over it, so they are main's behaviour and not the migration's: the candidate run against the refactored tree compares clean. The adapter edit re-digests the nineteen goldens mounted through it. The diff is one adapterSha256 line each and no observation moves, which is what pinning the adapter per golden rather than per suite is for. Two casts also take the SAFETY form the house style asks for. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * refactor(mobile): drop the casts the changed-code gate flags Seven type assertions the gate counted as new, all removed rather than silenced where the type system could already answer. `normalizeMobileFilePreviewResponse` narrows on `ok` instead of asserting each arm; the snapshot adapter narrows on the fetch result's own discriminant; and the drawer's two probe reads go through one overloaded member read that keeps their optional-chaining behaviour. The remaining three keep a cast and now carry the rationale on the asserting line. No behaviour change. The two adapter edits re-digest the sixteen goldens mounted through them, one adapterSha256 line each with no observation moved, recorded from the pinned baseline the same way. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * refactor(mobile): drop the import the narrowing left behind RpcSuccess is no longer named once the response reads through its own discriminant. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): record the host screen's worktree mutations Review of #20705 showed the `use-host-worktree-actions.ts` holdout reason was wrong: its only native call is the pinned-id write, and that sits behind `if (hostId)`, so mounting with no hostId never reaches it. Two scenarios in one new family, recorded from the pinned baseline with the call site still on the raw port. The first drives all three sends so the reply matrix covers each method; the second refuses `worktree.rm` to pin the row restore. The adapter is a new module, so no existing golden's `adapterSha256` moves and none of the 250 goldens already here is rewritten. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * refactor(mobile): send the host list's worktree mutations through RpcOperation Pin, remove and activate move onto operations in host-screen-operations.ts. All three skip on refusal, which is the policy each site already applied by hand: the pin and activate writes swallow everything in a `.catch`, and the remove restores the row on a refused reply. `worktree.set` therefore carries a second policy next to source-control's `worktree.set-review-link`, which throws; both are named. Zero goldens move. The inventory loses use-host-worktree-actions.ts and states the real reason the drawer's repo list stays: it renders the last-visited-repo hook, whose default import of async-storage the recorder's proxy refuses at module load, before the hostId guard the reviewer expected to save it. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): type the worktree-action fixture row and follow the activation scan The fixture row I recorded from had four fields, which `tsc` rejects as a `Worktree`. Filling it out moves the five goldens of this branch's own new family and nothing else; the recorded sends are unchanged, only the projected row is. `mobile-worktree-activation-source.test.ts` scanned the hook for the literal `sendRequest('worktree.activate'`, which the previous commit replaced. It now asserts the operation call and its two flags in the hook, plus the method in host-screen-operations.ts, so the pair still pins the same wire. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * refactor(mobile): take the five deletions round-1 review asked for - `fileOwnershipRuntimeStatusRead` was `taskRuntimeStatusRead` field for field. It is now a re-export of it. The goldens are keyed on the scenario family, not the operation name, so `matrix-files.mutation-ownership-status.get-1.json` survives unchanged. - `readProbeMember`'s two overloads asserted shapes nothing checked. Gone; the nested read goes through the same single-signature function. - `normalizeMobileFilePreviewResponse` had no product caller. Deleted with its re-export; its twelve assertions now drive the accepted and refused arms directly. - The three inline copies of the accepted-result union are gone. They name each operation's own `interpret` return instead of importing `RpcAcceptedResult`: importing the contract would pull all three call sites into the cast fence, where their existing SAFETY assertions fail it. - `codex-reset-credit-capability-operation.ts` is now `-operations.ts`. No adapter names it, so no golden re-digests. Zero goldens move. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * refactor(mobile): give the skip verdict its own transport module The three settle helpers typed their interpret parameter as `ReturnType.interpret>`, naming one operation while being called with others whose verdicts happen to be structurally identical. Narrowing a named reader would have silently retyped unrelated helpers. `RpcAcceptedResult` moves to `rpc-accepted-result.ts`, outside the cast fence's three region seeds, so a consumer can name the verdict without becoming an operation implementation. `rpc-operation-contract.ts` re-exports it. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * refactor(mobile): drop three sender aliases nothing imports MobileHostScreenRpcSender, MobileNewWorkspaceRpcSender and MobileWorktreeCatalogRpcSender each appeared only in the file that declared them. A named type with no consumer is a cost, not a boundary. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * docs(mobile): say why a holdout is a holdout in the port inventory A site can be pointed at an operation without being mountable, so "cannot be migrated" was the wrong claim. The rule is record-first: the golden recorded against the old code is the only parity proof, so a site the recorder cannot mount cannot be recorded, and unrecorded sites do not migrate. Stated once in the list's header. codex-reset-credit.ts loads fine under the module loader; probed it, and its attempt-journal access throws on async-storage at call time before the send, with no guard to skip it. The old comment described it as a storage read around the send. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * docs(mobile): state the status.get policies without counting them "the fourth policy on this method", "the first of two" and "the second of two" were already wrong after round 1 folded the files family's status read into the tasks one. Each comment now states its own invariant, which no later policy can invalidate. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): stop the activation scan claiming to pin the wire `expect(operations).toContain("method: 'worktree.activate'")` passes whichever operation carries that method, so it survives swapping worktreePinWrite's and worktreeActivate's methods. tsc and the host-worktree-actions-pin-open-delete golden both fail on that swap; the scan keeps only what it can prove, which is that the callback sends through worktreeActivate with the two flags. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb --- .../goldens/components-codex-capability.json | 80 ++ .../goldens/components-setup-ask.json | 149 +++ .../goldens/components-target-local.json | 142 ++ .../goldens/components-target-ssh.json | 258 ++++ .../goldens/files-ownership-local.json | 123 ++ .../goldens/files-ownership-ssh.json | 216 +++ .../files-preview-artifact-direct.json | 96 ++ .../goldens/files-preview-artifact-image.json | 93 ++ .../goldens/files-preview-grant-refresh.json | 240 ++++ .../goldens/files-preview-worktree-image.json | 92 ++ .../goldens/files-preview-worktree.json | 95 ++ .../goldens/files-save-blind.json | 87 ++ .../goldens/files-save-verified.json | 174 +++ .../goldens/files-tab-doc-shapes.json | 232 ++++ .../goldens/home-host-stats.json | 133 ++ .../goldens/host-view-settings-sync.json | 224 ++++ ...host-worktree-actions-pin-open-delete.json | 368 ++++++ .../goldens/host-worktree-delete-refused.json | 229 ++++ ...s.codex-reset-capability-status.get-1.json | 539 ++++++++ ...target-local-preflight.detectagents-1.json | 605 +++++++++ ...target-preflight.detectremoteagents-1.json | 729 +++++++++++ ...onents.execution-target-ssh.connect-1.json | 784 +++++++++++ ...nents.execution-target-ssh.getstate-1.json | 804 ++++++++++++ ...-components.setup-script-repo.hooks-1.json | 599 +++++++++ ...les.mutation-ownership-ssh.getstate-1.json | 746 +++++++++++ ...files.mutation-ownership-status.get-1.json | 746 +++++++++++ ...es.mutation-ownership-worktree.show-1.json | 746 +++++++++++ ...iew-load-files.readterminalartifact-1.json | 649 +++++++++ ...iew-load-files.readterminalartifact-2.json | 747 +++++++++++ ...view-load-files.resolveterminalpath-1.json | 757 +++++++++++ ...iew-save-files.readterminalartifact-1.json | 681 ++++++++++ ...ew-save-files.writeterminalartifact-1.json | 691 ++++++++++ .../matrix-files.tab-doc-files.read-1.json | 861 ++++++++++++ ...rix-files.tab-doc-files.readpreview-1.json | 818 ++++++++++++ .../matrix-files.tab-doc-git.diff-1.json | 816 ++++++++++++ ...atrix-home.host-stats-stats.summary-1.json | 656 ++++++++++ .../matrix-host.view-settings-ui.get-1.json | 779 +++++++++++ .../matrix-host.view-settings-ui.set-1.json | 804 ++++++++++++ ....worktree-actions-worktree.activate-1.json | 1158 +++++++++++++++++ ...x-host.worktree-actions-worktree.rm-1.json | 1078 +++++++++++++++ ...-host.worktree-actions-worktree.set-1.json | 1148 ++++++++++++++++ ...rktree.catalog-snapshot-worktree.ps-1.json | 715 ++++++++++ ...x-worktree.home-catalog-worktree.ps-1.json | 665 ++++++++++ ...red-names-worktree.listretirednames-1.json | 583 +++++++++ .../goldens/worktree-catalog-snapshot.json | 164 +++ .../goldens/worktree-home-catalog.json | 165 +++ .../goldens/worktree-retired-names.json | 133 ++ mobile/rpc-foundation/pilot-scenarios.json | 975 ++++++++++++++ ...odex-reset-credit-capability-operations.ts | 33 + .../codex-reset-credit-capability.ts | 12 +- .../components/new-workspace-operations.ts | 40 + .../use-new-workspace-execution-target.ts | 44 +- .../use-new-workspace-runtime-context.ts | 48 +- .../use-new-workspace-setup-script.ts | 14 +- .../files/mobile-file-mutation-ownership.ts | 69 +- .../files/mobile-file-ownership-operations.ts | 35 + .../files/mobile-file-preview-operations.ts | 83 ++ .../files/mobile-file-preview-request.test.ts | 45 +- .../src/files/mobile-file-preview-request.ts | 185 ++- .../src/files/mobile-file-preview-response.ts | 19 +- .../files/mobile-file-tab-doc-operations.ts | 47 + mobile/src/files/mobile-file-tab-doc.ts | 36 +- .../mobile-terminal-artifact-grant-refresh.ts | 27 +- .../src/home/mobile-home-host-operations.ts | 17 + mobile/src/home/mobile-home-host-requests.ts | 29 +- .../src/host-screen/host-screen-operations.ts | 106 ++ .../src/host-screen/use-host-repo-metadata.ts | 56 +- .../src/host-screen/use-host-view-settings.ts | 16 +- .../host-screen/use-host-worktree-actions.ts | 13 +- .../tasks/mobile-task-runtime-operations.ts | 4 +- .../mobile-workspace-create-operations.ts | 4 +- .../adapters/file-request-mount-adapters.ts | 108 ++ .../adapters/host-screen-mount-adapters.ts | 111 ++ .../host-worktree-action-mount-adapters.ts | 90 ++ .../adapters/mounted-operation-modules.ts | 15 +- .../adapters/new-workspace-mount-adapters.ts | 107 ++ .../worktree-catalog-mount-adapters.ts | 89 ++ mobile/src/transport/rpc-accepted-result.ts | 8 + .../src/transport/rpc-operation-contract.ts | 8 +- mobile/src/transport/rpc-operation.ts | 25 +- .../unvalidated-rpc-request-port-inventory.ts | 53 +- .../src/worktree/home-host-worktree-fetch.ts | 13 +- .../mobile-worktree-activation-source.test.ts | 5 +- .../use-retired-worktree-names.test.tsx | 7 +- .../worktree/use-retired-worktree-names.ts | 14 +- .../worktree/worktree-catalog-operations.ts | 35 + .../worktree-catalog-snapshot-client.ts | 17 +- 87 files changed, 25748 insertions(+), 311 deletions(-) create mode 100644 mobile/rpc-foundation/goldens/components-codex-capability.json create mode 100644 mobile/rpc-foundation/goldens/components-setup-ask.json create mode 100644 mobile/rpc-foundation/goldens/components-target-local.json create mode 100644 mobile/rpc-foundation/goldens/components-target-ssh.json create mode 100644 mobile/rpc-foundation/goldens/files-ownership-local.json create mode 100644 mobile/rpc-foundation/goldens/files-ownership-ssh.json create mode 100644 mobile/rpc-foundation/goldens/files-preview-artifact-direct.json create mode 100644 mobile/rpc-foundation/goldens/files-preview-artifact-image.json create mode 100644 mobile/rpc-foundation/goldens/files-preview-grant-refresh.json create mode 100644 mobile/rpc-foundation/goldens/files-preview-worktree-image.json create mode 100644 mobile/rpc-foundation/goldens/files-preview-worktree.json create mode 100644 mobile/rpc-foundation/goldens/files-save-blind.json create mode 100644 mobile/rpc-foundation/goldens/files-save-verified.json create mode 100644 mobile/rpc-foundation/goldens/files-tab-doc-shapes.json create mode 100644 mobile/rpc-foundation/goldens/home-host-stats.json create mode 100644 mobile/rpc-foundation/goldens/host-view-settings-sync.json create mode 100644 mobile/rpc-foundation/goldens/host-worktree-actions-pin-open-delete.json create mode 100644 mobile/rpc-foundation/goldens/host-worktree-delete-refused.json create mode 100644 mobile/rpc-foundation/goldens/matrix-components.codex-reset-capability-status.get-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-components.execution-target-local-preflight.detectagents-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-components.execution-target-preflight.detectremoteagents-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-components.execution-target-ssh.connect-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-components.execution-target-ssh.getstate-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-components.setup-script-repo.hooks-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-files.mutation-ownership-ssh.getstate-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-files.mutation-ownership-status.get-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-files.mutation-ownership-worktree.show-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-files.preview-load-files.readterminalartifact-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-files.preview-load-files.readterminalartifact-2.json create mode 100644 mobile/rpc-foundation/goldens/matrix-files.preview-load-files.resolveterminalpath-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-files.preview-save-files.readterminalartifact-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-files.preview-save-files.writeterminalartifact-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-files.tab-doc-files.read-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-files.tab-doc-files.readpreview-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-files.tab-doc-git.diff-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-home.host-stats-stats.summary-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-host.view-settings-ui.get-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-host.view-settings-ui.set-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-host.worktree-actions-worktree.activate-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-host.worktree-actions-worktree.rm-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-host.worktree-actions-worktree.set-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-worktree.catalog-snapshot-worktree.ps-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-worktree.home-catalog-worktree.ps-1.json create mode 100644 mobile/rpc-foundation/goldens/matrix-worktree.retired-names-worktree.listretirednames-1.json create mode 100644 mobile/rpc-foundation/goldens/worktree-catalog-snapshot.json create mode 100644 mobile/rpc-foundation/goldens/worktree-home-catalog.json create mode 100644 mobile/rpc-foundation/goldens/worktree-retired-names.json create mode 100644 mobile/src/components/codex-reset-credit-capability-operations.ts create mode 100644 mobile/src/components/new-workspace-operations.ts create mode 100644 mobile/src/files/mobile-file-ownership-operations.ts create mode 100644 mobile/src/files/mobile-file-preview-operations.ts create mode 100644 mobile/src/files/mobile-file-tab-doc-operations.ts create mode 100644 mobile/src/home/mobile-home-host-operations.ts create mode 100644 mobile/src/host-screen/host-screen-operations.ts create mode 100644 mobile/src/test-support/rpc-recording/adapters/file-request-mount-adapters.ts create mode 100644 mobile/src/test-support/rpc-recording/adapters/host-screen-mount-adapters.ts create mode 100644 mobile/src/test-support/rpc-recording/adapters/host-worktree-action-mount-adapters.ts create mode 100644 mobile/src/test-support/rpc-recording/adapters/new-workspace-mount-adapters.ts create mode 100644 mobile/src/test-support/rpc-recording/adapters/worktree-catalog-mount-adapters.ts create mode 100644 mobile/src/transport/rpc-accepted-result.ts create mode 100644 mobile/src/worktree/worktree-catalog-operations.ts diff --git a/mobile/rpc-foundation/goldens/components-codex-capability.json b/mobile/rpc-foundation/goldens/components-codex-capability.json new file mode 100644 index 00000000000..90c6e92139a --- /dev/null +++ b/mobile/rpc-foundation/goldens/components-codex-capability.json @@ -0,0 +1,80 @@ +{ + "operation": "components.codex-reset-capability", + "family": "components.codex-reset-capability", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", + "scenarioSha256": "88570b9d2376863c7f88d7ed8c745a5fb771deddbc7409f8944fa861dd4bdce9", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "1e5b32902af7": { + "name": "status.get#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"status.get\"}" + }, + "578b9d38ecc7": { + "supported": true + }, + "6a0093a8288b": { + "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": ["accounts.codex-reset-credit.v1"] + } + } + } + }, + "84e5ca07cb7a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": true + } + }, + "recording": { + "scenario": "components-codex-capability", + "checkpoints": [ + { + "id": "settled", + "observation": { + "sender": ["6a0093a8288b"], + "payloads": ["1e5b32902af7"], + "settlements": { + "probe": "84e5ca07cb7a" + }, + "state": "578b9d38ecc7", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/components-setup-ask.json b/mobile/rpc-foundation/goldens/components-setup-ask.json new file mode 100644 index 00000000000..894be173ac0 --- /dev/null +++ b/mobile/rpc-foundation/goldens/components-setup-ask.json @@ -0,0 +1,149 @@ +{ + "operation": "components.setup-script", + "family": "components.setup-script", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", + "scenarioSha256": "d4052f119c7ed68dc922c8beeb0074701f1532b10e48e284fb71aa165a17e437", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "28e75475e9e0": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "3515a8adcd6d": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "hooks": { + "scripts": { + "setup": "pnpm install" + } + }, + "setupRunPolicy": "ask", + "setupTrust": { + "$rpc": "null" + }, + "source": "repo" + } + } + } + }, + "5d1cf72f4e12": { + "advanced": true, + "command": "pnpm install", + "run": true, + "runPolicy": "ask", + "source": "repo", + "trust": { + "$rpc": "null" + } + }, + "80cf8444e458": { + "advanced": false, + "command": { + "$rpc": "null" + }, + "run": true, + "runPolicy": "run-by-default", + "source": { + "$rpc": "null" + }, + "trust": { + "$rpc": "null" + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "f5dc0ce1e7b8": { + "name": "repo.hooks#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.hooks\",\"params\":{\"repo\":\"id:repo-1\"}}" + } + }, + "recording": { + "scenario": "components-setup-ask", + "checkpoints": [ + { + "id": "hooks-pending", + "observation": { + "sender": ["28e75475e9e0"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "80cf8444e458", + "effects": [] + } + }, + { + "id": "settled", + "observation": { + "sender": ["3515a8adcd6d"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "5d1cf72f4e12", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/components-target-local.json b/mobile/rpc-foundation/goldens/components-target-local.json new file mode 100644 index 00000000000..027ee3ffda7 --- /dev/null +++ b/mobile/rpc-foundation/goldens/components-target-local.json @@ -0,0 +1,142 @@ +{ + "operation": "components.execution-target-local", + "family": "components.execution-target-local", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", + "scenarioSha256": "2e0d3021621698b63117e250dd5e9762b5bfb3dc1911e27c510e9539bd2ee6c9", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "1e4520fe6576": { + "detected": { + "$rpc": "null" + }, + "gate": { + "connectInProgress": true, + "error": { + "$rpc": "null" + }, + "requiresConnection": false, + "status": { + "$rpc": "null" + } + } + }, + "3579737ce1a6": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "name": "params", + "value": { + "$rpc": "absent" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "6806cee7c59f": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "name": "params", + "value": { + "$rpc": "absent" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": ["claude"] + } + } + }, + "986a776213e8": { + "detected": ["claude"], + "gate": { + "connectInProgress": true, + "error": { + "$rpc": "null" + }, + "requiresConnection": false, + "status": { + "$rpc": "null" + } + } + }, + "cf32edc950ac": { + "name": "preflight.detectAgents#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectAgents\"}" + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "components-target-local", + "checkpoints": [ + { + "id": "detect-pending", + "observation": { + "sender": ["3579737ce1a6"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "1e4520fe6576", + "effects": [] + } + }, + { + "id": "settled", + "observation": { + "sender": ["6806cee7c59f"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "986a776213e8", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/components-target-ssh.json b/mobile/rpc-foundation/goldens/components-target-ssh.json new file mode 100644 index 00000000000..41d28f2d1b9 --- /dev/null +++ b/mobile/rpc-foundation/goldens/components-target-ssh.json @@ -0,0 +1,258 @@ +{ + "operation": "components.execution-target", + "family": "components.execution-target", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", + "scenarioSha256": "82b891c7a7a2f255e2d22a372ee6112c9cc1f650259244e87f2e8c1356e97e5f", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0a7094a9a9ac": { + "name": "preflight.detectRemoteAgents#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectRemoteAgents\",\"params\":{\"connectionId\":\"ssh-1\"}}" + }, + "4e2e9a890ced": { + "detected": ["codex"], + "gate": { + "connectInProgress": false, + "error": { + "$rpc": "null" + }, + "requiresConnection": false, + "status": "connected" + } + }, + "57095302d8c1": { + "name": "ssh.connect#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.connect\",\"params\":{\"targetId\":\"ssh-1\"}}" + }, + "6004e75ef39e": { + "name": "preflight.detectRemoteAgents#2", + "args": [ + { + "name": "method", + "value": "preflight.detectRemoteAgents" + }, + { + "name": "params", + "value": { + "connectionId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "66a99391260b": { + "name": "preflight.detectRemoteAgents#2", + "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectRemoteAgents\",\"params\":{\"connectionId\":\"ssh-1\"}}" + }, + "81c9c204b647": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "state": { + "error": { + "$rpc": "null" + }, + "reconnectAttempt": 0, + "status": "connected", + "targetId": "ssh-1" + } + } + } + } + }, + "89aa7a3bd619": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "state": { + "error": { + "$rpc": "null" + }, + "reconnectAttempt": 0, + "status": "connected", + "targetId": "ssh-1" + } + } + } + } + }, + "9a892112da5b": { + "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-2", + "ok": true, + "result": ["codex"] + } + } + }, + "ca123825be51": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "d23b91bd7660": { + "detected": { + "$rpc": "null" + }, + "gate": { + "connectInProgress": false, + "error": { + "$rpc": "null" + }, + "requiresConnection": true, + "status": { + "$rpc": "null" + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "f9dfbe0c0ea7": { + "name": "ssh.getState#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.getState\",\"params\":{\"targetId\":\"ssh-1\"}}" + } + }, + "recording": { + "scenario": "components-target-ssh", + "checkpoints": [ + { + "id": "state-pending", + "observation": { + "sender": ["ca123825be51"], + "payloads": ["f9dfbe0c0ea7"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "d23b91bd7660", + "effects": [] + } + }, + { + "id": "settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "4e2e9a890ced", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/files-ownership-local.json b/mobile/rpc-foundation/goldens/files-ownership-local.json new file mode 100644 index 00000000000..816031ef32b --- /dev/null +++ b/mobile/rpc-foundation/goldens/files-ownership-local.json @@ -0,0 +1,123 @@ +{ + "operation": "files.mutation-ownership", + "family": "files.mutation-ownership", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "8d24f52eb4194c3bc5d9f0dcabade6d7a09c066f79f911657647ed21dbecb3b1", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "1e5b32902af7": { + "name": "status.get#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"status.get\"}" + }, + "548f05412e41": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "expectedExecutionHostId": "local" + } + }, + "8bdc2aec524d": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "worktree": { + "hostId": "local" + } + } + } + } + }, + "9199aee60486": { + "name": "worktree.show#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.show\",\"params\":{\"worktree\":\"id:workspace-1\"}}" + }, + "a56852d6836b": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "capabilities": ["files.mutation-ownership.v1"] + } + } + } + }, + "bab8756fa040": { + "ownership": { + "expectedExecutionHostId": "local" + } + } + }, + "recording": { + "scenario": "files-ownership-local", + "checkpoints": [ + { + "id": "settled", + "observation": { + "sender": ["a56852d6836b", "8bdc2aec524d"], + "payloads": ["1e5b32902af7", "9199aee60486"], + "settlements": { + "capture": "548f05412e41" + }, + "state": "bab8756fa040", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/files-ownership-ssh.json b/mobile/rpc-foundation/goldens/files-ownership-ssh.json new file mode 100644 index 00000000000..aa295d7d618 --- /dev/null +++ b/mobile/rpc-foundation/goldens/files-ownership-ssh.json @@ -0,0 +1,216 @@ +{ + "operation": "files.mutation-ownership", + "family": "files.mutation-ownership", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "4cd0be3a1c338b4b68211c717fd10738653c553fdb3b072db6706ff8175a8bd1", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "1e5b32902af7": { + "name": "status.get#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"status.get\"}" + }, + "29bfbe94cca9": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "expectedExecutionHostId": "ssh:target-1", + "expectedSshConnectionGeneration": 3, + "expectedSshTargetId": "target-1" + } + }, + "518ec57c381a": { + "ownership": "uncaptured" + }, + "6116946241ca": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "state": { + "connectionGeneration": 3, + "error": { + "$rpc": "null" + }, + "reconnectAttempt": 0, + "status": "connected", + "targetId": "target-1" + } + } + } + } + }, + "6ef43f81f7e3": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "worktree": { + "hostId": "ssh:target-1" + } + } + } + } + }, + "9199aee60486": { + "name": "worktree.show#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.show\",\"params\":{\"worktree\":\"id:workspace-1\"}}" + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "a0341e6a5d84": { + "name": "ssh.getState#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.getState\",\"params\":{\"targetId\":\"target-1\"}}" + }, + "a56852d6836b": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "capabilities": ["files.mutation-ownership.v1"] + } + } + } + }, + "bc119660f0c1": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "bd84dadd27c7": { + "ownership": { + "expectedExecutionHostId": "ssh:target-1", + "expectedSshConnectionGeneration": 3, + "expectedSshTargetId": "target-1" + } + } + }, + "recording": { + "scenario": "files-ownership-ssh", + "checkpoints": [ + { + "id": "status-pending", + "observation": { + "sender": ["bc119660f0c1"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "9270aeb7d9c6" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "6116946241ca"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "29bfbe94cca9" + }, + "state": "bd84dadd27c7", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/files-preview-artifact-direct.json b/mobile/rpc-foundation/goldens/files-preview-artifact-direct.json new file mode 100644 index 00000000000..c48ebdc256b --- /dev/null +++ b/mobile/rpc-foundation/goldens/files-preview-artifact-direct.json @@ -0,0 +1,96 @@ +{ + "operation": "files.preview-load", + "family": "files.preview-load", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "dd8b7a0916a84c7d763a163759c02210ae99f8fbccfccaa98796b8610c5da97c", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "194fabd9b9d8": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "byteLength": 5, + "content": "hello", + "truncated": false + } + } + } + }, + "500d95d47092": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "byteLength": 5, + "content": "hello", + "kind": "text", + "status": "ready", + "truncated": false + } + }, + "784ea351e5b2": { + "preview": { + "byteLength": 5, + "content": "hello", + "kind": "text", + "status": "ready", + "truncated": false + } + }, + "e0401d205ea2": { + "name": "files.readTerminalArtifact#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.readTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-1\"}}" + } + }, + "recording": { + "scenario": "files-preview-artifact-direct", + "checkpoints": [ + { + "id": "settled", + "observation": { + "sender": ["194fabd9b9d8"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "500d95d47092" + }, + "state": "784ea351e5b2", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/files-preview-artifact-image.json b/mobile/rpc-foundation/goldens/files-preview-artifact-image.json new file mode 100644 index 00000000000..6cd8c6f0f61 --- /dev/null +++ b/mobile/rpc-foundation/goldens/files-preview-artifact-image.json @@ -0,0 +1,93 @@ +{ + "operation": "files.preview-load", + "family": "files.preview-load", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "d15c1f4e0f95b5c49a8f889d2d37458225293d7306c8439690d972d2df4c29c0", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "25b0318e985e": { + "name": "files.readTerminalArtifactPreview#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifactPreview" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/shot.png", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "content": "aGk=", + "isBinary": true, + "isImage": true, + "mimeType": "image/png" + } + } + } + }, + "4a07826edb3b": { + "name": "files.readTerminalArtifactPreview#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.readTerminalArtifactPreview\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/shot.png\",\"grantId\":\"grant-1\"}}" + }, + "7659b8b575da": { + "preview": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + } + }, + "eee847a9d90d": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + } + } + }, + "recording": { + "scenario": "files-preview-artifact-image", + "checkpoints": [ + { + "id": "settled", + "observation": { + "sender": ["25b0318e985e"], + "payloads": ["4a07826edb3b"], + "settlements": { + "load": "eee847a9d90d" + }, + "state": "7659b8b575da", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/files-preview-grant-refresh.json b/mobile/rpc-foundation/goldens/files-preview-grant-refresh.json new file mode 100644 index 00000000000..5fd8b8d4c59 --- /dev/null +++ b/mobile/rpc-foundation/goldens/files-preview-grant-refresh.json @@ -0,0 +1,240 @@ +{ + "operation": "files.preview-load", + "family": "files.preview-load", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "055f3b45442c1736f10ee98c493e2ece1885fdb68d925ee627e2ba20853537e0", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "25b0d1737c71": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "terminal_file_grant_expired", + "message": "Grant expired" + }, + "id": "frame-1", + "ok": false + } + } + }, + "3c5492779d85": { + "name": "files.resolveTerminalPath#1", + "args": [ + { + "name": "method", + "value": "files.resolveTerminalPath" + }, + { + "name": "params", + "value": { + "cwd": "/logs", + "pathText": "run.txt", + "terminal": "terminal-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "exists": true, + "isDirectory": false, + "openTarget": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "kind": "absolute-file" + } + } + } + } + }, + "500d95d47092": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "byteLength": 5, + "content": "hello", + "kind": "text", + "status": "ready", + "truncated": false + } + }, + "5f446c109a9a": { + "name": "files.readTerminalArtifact#2", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "byteLength": 5, + "content": "hello", + "truncated": false + } + } + } + }, + "645c5754be42": { + "preview": "unloaded" + }, + "784ea351e5b2": { + "preview": { + "byteLength": 5, + "content": "hello", + "kind": "text", + "status": "ready", + "truncated": false + } + }, + "813fe48569a6": { + "name": "artifact-source-refreshed", + "value": { + "absolutePath": "/logs/run.txt", + "cwd": "/logs", + "grantId": "grant-2", + "pathText": "run.txt", + "source": "terminalArtifact", + "terminalHandle": "terminal-1", + "worktreeId": "workspace-1" + } + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "9a56ffbdd5bf": { + "name": "files.resolveTerminalPath#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.resolveTerminalPath\",\"params\":{\"worktree\":\"id:workspace-1\",\"pathText\":\"run.txt\",\"cwd\":\"/logs\",\"terminal\":\"terminal-1\"}}" + }, + "c283e01480f7": { + "name": "files.readTerminalArtifact#2", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"files.readTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-2\"}}" + }, + "e0401d205ea2": { + "name": "files.readTerminalArtifact#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.readTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-1\"}}" + }, + "e81d5596c201": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + } + }, + "recording": { + "scenario": "files-preview-grant-refresh", + "checkpoints": [ + { + "id": "read-pending", + "observation": { + "sender": ["e81d5596c201"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "9270aeb7d9c6" + }, + "state": "645c5754be42", + "effects": [] + } + }, + { + "id": "settled", + "observation": { + "sender": ["25b0d1737c71", "3c5492779d85", "5f446c109a9a"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf", "c283e01480f7"], + "settlements": { + "load": "500d95d47092" + }, + "state": "784ea351e5b2", + "effects": ["813fe48569a6"] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/files-preview-worktree-image.json b/mobile/rpc-foundation/goldens/files-preview-worktree-image.json new file mode 100644 index 00000000000..bb44448008f --- /dev/null +++ b/mobile/rpc-foundation/goldens/files-preview-worktree-image.json @@ -0,0 +1,92 @@ +{ + "operation": "files.preview-load", + "family": "files.preview-load", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "0ffaffb472b663e08a42317d799a2a000211dda5b127fb21cc64f04f73800130", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "3acec737cb08": { + "name": "files.readPreview#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.readPreview\",\"params\":{\"worktree\":\"id:workspace-1\",\"relativePath\":\"docs/logo.png\"}}" + }, + "7659b8b575da": { + "preview": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + } + }, + "eee847a9d90d": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + } + }, + "f6564bdb4e19": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "content": "aGk=", + "isBinary": true, + "isImage": true, + "mimeType": "image/png" + } + } + } + } + }, + "recording": { + "scenario": "files-preview-worktree-image", + "checkpoints": [ + { + "id": "settled", + "observation": { + "sender": ["f6564bdb4e19"], + "payloads": ["3acec737cb08"], + "settlements": { + "load": "eee847a9d90d" + }, + "state": "7659b8b575da", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/files-preview-worktree.json b/mobile/rpc-foundation/goldens/files-preview-worktree.json new file mode 100644 index 00000000000..b1a1ed527b1 --- /dev/null +++ b/mobile/rpc-foundation/goldens/files-preview-worktree.json @@ -0,0 +1,95 @@ +{ + "operation": "files.preview-load", + "family": "files.preview-load", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "bcba4a7d9d929078c5ed80fc7e1acd45859d0b4c559767a919b0396dc6a70a3e", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "02ea3f503180": { + "name": "files.read#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.read\",\"params\":{\"worktree\":\"id:workspace-1\",\"relativePath\":\"docs/readme.md\"}}" + }, + "3f8bf3069e3d": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "byteLength": 8, + "content": "# readme", + "kind": "markdown", + "status": "ready", + "truncated": false + } + }, + "47ef2e397e18": { + "preview": { + "byteLength": 8, + "content": "# readme", + "kind": "markdown", + "status": "ready", + "truncated": false + } + }, + "9babe9503a83": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "byteLength": 8, + "content": "# readme", + "truncated": false + } + } + } + } + }, + "recording": { + "scenario": "files-preview-worktree", + "checkpoints": [ + { + "id": "settled", + "observation": { + "sender": ["9babe9503a83"], + "payloads": ["02ea3f503180"], + "settlements": { + "load": "3f8bf3069e3d" + }, + "state": "47ef2e397e18", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/files-save-blind.json b/mobile/rpc-foundation/goldens/files-save-blind.json new file mode 100644 index 00000000000..2603c576c0b --- /dev/null +++ b/mobile/rpc-foundation/goldens/files-save-blind.json @@ -0,0 +1,87 @@ +{ + "operation": "files.preview-save", + "family": "files.preview-save", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "8b5c3e87d989966d7b252f19a537040cd5078ba9355a824e7e49af3424390a3e", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "39c6d10eb5a5": { + "name": "files.writeTerminalArtifact#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.writeTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-1\",\"content\":\"next\"}}" + }, + "54a6055a16b5": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "status": "saved" + } + }, + "936b6553a1e7": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "b3f873eb7d0c": { + "saved": { + "status": "saved" + } + } + }, + "recording": { + "scenario": "files-save-blind", + "checkpoints": [ + { + "id": "settled", + "observation": { + "sender": ["936b6553a1e7"], + "payloads": ["39c6d10eb5a5"], + "settlements": { + "save": "54a6055a16b5" + }, + "state": "b3f873eb7d0c", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/files-save-verified.json b/mobile/rpc-foundation/goldens/files-save-verified.json new file mode 100644 index 00000000000..eb50e796ccd --- /dev/null +++ b/mobile/rpc-foundation/goldens/files-save-verified.json @@ -0,0 +1,174 @@ +{ + "operation": "files.preview-save", + "family": "files.preview-save", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "6e124d16173074d851d58593b20b25889ed13a3d8021c08fbed53b85a7d3196e", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "54a6055a16b5": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "status": "saved" + } + }, + "7875007ef392": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "935100df69e4": { + "saved": "unsaved" + }, + "a3886e3a9791": { + "name": "files.writeTerminalArtifact#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.writeTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-1\",\"content\":\"next\"}}" + }, + "b3f873eb7d0c": { + "saved": { + "status": "saved" + } + }, + "e0401d205ea2": { + "name": "files.readTerminalArtifact#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.readTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-1\"}}" + }, + "e391aec81b96": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "byteLength": 4, + "content": "base", + "truncated": false + } + } + } + }, + "e81d5596c201": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + } + }, + "recording": { + "scenario": "files-save-verified", + "checkpoints": [ + { + "id": "verify-pending", + "observation": { + "sender": ["e81d5596c201"], + "payloads": ["e0401d205ea2"], + "settlements": { + "save": "9270aeb7d9c6" + }, + "state": "935100df69e4", + "effects": [] + } + }, + { + "id": "settled", + "observation": { + "sender": ["e391aec81b96", "7875007ef392"], + "payloads": ["e0401d205ea2", "a3886e3a9791"], + "settlements": { + "save": "54a6055a16b5" + }, + "state": "b3f873eb7d0c", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/files-tab-doc-shapes.json b/mobile/rpc-foundation/goldens/files-tab-doc-shapes.json new file mode 100644 index 00000000000..17f51495f0b --- /dev/null +++ b/mobile/rpc-foundation/goldens/files-tab-doc-shapes.json @@ -0,0 +1,232 @@ +{ + "operation": "files.tab-doc", + "family": "files.tab-doc", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "b636221f719dae19a3af6772b687b0bcb300c9910645d23e98c309578ec1c5c5", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "02ea3f503180": { + "name": "files.read#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.read\",\"params\":{\"worktree\":\"id:workspace-1\",\"relativePath\":\"docs/readme.md\"}}" + }, + "323bf6059754": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "content": "aGk=", + "isImage": true, + "mimeType": "image/png" + } + } + } + }, + "5c610ebe58ed": { + "name": "files.readPreview#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.readPreview\",\"params\":{\"worktree\":\"id:workspace-1\",\"relativePath\":\"docs/logo.png\"}}" + }, + "9babe9503a83": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "byteLength": 8, + "content": "# readme", + "truncated": false + } + } + } + }, + "b5c68b76c498": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "byteLength": 8, + "content": "# readme", + "kind": "file", + "status": "ready", + "truncated": false + } + }, + "c8fbe8972330": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "kind": "text", + "modifiedContent": "b\n", + "originalContent": "a\n" + } + } + } + }, + "ed33ecdb4e8e": { + "diff": { + "kind": "diff", + "lines": [ + { + "kind": "delete", + "oldLineNumber": 1, + "text": "a" + }, + { + "kind": "add", + "newLineNumber": 1, + "text": "b" + } + ], + "status": "ready", + "truncated": false + }, + "image": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + }, + "text": { + "byteLength": 8, + "content": "# readme", + "kind": "file", + "status": "ready", + "truncated": false + } + }, + "eee847a9d90d": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + } + }, + "fad4ca11a316": { + "name": "git.diff#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"git.diff\",\"params\":{\"worktree\":\"id:workspace-1\",\"filePath\":\"docs/readme.md\",\"staged\":true}}" + }, + "ffe1c534d459": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "kind": "diff", + "lines": [ + { + "kind": "delete", + "oldLineNumber": 1, + "text": "a" + }, + { + "kind": "add", + "newLineNumber": 1, + "text": "b" + } + ], + "status": "ready", + "truncated": false + } + } + }, + "recording": { + "scenario": "files-tab-doc-shapes", + "checkpoints": [ + { + "id": "settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "ed33ecdb4e8e", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/home-host-stats.json b/mobile/rpc-foundation/goldens/home-host-stats.json new file mode 100644 index 00000000000..4d240c0b665 --- /dev/null +++ b/mobile/rpc-foundation/goldens/home-host-stats.json @@ -0,0 +1,133 @@ +{ + "operation": "home.host-stats", + "family": "home.host-stats", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b", + "scenarioSha256": "bd5f4e5f24a29d96c4c98950691c6571918332f71ebb1f29ee97a9abc857ac29", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0632d58191fb": { + "name": "stats", + "value": { + "host-1": { + "activeWorktrees": 1, + "totalWorktrees": 3 + } + } + }, + "0ebcc6f6a4cb": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "activeWorktrees": 1, + "totalWorktrees": 3 + } + } + } + }, + "44136fa355b3": {}, + "7bf81b1e94c5": { + "name": "stats.summary#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"stats.summary\"}" + }, + "9a84a7559023": { + "host-1": { + "activeWorktrees": 1, + "totalWorktrees": 3 + } + }, + "a392ac528c2b": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "home-host-stats", + "checkpoints": [ + { + "id": "stats-pending", + "observation": { + "sender": ["a392ac528c2b"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "44136fa355b3", + "effects": [] + } + }, + { + "id": "settled", + "observation": { + "sender": ["0ebcc6f6a4cb"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "9a84a7559023", + "effects": ["0632d58191fb"] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/host-view-settings-sync.json b/mobile/rpc-foundation/goldens/host-view-settings-sync.json new file mode 100644 index 00000000000..6529922751e --- /dev/null +++ b/mobile/rpc-foundation/goldens/host-view-settings-sync.json @@ -0,0 +1,224 @@ +{ + "operation": "host.view-settings", + "family": "host.view-settings", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b", + "scenarioSha256": "1ee6031227fa3efd5b36841afa60f7b2264eacdd9c6126e5851d5acb39ffaadd", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "292b632037a0": { + "name": "ui.set#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"ui.set\",\"params\":{\"sortBy\":\"name\"}}" + }, + "3059ce80d86a": { + "name": "collapsedGroups", + "value": [] + }, + "34925f64c9a6": { + "name": "sortMode", + "value": "name" + }, + "5907841fc56d": { + "name": "ui.get#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"ui.get\"}" + }, + "5fbdd64c75bc": { + "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 + } + }, + "78f2fbcd0185": { + "name": "ui.set#1", + "args": [ + { + "name": "method", + "value": "ui.set" + }, + { + "name": "params", + "value": { + "sortBy": "name" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "7eaddd04bcdd": { + "name": "workspaceStatuses", + "value": [] + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "9527461faeb1": { + "name": "filters", + "value": { + "alwaysShowDefaultBranch": true, + "filterRepoIds": [], + "hideDefaultBranch": false, + "hideSleeping": true + } + }, + "a424515cabc9": { + "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-1", + "ok": true, + "result": { + "ui": { + "groupBy": "repo", + "hideSleepingWorkspaces": true, + "sortBy": "name" + } + } + } + } + }, + "ba2035345a68": { + "collapsed": [], + "filters": { + "alwaysShowDefaultBranch": true, + "filterRepoIds": [], + "hideDefaultBranch": false, + "hideSleeping": true + }, + "groupMode": "repo", + "sortMode": "name", + "statuses": [] + }, + "bbdab1a7d122": { + "collapsed": [], + "filters": { + "alwaysShowDefaultBranch": true, + "filterRepoIds": [], + "hideDefaultBranch": false, + "hideSleeping": false + }, + "groupMode": "none", + "sortMode": "recent", + "statuses": [] + }, + "e9a3acf203c6": { + "name": "groupMode", + "value": "repo" + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "host-view-settings-sync", + "checkpoints": [ + { + "id": "ui-pending", + "observation": { + "sender": ["5fbdd64c75bc"], + "payloads": ["5907841fc56d"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "9270aeb7d9c6" + }, + "state": "bbdab1a7d122", + "effects": [] + } + }, + { + "id": "settled", + "observation": { + "sender": ["a424515cabc9", "78f2fbcd0185"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "ba2035345a68", + "effects": [ + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1", + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1" + ] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/host-worktree-actions-pin-open-delete.json b/mobile/rpc-foundation/goldens/host-worktree-actions-pin-open-delete.json new file mode 100644 index 00000000000..4faef7d28c0 --- /dev/null +++ b/mobile/rpc-foundation/goldens/host-worktree-actions-pin-open-delete.json @@ -0,0 +1,368 @@ +{ + "operation": "host.worktree-actions", + "family": "host.worktree-actions", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639", + "scenarioSha256": "720add498c79425ca8efc9764fd5d8307fe33bc891842604cfc899f770b79811", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "04938673cbf5": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "0ebfc1859f18": { + "name": "pinnedIds", + "value": ["wt-1"] + }, + "2b635c2a4fbb": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "4caf7515e224": { + "name": "worktree.set#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.set\",\"params\":{\"worktree\":\"id:wt-1\",\"isPinned\":true}}" + }, + "56b6d4fb8c56": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "5c186d67b84c": { + "name": "lastKnownWorktrees", + "value": [] + }, + "69d698d4f352": { + "name": "worktree.rm#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.rm\",\"params\":{\"worktree\":\"id:wt-1\",\"force\":true}}" + }, + "6cfdae6737f2": { + "name": "lastKnownWorktrees", + "value": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "6e959a9dd70e": { + "confirmRemoveHost": false, + "lastKnownWorktrees": [], + "optimisticActiveWorktreeIdentity": "|wt-1", + "pinnedIds": ["wt-1"], + "routeActionState": {}, + "worktrees": [] + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "9a9b0d6699b2": { + "confirmRemoveHost": false, + "lastKnownWorktrees": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ], + "optimisticActiveWorktreeIdentity": { + "$rpc": "null" + }, + "pinnedIds": ["wt-1"], + "routeActionState": {}, + "worktrees": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "b1509905fc66": { + "name": "optimisticActiveWorktreeIdentity", + "value": "|wt-1" + }, + "bf2b36bda2d2": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "c3eecb0c6e96": { + "name": "worktree.activate#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.activate\",\"params\":{\"worktree\":\"id:wt-1\",\"notifyClients\":false,\"navigation\":\"caller\"}}" + }, + "cbf8280fdbe7": { + "name": "worktrees", + "value": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "d440bd87d1ce": { + "name": "worktrees", + "value": [] + }, + "e3e3c397a66a": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "host-worktree-actions-pin-open-delete", + "checkpoints": [ + { + "id": "pin-optimistic", + "observation": { + "sender": ["bf2b36bda2d2"], + "payloads": ["4caf7515e224"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a" + }, + "state": "9a9b0d6699b2", + "effects": ["cbf8280fdbe7", "6cfdae6737f2", "0ebfc1859f18"] + } + }, + { + "id": "delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/host-worktree-delete-refused.json b/mobile/rpc-foundation/goldens/host-worktree-delete-refused.json new file mode 100644 index 00000000000..a5267cbcdf0 --- /dev/null +++ b/mobile/rpc-foundation/goldens/host-worktree-delete-refused.json @@ -0,0 +1,229 @@ +{ + "operation": "host.worktree-actions", + "family": "host.worktree-actions", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639", + "scenarioSha256": "5dd5e7eabaabba1e471b13958f59891c3b28f553087c96315598c83a14ded7e7", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "3fd02e693647": { + "name": "worktree.rm#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.rm\",\"params\":{\"worktree\":\"id:wt-1\",\"force\":true}}" + }, + "5c186d67b84c": { + "name": "lastKnownWorktrees", + "value": [] + }, + "8056533b940f": { + "confirmRemoveHost": false, + "lastKnownWorktrees": [], + "optimisticActiveWorktreeIdentity": { + "$rpc": "null" + }, + "pinnedIds": [], + "routeActionState": {}, + "worktrees": [] + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "a7c564546e94": { + "name": "worktrees", + "value": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": false, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "bcb66b345fcd": { + "confirmRemoveHost": false, + "lastKnownWorktrees": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": false, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ], + "optimisticActiveWorktreeIdentity": { + "$rpc": "null" + }, + "pinnedIds": [], + "routeActionState": {}, + "worktrees": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": false, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "c777b17081dd": { + "name": "lastKnownWorktrees", + "value": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": false, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "d440bd87d1ce": { + "name": "worktrees", + "value": [] + }, + "e3e3c397a66a": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "e97d1f006b72": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "worktree_busy", + "message": "Worktree is busy" + }, + "id": "frame-1", + "ok": false + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "host-worktree-delete-refused", + "checkpoints": [ + { + "id": "delete-optimistic", + "observation": { + "sender": ["e3e3c397a66a"], + "payloads": ["3fd02e693647"], + "settlements": { + "mount": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "8056533b940f", + "effects": ["d440bd87d1ce", "5c186d67b84c"] + } + }, + { + "id": "restored", + "observation": { + "sender": ["e97d1f006b72"], + "payloads": ["3fd02e693647"], + "settlements": { + "mount": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "bcb66b345fcd", + "effects": ["d440bd87d1ce", "5c186d67b84c", "a7c564546e94", "c777b17081dd"] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-components.codex-reset-capability-status.get-1.json b/mobile/rpc-foundation/goldens/matrix-components.codex-reset-capability-status.get-1.json new file mode 100644 index 00000000000..321a61e6b23 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-components.codex-reset-capability-status.get-1.json @@ -0,0 +1,539 @@ +{ + "operation": "components.codex-reset-capability", + "family": "components.codex-reset-capability", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", + "scenarioSha256": "06c2ad6d4b464f889a640be7a238f6d0ff7c54b0e93fb5ea22aaa856dadb0336", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "16cd464bf664": { + "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": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "1e5b32902af7": { + "name": "status.get#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"status.get\"}" + }, + "2698c9770ad3": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "absent" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "4451bb95a76e": { + "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": { + "error": "refused" + } + } + } + }, + "578b9d38ecc7": { + "supported": true + }, + "6a0093a8288b": { + "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": ["accounts.codex-reset-credit.v1"] + } + } + } + }, + "7d3dd7f9381b": { + "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 + } + } + }, + "7ed3d39f0607": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": false + }, + "84e5ca07cb7a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": true + }, + "88200d49083c": { + "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": { + "$rpc": "null" + } + } + } + }, + "89236e432861": { + "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": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "944bf432f199": { + "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": { + "error": "inner refused", + "ok": false + } + } + } + }, + "9cdf3c107e7b": { + "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": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "c71b2f8a6993": { + "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": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-1", + "ok": false + } + } + }, + "de87f6266897": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.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 + } + } + }, + "ece4ea3ed179": { + "supported": false + } + }, + "recording": { + "scenario": "matrix-components.codex-reset-capability-status.get-1", + "checkpoints": [ + { + "id": "components-codex-capability.normal:settled", + "observation": { + "sender": ["6a0093a8288b"], + "payloads": ["1e5b32902af7"], + "settlements": { + "probe": "84e5ca07cb7a" + }, + "state": "578b9d38ecc7", + "effects": [] + } + }, + { + "id": "components-codex-capability.result-absent:settled", + "observation": { + "sender": ["7d3dd7f9381b"], + "payloads": ["1e5b32902af7"], + "settlements": { + "probe": "7ed3d39f0607" + }, + "state": "ece4ea3ed179", + "effects": [] + } + }, + { + "id": "components-codex-capability.result-null:settled", + "observation": { + "sender": ["88200d49083c"], + "payloads": ["1e5b32902af7"], + "settlements": { + "probe": "7ed3d39f0607" + }, + "state": "ece4ea3ed179", + "effects": [] + } + }, + { + "id": "components-codex-capability.inner-ok-missing:settled", + "observation": { + "sender": ["4451bb95a76e"], + "payloads": ["1e5b32902af7"], + "settlements": { + "probe": "7ed3d39f0607" + }, + "state": "ece4ea3ed179", + "effects": [] + } + }, + { + "id": "components-codex-capability.inner-false-string-error:settled", + "observation": { + "sender": ["944bf432f199"], + "payloads": ["1e5b32902af7"], + "settlements": { + "probe": "7ed3d39f0607" + }, + "state": "ece4ea3ed179", + "effects": [] + } + }, + { + "id": "components-codex-capability.inner-false-object-error:settled", + "observation": { + "sender": ["89236e432861"], + "payloads": ["1e5b32902af7"], + "settlements": { + "probe": "7ed3d39f0607" + }, + "state": "ece4ea3ed179", + "effects": [] + } + }, + { + "id": "components-codex-capability.outer-refused:settled", + "observation": { + "sender": ["16cd464bf664"], + "payloads": ["1e5b32902af7"], + "settlements": { + "probe": "7ed3d39f0607" + }, + "state": "ece4ea3ed179", + "effects": [] + } + }, + { + "id": "components-codex-capability.outer-refused-no-message:settled", + "observation": { + "sender": ["9cdf3c107e7b"], + "payloads": ["1e5b32902af7"], + "settlements": { + "probe": "7ed3d39f0607" + }, + "state": "ece4ea3ed179", + "effects": [] + } + }, + { + "id": "components-codex-capability.method-not-found:settled", + "observation": { + "sender": ["c71b2f8a6993"], + "payloads": ["1e5b32902af7"], + "settlements": { + "probe": "7ed3d39f0607" + }, + "state": "ece4ea3ed179", + "effects": [] + } + }, + { + "id": "components-codex-capability.transport-rejection:settled", + "observation": { + "sender": ["de87f6266897"], + "payloads": ["1e5b32902af7"], + "settlements": { + "probe": "7ed3d39f0607" + }, + "state": "ece4ea3ed179", + "effects": [] + } + }, + { + "id": "components-codex-capability.transport-rejection-no-message:settled", + "observation": { + "sender": ["2698c9770ad3"], + "payloads": ["1e5b32902af7"], + "settlements": { + "probe": "7ed3d39f0607" + }, + "state": "ece4ea3ed179", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-components.execution-target-local-preflight.detectagents-1.json b/mobile/rpc-foundation/goldens/matrix-components.execution-target-local-preflight.detectagents-1.json new file mode 100644 index 00000000000..bd210517b12 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-components.execution-target-local-preflight.detectagents-1.json @@ -0,0 +1,605 @@ +{ + "operation": "components.execution-target-local", + "family": "components.execution-target-local", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", + "scenarioSha256": "f88ee2f5d19b19cc53dca5180a9b5936a13a00a82e8a4636a5e895262b669dec", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "00d70c40c34c": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "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 + } + } + } + }, + "0846bea730cf": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "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 + } + } + } + }, + "1317fc33bdbe": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "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" + } + } + } + }, + "163b91b6fe9c": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "name": "params", + "value": { + "$rpc": "absent" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "1e4520fe6576": { + "detected": { + "$rpc": "null" + }, + "gate": { + "connectInProgress": true, + "error": { + "$rpc": "null" + }, + "requiresConnection": false, + "status": { + "$rpc": "null" + } + } + }, + "327b46fb8bef": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "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" + } + } + } + }, + "3579737ce1a6": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "name": "params", + "value": { + "$rpc": "absent" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "365a6864b043": { + "detected": [], + "gate": { + "connectInProgress": true, + "error": { + "$rpc": "null" + }, + "requiresConnection": false, + "status": { + "$rpc": "null" + } + } + }, + "6806cee7c59f": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "name": "params", + "value": { + "$rpc": "absent" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": ["claude"] + } + } + }, + "6e5fcf24648d": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "name": "params", + "value": { + "$rpc": "absent" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true + } + } + }, + "70d128c20ae4": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "name": "params", + "value": { + "$rpc": "absent" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "87d7d24a30d2": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "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 + } + } + }, + "986a776213e8": { + "detected": ["claude"], + "gate": { + "connectInProgress": true, + "error": { + "$rpc": "null" + }, + "requiresConnection": false, + "status": { + "$rpc": "null" + } + } + }, + "cf32edc950ac": { + "name": "preflight.detectAgents#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectAgents\"}" + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "fb640b2bca4c": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "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 + } + } + }, + "fbb9eef78275": { + "name": "preflight.detectAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectAgents" + }, + { + "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-components.execution-target-local-preflight.detectagents-1", + "checkpoints": [ + { + "id": "components-target-local.prelude:detect-pending", + "observation": { + "sender": ["3579737ce1a6"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "1e4520fe6576", + "effects": [] + } + }, + { + "id": "components-target-local.normal:settled", + "observation": { + "sender": ["6806cee7c59f"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "986a776213e8", + "effects": [] + } + }, + { + "id": "components-target-local.result-absent:settled", + "observation": { + "sender": ["6e5fcf24648d"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "365a6864b043", + "effects": [] + } + }, + { + "id": "components-target-local.result-null:settled", + "observation": { + "sender": ["1317fc33bdbe"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "365a6864b043", + "effects": [] + } + }, + { + "id": "components-target-local.inner-ok-missing:settled", + "observation": { + "sender": ["327b46fb8bef"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "365a6864b043", + "effects": [] + } + }, + { + "id": "components-target-local.inner-false-string-error:settled", + "observation": { + "sender": ["0846bea730cf"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "365a6864b043", + "effects": [] + } + }, + { + "id": "components-target-local.inner-false-object-error:settled", + "observation": { + "sender": ["00d70c40c34c"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "365a6864b043", + "effects": [] + } + }, + { + "id": "components-target-local.outer-refused:settled", + "observation": { + "sender": ["fb640b2bca4c"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "365a6864b043", + "effects": [] + } + }, + { + "id": "components-target-local.outer-refused-no-message:settled", + "observation": { + "sender": ["163b91b6fe9c"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "365a6864b043", + "effects": [] + } + }, + { + "id": "components-target-local.method-not-found:settled", + "observation": { + "sender": ["87d7d24a30d2"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "365a6864b043", + "effects": [] + } + }, + { + "id": "components-target-local.transport-rejection:settled", + "observation": { + "sender": ["fbb9eef78275"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "365a6864b043", + "effects": [] + } + }, + { + "id": "components-target-local.transport-rejection-no-message:settled", + "observation": { + "sender": ["70d128c20ae4"], + "payloads": ["cf32edc950ac"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "365a6864b043", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-components.execution-target-preflight.detectremoteagents-1.json b/mobile/rpc-foundation/goldens/matrix-components.execution-target-preflight.detectremoteagents-1.json new file mode 100644 index 00000000000..6d1e1894f2f --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-components.execution-target-preflight.detectremoteagents-1.json @@ -0,0 +1,729 @@ +{ + "operation": "components.execution-target", + "family": "components.execution-target", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", + "scenarioSha256": "79a49cddf66935007afb9be8a30593b778f02237894e5fd4d2898b526fc125df", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "07d4c9b0eaf2": { + "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": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "0a7094a9a9ac": { + "name": "preflight.detectRemoteAgents#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectRemoteAgents\",\"params\":{\"connectionId\":\"ssh-1\"}}" + }, + "245e68137e04": { + "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-2", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "4e2e9a890ced": { + "detected": ["codex"], + "gate": { + "connectInProgress": false, + "error": { + "$rpc": "null" + }, + "requiresConnection": false, + "status": "connected" + } + }, + "51d7ac902696": { + "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": "" + }, + "id": "frame-2", + "ok": false + } + } + }, + "57095302d8c1": { + "name": "ssh.connect#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.connect\",\"params\":{\"targetId\":\"ssh-1\"}}" + }, + "6004e75ef39e": { + "name": "preflight.detectRemoteAgents#2", + "args": [ + { + "name": "method", + "value": "preflight.detectRemoteAgents" + }, + { + "name": "params", + "value": { + "connectionId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "65a3db621845": { + "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": "outer refused" + }, + "id": "frame-2", + "ok": false + } + } + }, + "66a99391260b": { + "name": "preflight.detectRemoteAgents#2", + "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectRemoteAgents\",\"params\":{\"connectionId\":\"ssh-1\"}}" + }, + "737995ed36c3": { + "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": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-2", + "ok": false + } + } + }, + "75cd96280963": { + "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-2", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "81c9c204b647": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "state": { + "error": { + "$rpc": "null" + }, + "reconnectAttempt": 0, + "status": "connected", + "targetId": "ssh-1" + } + } + } + } + }, + "88ecd0c754ca": { + "detected": [], + "gate": { + "connectInProgress": false, + "error": { + "$rpc": "null" + }, + "requiresConnection": false, + "status": "connected" + } + }, + "89aa7a3bd619": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "state": { + "error": { + "$rpc": "null" + }, + "reconnectAttempt": 0, + "status": "connected", + "targetId": "ssh-1" + } + } + } + } + }, + "8ce8dae8c036": { + "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-2", + "ok": true + } + } + }, + "95dee1165f95": { + "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": "", + "isRpcDeliveryUnknown": true + } + } + }, + "9a892112da5b": { + "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-2", + "ok": true, + "result": ["codex"] + } + } + }, + "c0d4a122ea86": { + "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-2", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "ca123825be51": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "ce1d236eece4": { + "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-2", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "d23b91bd7660": { + "detected": { + "$rpc": "null" + }, + "gate": { + "connectInProgress": false, + "error": { + "$rpc": "null" + }, + "requiresConnection": true, + "status": { + "$rpc": "null" + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "f9dfbe0c0ea7": { + "name": "ssh.getState#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.getState\",\"params\":{\"targetId\":\"ssh-1\"}}" + } + }, + "recording": { + "scenario": "matrix-components.execution-target-preflight.detectremoteagents-1", + "checkpoints": [ + { + "id": "components-target-ssh.prelude:state-pending", + "observation": { + "sender": ["ca123825be51"], + "payloads": ["f9dfbe0c0ea7"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "d23b91bd7660", + "effects": [] + } + }, + { + "id": "components-target-ssh.normal:settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "4e2e9a890ced", + "effects": [] + } + }, + { + "id": "components-target-ssh.result-absent:settled", + "observation": { + "sender": ["89aa7a3bd619", "8ce8dae8c036", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "88ecd0c754ca", + "effects": [] + } + }, + { + "id": "components-target-ssh.result-null:settled", + "observation": { + "sender": ["89aa7a3bd619", "75cd96280963", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "88ecd0c754ca", + "effects": [] + } + }, + { + "id": "components-target-ssh.inner-ok-missing:settled", + "observation": { + "sender": ["89aa7a3bd619", "ce1d236eece4", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "88ecd0c754ca", + "effects": [] + } + }, + { + "id": "components-target-ssh.inner-false-string-error:settled", + "observation": { + "sender": ["89aa7a3bd619", "245e68137e04", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "88ecd0c754ca", + "effects": [] + } + }, + { + "id": "components-target-ssh.inner-false-object-error:settled", + "observation": { + "sender": ["89aa7a3bd619", "c0d4a122ea86", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "88ecd0c754ca", + "effects": [] + } + }, + { + "id": "components-target-ssh.outer-refused:settled", + "observation": { + "sender": ["89aa7a3bd619", "65a3db621845", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "88ecd0c754ca", + "effects": [] + } + }, + { + "id": "components-target-ssh.outer-refused-no-message:settled", + "observation": { + "sender": ["89aa7a3bd619", "51d7ac902696", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "88ecd0c754ca", + "effects": [] + } + }, + { + "id": "components-target-ssh.method-not-found:settled", + "observation": { + "sender": ["89aa7a3bd619", "737995ed36c3", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "88ecd0c754ca", + "effects": [] + } + }, + { + "id": "components-target-ssh.transport-rejection:settled", + "observation": { + "sender": ["89aa7a3bd619", "07d4c9b0eaf2", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "88ecd0c754ca", + "effects": [] + } + }, + { + "id": "components-target-ssh.transport-rejection-no-message:settled", + "observation": { + "sender": ["89aa7a3bd619", "95dee1165f95", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "88ecd0c754ca", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-components.execution-target-ssh.connect-1.json b/mobile/rpc-foundation/goldens/matrix-components.execution-target-ssh.connect-1.json new file mode 100644 index 00000000000..f9ce5a35c53 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-components.execution-target-ssh.connect-1.json @@ -0,0 +1,784 @@ +{ + "operation": "components.execution-target", + "family": "components.execution-target", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", + "scenarioSha256": "8b8f7fe7227d44330e216e0bf5d366c41b54d9bf76acfb24df2c1770984b9f27", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0a7094a9a9ac": { + "name": "preflight.detectRemoteAgents#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectRemoteAgents\",\"params\":{\"connectionId\":\"ssh-1\"}}" + }, + "1d5f374a6378": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-3", + "ok": false + } + } + }, + "2a9fa3de486c": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "2d47b46a5872": { + "detected": { + "$rpc": "null" + }, + "gate": { + "connectInProgress": false, + "error": "Unknown method", + "requiresConnection": true, + "status": "error" + } + }, + "2fd7109925e5": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "33a303634ab9": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-3", + "ok": false + } + } + }, + "3443aa3290c8": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-3", + "ok": false + } + } + }, + "3828494e64df": { + "detected": { + "$rpc": "null" + }, + "gate": { + "connectInProgress": false, + "error": "", + "requiresConnection": true, + "status": "error" + } + }, + "467f1a0954f0": { + "detected": { + "$rpc": "null" + }, + "gate": { + "connectInProgress": false, + "error": "transport failure", + "requiresConnection": true, + "status": "error" + } + }, + "4e2e9a890ced": { + "detected": ["codex"], + "gate": { + "connectInProgress": false, + "error": { + "$rpc": "null" + }, + "requiresConnection": false, + "status": "connected" + } + }, + "57095302d8c1": { + "name": "ssh.connect#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.connect\",\"params\":{\"targetId\":\"ssh-1\"}}" + }, + "5a241dd7bf9b": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "5a628e933aa0": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "6004e75ef39e": { + "name": "preflight.detectRemoteAgents#2", + "args": [ + { + "name": "method", + "value": "preflight.detectRemoteAgents" + }, + { + "name": "params", + "value": { + "connectionId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "66a99391260b": { + "name": "preflight.detectRemoteAgents#2", + "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectRemoteAgents\",\"params\":{\"connectionId\":\"ssh-1\"}}" + }, + "671db70f932a": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "81c9c204b647": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "state": { + "error": { + "$rpc": "null" + }, + "reconnectAttempt": 0, + "status": "connected", + "targetId": "ssh-1" + } + } + } + } + }, + "89aa7a3bd619": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "state": { + "error": { + "$rpc": "null" + }, + "reconnectAttempt": 0, + "status": "connected", + "targetId": "ssh-1" + } + } + } + } + }, + "990a404630b4": { + "detected": { + "$rpc": "null" + }, + "gate": { + "connectInProgress": false, + "error": "outer refused", + "requiresConnection": true, + "status": "error" + } + }, + "9a892112da5b": { + "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-2", + "ok": true, + "result": ["codex"] + } + } + }, + "c04e51232b36": { + "detected": { + "$rpc": "null" + }, + "gate": { + "connectInProgress": false, + "error": "Cannot read properties of null (reading 'state')", + "requiresConnection": true, + "status": "error" + } + }, + "c5608f9dd27c": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "c9821a8643be": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true + } + } + }, + "ca123825be51": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "d23b91bd7660": { + "detected": { + "$rpc": "null" + }, + "gate": { + "connectInProgress": false, + "error": { + "$rpc": "null" + }, + "requiresConnection": true, + "status": { + "$rpc": "null" + } + } + }, + "d714ad0ce8fb": { + "detected": { + "$rpc": "null" + }, + "gate": { + "connectInProgress": false, + "error": "Cannot read properties of undefined (reading 'state')", + "requiresConnection": true, + "status": "error" + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "f9dfbe0c0ea7": { + "name": "ssh.getState#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.getState\",\"params\":{\"targetId\":\"ssh-1\"}}" + } + }, + "recording": { + "scenario": "matrix-components.execution-target-ssh.connect-1", + "checkpoints": [ + { + "id": "components-target-ssh.prelude:state-pending", + "observation": { + "sender": ["ca123825be51"], + "payloads": ["f9dfbe0c0ea7"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "d23b91bd7660", + "effects": [] + } + }, + { + "id": "components-target-ssh.normal:settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "4e2e9a890ced", + "effects": [] + } + }, + { + "id": "components-target-ssh.result-absent:settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "c9821a8643be"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "d714ad0ce8fb", + "effects": [] + } + }, + { + "id": "components-target-ssh.result-null:settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "5a241dd7bf9b"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "c04e51232b36", + "effects": [] + } + }, + { + "id": "components-target-ssh.inner-ok-missing:settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "2fd7109925e5", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "4e2e9a890ced", + "effects": [] + } + }, + { + "id": "components-target-ssh.inner-false-string-error:settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "2a9fa3de486c", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "4e2e9a890ced", + "effects": [] + } + }, + { + "id": "components-target-ssh.inner-false-object-error:settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "5a628e933aa0", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "4e2e9a890ced", + "effects": [] + } + }, + { + "id": "components-target-ssh.outer-refused:settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "3443aa3290c8"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "990a404630b4", + "effects": [] + } + }, + { + "id": "components-target-ssh.outer-refused-no-message:settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "33a303634ab9"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "3828494e64df", + "effects": [] + } + }, + { + "id": "components-target-ssh.method-not-found:settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "1d5f374a6378"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "2d47b46a5872", + "effects": [] + } + }, + { + "id": "components-target-ssh.transport-rejection:settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "c5608f9dd27c"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "467f1a0954f0", + "effects": [] + } + }, + { + "id": "components-target-ssh.transport-rejection-no-message:settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "671db70f932a"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "3828494e64df", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-components.execution-target-ssh.getstate-1.json b/mobile/rpc-foundation/goldens/matrix-components.execution-target-ssh.getstate-1.json new file mode 100644 index 00000000000..726067933f4 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-components.execution-target-ssh.getstate-1.json @@ -0,0 +1,804 @@ +{ + "operation": "components.execution-target", + "family": "components.execution-target", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", + "scenarioSha256": "6832d23c6500e4fcb20abe7c53bc4f5abe72180dc0ad747a4907b82d99bc75d0", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0a16839c6f87": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "0a7094a9a9ac": { + "name": "preflight.detectRemoteAgents#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectRemoteAgents\",\"params\":{\"connectionId\":\"ssh-1\"}}" + }, + "0eabd872f405": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "14db652edf02": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true + } + } + }, + "2d910059043a": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "4e2e9a890ced": { + "detected": ["codex"], + "gate": { + "connectInProgress": false, + "error": { + "$rpc": "null" + }, + "requiresConnection": false, + "status": "connected" + } + }, + "57095302d8c1": { + "name": "ssh.connect#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.connect\",\"params\":{\"targetId\":\"ssh-1\"}}" + }, + "6004e75ef39e": { + "name": "preflight.detectRemoteAgents#2", + "args": [ + { + "name": "method", + "value": "preflight.detectRemoteAgents" + }, + { + "name": "params", + "value": { + "connectionId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "66a99391260b": { + "name": "preflight.detectRemoteAgents#2", + "json": "{\"id\":\"frame-4\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectRemoteAgents\",\"params\":{\"connectionId\":\"ssh-1\"}}" + }, + "71d817ffdd81": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "state": { + "error": { + "$rpc": "null" + }, + "reconnectAttempt": 0, + "status": "connected", + "targetId": "ssh-1" + } + } + } + } + }, + "7c9498659f58": { + "name": "ssh.connect#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.connect\",\"params\":{\"targetId\":\"ssh-1\"}}" + }, + "81c9c204b647": { + "name": "ssh.connect#1", + "args": [ + { + "name": "method", + "value": "ssh.connect" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 120000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "state": { + "error": { + "$rpc": "null" + }, + "reconnectAttempt": 0, + "status": "connected", + "targetId": "ssh-1" + } + } + } + } + }, + "89aa7a3bd619": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "state": { + "error": { + "$rpc": "null" + }, + "reconnectAttempt": 0, + "status": "connected", + "targetId": "ssh-1" + } + } + } + } + }, + "9a892112da5b": { + "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-2", + "ok": true, + "result": ["codex"] + } + } + }, + "b09dd4915f43": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "b69a18178af8": { + "name": "preflight.detectRemoteAgents#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"preflight.detectRemoteAgents\",\"params\":{\"connectionId\":\"ssh-1\"}}" + }, + "b705ba88a562": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "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 + } + } + }, + "ca123825be51": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "d0fad8f739ca": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "d23b91bd7660": { + "detected": { + "$rpc": "null" + }, + "gate": { + "connectInProgress": false, + "error": { + "$rpc": "null" + }, + "requiresConnection": true, + "status": { + "$rpc": "null" + } + } + }, + "e18278fce524": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "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 + } + } + } + }, + "e314f3903bd3": { + "detected": { + "$rpc": "null" + }, + "gate": { + "connectInProgress": false, + "error": { + "$rpc": "null" + }, + "requiresConnection": false, + "status": "connected" + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "f03117831a8e": { + "name": "preflight.detectRemoteAgents#1", + "args": [ + { + "name": "method", + "value": "preflight.detectRemoteAgents" + }, + { + "name": "params", + "value": { + "connectionId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "f36f17f8d448": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "f9dfbe0c0ea7": { + "name": "ssh.getState#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.getState\",\"params\":{\"targetId\":\"ssh-1\"}}" + }, + "ff6c3161dcc7": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "ssh-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + } + }, + "recording": { + "scenario": "matrix-components.execution-target-ssh.getstate-1", + "checkpoints": [ + { + "id": "components-target-ssh.prelude:state-pending", + "observation": { + "sender": ["ca123825be51"], + "payloads": ["f9dfbe0c0ea7"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "d23b91bd7660", + "effects": [] + } + }, + { + "id": "components-target-ssh.normal:settled", + "observation": { + "sender": ["89aa7a3bd619", "9a892112da5b", "81c9c204b647", "6004e75ef39e"], + "payloads": ["f9dfbe0c0ea7", "0a7094a9a9ac", "57095302d8c1", "66a99391260b"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "4e2e9a890ced", + "effects": [] + } + }, + { + "id": "components-target-ssh.result-absent:settled", + "observation": { + "sender": ["14db652edf02", "71d817ffdd81", "f03117831a8e"], + "payloads": ["f9dfbe0c0ea7", "7c9498659f58", "b69a18178af8"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "e314f3903bd3", + "effects": [] + } + }, + { + "id": "components-target-ssh.result-null:settled", + "observation": { + "sender": ["0eabd872f405", "71d817ffdd81", "f03117831a8e"], + "payloads": ["f9dfbe0c0ea7", "7c9498659f58", "b69a18178af8"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "e314f3903bd3", + "effects": [] + } + }, + { + "id": "components-target-ssh.inner-ok-missing:settled", + "observation": { + "sender": ["0a16839c6f87", "71d817ffdd81", "f03117831a8e"], + "payloads": ["f9dfbe0c0ea7", "7c9498659f58", "b69a18178af8"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "e314f3903bd3", + "effects": [] + } + }, + { + "id": "components-target-ssh.inner-false-string-error:settled", + "observation": { + "sender": ["b09dd4915f43", "71d817ffdd81", "f03117831a8e"], + "payloads": ["f9dfbe0c0ea7", "7c9498659f58", "b69a18178af8"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "e314f3903bd3", + "effects": [] + } + }, + { + "id": "components-target-ssh.inner-false-object-error:settled", + "observation": { + "sender": ["e18278fce524", "71d817ffdd81", "f03117831a8e"], + "payloads": ["f9dfbe0c0ea7", "7c9498659f58", "b69a18178af8"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "e314f3903bd3", + "effects": [] + } + }, + { + "id": "components-target-ssh.outer-refused:settled", + "observation": { + "sender": ["d0fad8f739ca", "71d817ffdd81", "f03117831a8e"], + "payloads": ["f9dfbe0c0ea7", "7c9498659f58", "b69a18178af8"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "e314f3903bd3", + "effects": [] + } + }, + { + "id": "components-target-ssh.outer-refused-no-message:settled", + "observation": { + "sender": ["ff6c3161dcc7", "71d817ffdd81", "f03117831a8e"], + "payloads": ["f9dfbe0c0ea7", "7c9498659f58", "b69a18178af8"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "e314f3903bd3", + "effects": [] + } + }, + { + "id": "components-target-ssh.method-not-found:settled", + "observation": { + "sender": ["b705ba88a562", "71d817ffdd81", "f03117831a8e"], + "payloads": ["f9dfbe0c0ea7", "7c9498659f58", "b69a18178af8"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "e314f3903bd3", + "effects": [] + } + }, + { + "id": "components-target-ssh.transport-rejection:settled", + "observation": { + "sender": ["2d910059043a", "71d817ffdd81", "f03117831a8e"], + "payloads": ["f9dfbe0c0ea7", "7c9498659f58", "b69a18178af8"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "e314f3903bd3", + "effects": [] + } + }, + { + "id": "components-target-ssh.transport-rejection-no-message:settled", + "observation": { + "sender": ["f36f17f8d448", "71d817ffdd81", "f03117831a8e"], + "payloads": ["f9dfbe0c0ea7", "7c9498659f58", "b69a18178af8"], + "settlements": { + "mount": "eb79a9b3682a", + "connect": "eb79a9b3682a" + }, + "state": "e314f3903bd3", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-components.setup-script-repo.hooks-1.json b/mobile/rpc-foundation/goldens/matrix-components.setup-script-repo.hooks-1.json new file mode 100644 index 00000000000..2a0ea00dd72 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-components.setup-script-repo.hooks-1.json @@ -0,0 +1,599 @@ +{ + "operation": "components.setup-script", + "family": "components.setup-script", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "5cfbce3c7d97d908fbd447646d611e41a8aa1f61f684b9b710c4b67d6ff023a7", + "scenarioSha256": "a844134d7bad3c7c12107d60dbd298f5cfba778703fb9dd0f7ad454615d26b07", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0a180dd2149f": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "170986cae6b4": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "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 + } + } + } + }, + "1e344a6b5da7": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "28e75475e9e0": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "33cfd55c1890": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "3515a8adcd6d": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "hooks": { + "scripts": { + "setup": "pnpm install" + } + }, + "setupRunPolicy": "ask", + "setupTrust": { + "$rpc": "null" + }, + "source": "repo" + } + } + } + }, + "3c9287ca1560": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "3cdc23cf6f4a": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "5d1cf72f4e12": { + "advanced": true, + "command": "pnpm install", + "run": true, + "runPolicy": "ask", + "source": "repo", + "trust": { + "$rpc": "null" + } + }, + "64c03730d628": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "80cf8444e458": { + "advanced": false, + "command": { + "$rpc": "null" + }, + "run": true, + "runPolicy": "run-by-default", + "source": { + "$rpc": "null" + }, + "trust": { + "$rpc": "null" + } + }, + "941b6aeb0d6f": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "daf213730e62": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true + } + } + }, + "e6c72f695b50": { + "name": "repo.hooks#1", + "args": [ + { + "name": "method", + "value": "repo.hooks" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "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 + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "f5dc0ce1e7b8": { + "name": "repo.hooks#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"repo.hooks\",\"params\":{\"repo\":\"id:repo-1\"}}" + } + }, + "recording": { + "scenario": "matrix-components.setup-script-repo.hooks-1", + "checkpoints": [ + { + "id": "components-setup-ask.prelude:hooks-pending", + "observation": { + "sender": ["28e75475e9e0"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "80cf8444e458", + "effects": [] + } + }, + { + "id": "components-setup-ask.normal:settled", + "observation": { + "sender": ["3515a8adcd6d"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "5d1cf72f4e12", + "effects": [] + } + }, + { + "id": "components-setup-ask.result-absent:settled", + "observation": { + "sender": ["daf213730e62"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "80cf8444e458", + "effects": [] + } + }, + { + "id": "components-setup-ask.result-null:settled", + "observation": { + "sender": ["1e344a6b5da7"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "80cf8444e458", + "effects": [] + } + }, + { + "id": "components-setup-ask.inner-ok-missing:settled", + "observation": { + "sender": ["3cdc23cf6f4a"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "80cf8444e458", + "effects": [] + } + }, + { + "id": "components-setup-ask.inner-false-string-error:settled", + "observation": { + "sender": ["0a180dd2149f"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "80cf8444e458", + "effects": [] + } + }, + { + "id": "components-setup-ask.inner-false-object-error:settled", + "observation": { + "sender": ["170986cae6b4"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "80cf8444e458", + "effects": [] + } + }, + { + "id": "components-setup-ask.outer-refused:settled", + "observation": { + "sender": ["64c03730d628"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "80cf8444e458", + "effects": [] + } + }, + { + "id": "components-setup-ask.outer-refused-no-message:settled", + "observation": { + "sender": ["3c9287ca1560"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "80cf8444e458", + "effects": [] + } + }, + { + "id": "components-setup-ask.method-not-found:settled", + "observation": { + "sender": ["e6c72f695b50"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "80cf8444e458", + "effects": [] + } + }, + { + "id": "components-setup-ask.transport-rejection:settled", + "observation": { + "sender": ["941b6aeb0d6f"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "80cf8444e458", + "effects": [] + } + }, + { + "id": "components-setup-ask.transport-rejection-no-message:settled", + "observation": { + "sender": ["33cfd55c1890"], + "payloads": ["f5dc0ce1e7b8"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "80cf8444e458", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-files.mutation-ownership-ssh.getstate-1.json b/mobile/rpc-foundation/goldens/matrix-files.mutation-ownership-ssh.getstate-1.json new file mode 100644 index 00000000000..c4c55a4f919 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-files.mutation-ownership-ssh.getstate-1.json @@ -0,0 +1,746 @@ +{ + "operation": "files.mutation-ownership", + "family": "files.mutation-ownership", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "5815450e8d07f463423ca0bd8237830791c220234201abffc6fa13e698913516", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0cfc3aa2bfb0": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "1e5b32902af7": { + "name": "status.get#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"status.get\"}" + }, + "29bfbe94cca9": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "expectedExecutionHostId": "ssh:target-1", + "expectedSshConnectionGeneration": 3, + "expectedSshTargetId": "target-1" + } + }, + "32a7c0ae7918": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "outer refused", + "isRpcDeliveryUnknown": false + } + }, + "3bff05e80a36": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-3", + "ok": false + } + } + }, + "504c0e27345c": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "518ec57c381a": { + "ownership": "uncaptured" + }, + "6116946241ca": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "state": { + "connectionGeneration": 3, + "error": { + "$rpc": "null" + }, + "reconnectAttempt": 0, + "status": "connected", + "targetId": "target-1" + } + } + } + } + }, + "6178f3695366": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "Couldn't verify the SSH connection. Reconnect the host and try again.", + "isRpcDeliveryUnknown": false + } + }, + "6ef43f81f7e3": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "worktree": { + "hostId": "ssh:target-1" + } + } + } + } + }, + "7ae12fc753a2": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-3", + "ok": false + } + } + }, + "9199aee60486": { + "name": "worktree.show#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.show\",\"params\":{\"worktree\":\"id:workspace-1\"}}" + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "98a7aa1d359d": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "a0341e6a5d84": { + "name": "ssh.getState#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.getState\",\"params\":{\"targetId\":\"target-1\"}}" + }, + "a56852d6836b": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "capabilities": ["files.mutation-ownership.v1"] + } + } + } + }, + "a7e256068a4e": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "a947768bc0ed": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + }, + "b8b7e759edc4": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "b948e8307e81": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "Unknown method", + "isRpcDeliveryUnknown": false + } + }, + "bc119660f0c1": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "bd84dadd27c7": { + "ownership": { + "expectedExecutionHostId": "ssh:target-1", + "expectedSshConnectionGeneration": 3, + "expectedSshTargetId": "target-1" + } + }, + "c05abe5bc0bc": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "c7584e82c72f": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + }, + "ce2b29907ae3": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "TypeError", + "message": "Cannot read properties of null (reading 'state')", + "isRpcDeliveryUnknown": false + } + }, + "d954a0a142a5": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "TypeError", + "message": "Cannot read properties of undefined (reading 'state')", + "isRpcDeliveryUnknown": false + } + }, + "dfc84caa8f54": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true + } + } + }, + "e7fd41d8b9e6": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-3", + "ok": false + } + } + }, + "f3b516f62081": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": false + } + } + }, + "recording": { + "scenario": "matrix-files.mutation-ownership-ssh.getstate-1", + "checkpoints": [ + { + "id": "files-ownership-ssh.prelude:status-pending", + "observation": { + "sender": ["bc119660f0c1"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "9270aeb7d9c6" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.normal:settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "6116946241ca"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "29bfbe94cca9" + }, + "state": "bd84dadd27c7", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.result-absent:settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "dfc84caa8f54"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "d954a0a142a5" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.result-null:settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "504c0e27345c"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "ce2b29907ae3" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.inner-ok-missing:settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "c05abe5bc0bc"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "6178f3695366" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.inner-false-string-error:settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "b8b7e759edc4"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "6178f3695366" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.inner-false-object-error:settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "a7e256068a4e"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "6178f3695366" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.outer-refused:settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "7ae12fc753a2"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "32a7c0ae7918" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.outer-refused-no-message:settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "e7fd41d8b9e6"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "f3b516f62081" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.method-not-found:settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "3bff05e80a36"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "b948e8307e81" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.transport-rejection:settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "0cfc3aa2bfb0"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "a947768bc0ed" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.transport-rejection-no-message:settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "98a7aa1d359d"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "c7584e82c72f" + }, + "state": "518ec57c381a", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-files.mutation-ownership-status.get-1.json b/mobile/rpc-foundation/goldens/matrix-files.mutation-ownership-status.get-1.json new file mode 100644 index 00000000000..c4f3129c330 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-files.mutation-ownership-status.get-1.json @@ -0,0 +1,746 @@ +{ + "operation": "files.mutation-ownership", + "family": "files.mutation-ownership", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "b9cfb187224a4b42efe8ccfcd96145833730d135c4fffa345716f95991a4700f", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0b7588536afb": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "0d163aa89099": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "1e5b32902af7": { + "name": "status.get#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"status.get\"}" + }, + "29bfbe94cca9": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "expectedExecutionHostId": "ssh:target-1", + "expectedSshConnectionGeneration": 3, + "expectedSshTargetId": "target-1" + } + }, + "32a7c0ae7918": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "outer refused", + "isRpcDeliveryUnknown": false + } + }, + "48e2bdc38094": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "4b0fb2833d76": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "518ec57c381a": { + "ownership": "uncaptured" + }, + "6116946241ca": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "state": { + "connectionGeneration": 3, + "error": { + "$rpc": "null" + }, + "reconnectAttempt": 0, + "status": "connected", + "targetId": "target-1" + } + } + } + } + }, + "68ce4d376250": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "TypeError", + "message": "Cannot read properties of null (reading 'capabilities')", + "isRpcDeliveryUnknown": false + } + }, + "6ef43f81f7e3": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "worktree": { + "hostId": "ssh:target-1" + } + } + } + } + }, + "74a9cdb3c227": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "753f8f2aac3b": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-1", + "ok": false + } + } + }, + "848eaee9cd6a": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "TypeError", + "message": "Cannot read properties of undefined (reading 'capabilities')", + "isRpcDeliveryUnknown": false + } + }, + "90817e8c47cb": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true + } + } + }, + "9199aee60486": { + "name": "worktree.show#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.show\",\"params\":{\"worktree\":\"id:workspace-1\"}}" + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "9ce0c7923c41": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "Remote file changes require a newer Orca server. Update the HUB and try again.", + "isRpcDeliveryUnknown": false + } + }, + "a0341e6a5d84": { + "name": "ssh.getState#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.getState\",\"params\":{\"targetId\":\"target-1\"}}" + }, + "a56852d6836b": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "capabilities": ["files.mutation-ownership.v1"] + } + } + } + }, + "a8d9f204690e": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "a947768bc0ed": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + }, + "b948e8307e81": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "Unknown method", + "isRpcDeliveryUnknown": false + } + }, + "bc119660f0c1": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "bd84dadd27c7": { + "ownership": { + "expectedExecutionHostId": "ssh:target-1", + "expectedSshConnectionGeneration": 3, + "expectedSshTargetId": "target-1" + } + }, + "c7584e82c72f": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + }, + "f2a2b92aa73c": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "f3b516f62081": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": false + } + }, + "f68f9c806fb2": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + } + }, + "recording": { + "scenario": "matrix-files.mutation-ownership-status.get-1", + "checkpoints": [ + { + "id": "files-ownership-ssh.prelude:status-pending", + "observation": { + "sender": ["bc119660f0c1"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "9270aeb7d9c6" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.normal:settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "6116946241ca"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "29bfbe94cca9" + }, + "state": "bd84dadd27c7", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.result-absent:settled", + "observation": { + "sender": ["90817e8c47cb"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "848eaee9cd6a" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.result-null:settled", + "observation": { + "sender": ["0d163aa89099"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "68ce4d376250" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.inner-ok-missing:settled", + "observation": { + "sender": ["48e2bdc38094"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "9ce0c7923c41" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.inner-false-string-error:settled", + "observation": { + "sender": ["f2a2b92aa73c"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "9ce0c7923c41" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.inner-false-object-error:settled", + "observation": { + "sender": ["f68f9c806fb2"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "9ce0c7923c41" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.outer-refused:settled", + "observation": { + "sender": ["0b7588536afb"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "32a7c0ae7918" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.outer-refused-no-message:settled", + "observation": { + "sender": ["a8d9f204690e"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "f3b516f62081" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.method-not-found:settled", + "observation": { + "sender": ["753f8f2aac3b"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "b948e8307e81" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.transport-rejection:settled", + "observation": { + "sender": ["4b0fb2833d76"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "a947768bc0ed" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.transport-rejection-no-message:settled", + "observation": { + "sender": ["74a9cdb3c227"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "c7584e82c72f" + }, + "state": "518ec57c381a", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-files.mutation-ownership-worktree.show-1.json b/mobile/rpc-foundation/goldens/matrix-files.mutation-ownership-worktree.show-1.json new file mode 100644 index 00000000000..684dfc174ff --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-files.mutation-ownership-worktree.show-1.json @@ -0,0 +1,746 @@ +{ + "operation": "files.mutation-ownership", + "family": "files.mutation-ownership", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "0bf3b17048bceb0bc8592405facd99cb8086274509206d9e55cd589a05d7415f", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "06cbb9a1b167": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "0b4d42954d52": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-2", + "ok": false + } + } + }, + "1e5b32902af7": { + "name": "status.get#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"status.get\"}" + }, + "2588fd63a157": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "TypeError", + "message": "Cannot read properties of undefined (reading 'worktree')", + "isRpcDeliveryUnknown": false + } + }, + "29bfbe94cca9": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "expectedExecutionHostId": "ssh:target-1", + "expectedSshConnectionGeneration": 3, + "expectedSshTargetId": "target-1" + } + }, + "2fa02ab5402f": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "32a7c0ae7918": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "outer refused", + "isRpcDeliveryUnknown": false + } + }, + "39a0b3c0e319": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "518ec57c381a": { + "ownership": "uncaptured" + }, + "533d020d6123": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true + } + } + }, + "6116946241ca": { + "name": "ssh.getState#1", + "args": [ + { + "name": "method", + "value": "ssh.getState" + }, + { + "name": "params", + "value": { + "targetId": "target-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "state": { + "connectionGeneration": 3, + "error": { + "$rpc": "null" + }, + "reconnectAttempt": 0, + "status": "connected", + "targetId": "target-1" + } + } + } + } + }, + "6178f3695366": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "Couldn't verify the SSH connection. Reconnect the host and try again.", + "isRpcDeliveryUnknown": false + } + }, + "6ef43f81f7e3": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "worktree": { + "hostId": "ssh:target-1" + } + } + } + } + }, + "8845bcbdc51b": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "9199aee60486": { + "name": "worktree.show#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.show\",\"params\":{\"worktree\":\"id:workspace-1\"}}" + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "a0341e6a5d84": { + "name": "ssh.getState#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"ssh.getState\",\"params\":{\"targetId\":\"target-1\"}}" + }, + "a56852d6836b": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "capabilities": ["files.mutation-ownership.v1"] + } + } + } + }, + "a947768bc0ed": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + }, + "b5447f4dd931": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "TypeError", + "message": "Cannot read properties of null (reading 'worktree')", + "isRpcDeliveryUnknown": false + } + }, + "b948e8307e81": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "Unknown method", + "isRpcDeliveryUnknown": false + } + }, + "bc119660f0c1": { + "name": "status.get#1", + "args": [ + { + "name": "method", + "value": "status.get" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "bd84dadd27c7": { + "ownership": { + "expectedExecutionHostId": "ssh:target-1", + "expectedSshConnectionGeneration": 3, + "expectedSshTargetId": "target-1" + } + }, + "c6aa5c0a7bd1": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-2", + "ok": false + } + } + }, + "c7584e82c72f": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + }, + "cff8b7a5e7ce": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-2", + "ok": false + } + } + }, + "f3b516f62081": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": false + } + }, + "fc05e7103b6c": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "fd50303f30ce": { + "name": "worktree.show#1", + "args": [ + { + "name": "method", + "value": "worktree.show" + }, + { + "name": "params", + "value": { + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "timeoutMs": 15000 + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + } + }, + "recording": { + "scenario": "matrix-files.mutation-ownership-worktree.show-1", + "checkpoints": [ + { + "id": "files-ownership-ssh.prelude:status-pending", + "observation": { + "sender": ["bc119660f0c1"], + "payloads": ["1e5b32902af7"], + "settlements": { + "capture": "9270aeb7d9c6" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.normal:settled", + "observation": { + "sender": ["a56852d6836b", "6ef43f81f7e3", "6116946241ca"], + "payloads": ["1e5b32902af7", "9199aee60486", "a0341e6a5d84"], + "settlements": { + "capture": "29bfbe94cca9" + }, + "state": "bd84dadd27c7", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.result-absent:settled", + "observation": { + "sender": ["a56852d6836b", "533d020d6123"], + "payloads": ["1e5b32902af7", "9199aee60486"], + "settlements": { + "capture": "2588fd63a157" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.result-null:settled", + "observation": { + "sender": ["a56852d6836b", "39a0b3c0e319"], + "payloads": ["1e5b32902af7", "9199aee60486"], + "settlements": { + "capture": "b5447f4dd931" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.inner-ok-missing:settled", + "observation": { + "sender": ["a56852d6836b", "06cbb9a1b167"], + "payloads": ["1e5b32902af7", "9199aee60486"], + "settlements": { + "capture": "6178f3695366" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.inner-false-string-error:settled", + "observation": { + "sender": ["a56852d6836b", "8845bcbdc51b"], + "payloads": ["1e5b32902af7", "9199aee60486"], + "settlements": { + "capture": "6178f3695366" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.inner-false-object-error:settled", + "observation": { + "sender": ["a56852d6836b", "2fa02ab5402f"], + "payloads": ["1e5b32902af7", "9199aee60486"], + "settlements": { + "capture": "6178f3695366" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.outer-refused:settled", + "observation": { + "sender": ["a56852d6836b", "cff8b7a5e7ce"], + "payloads": ["1e5b32902af7", "9199aee60486"], + "settlements": { + "capture": "32a7c0ae7918" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.outer-refused-no-message:settled", + "observation": { + "sender": ["a56852d6836b", "0b4d42954d52"], + "payloads": ["1e5b32902af7", "9199aee60486"], + "settlements": { + "capture": "f3b516f62081" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.method-not-found:settled", + "observation": { + "sender": ["a56852d6836b", "c6aa5c0a7bd1"], + "payloads": ["1e5b32902af7", "9199aee60486"], + "settlements": { + "capture": "b948e8307e81" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.transport-rejection:settled", + "observation": { + "sender": ["a56852d6836b", "fd50303f30ce"], + "payloads": ["1e5b32902af7", "9199aee60486"], + "settlements": { + "capture": "a947768bc0ed" + }, + "state": "518ec57c381a", + "effects": [] + } + }, + { + "id": "files-ownership-ssh.transport-rejection-no-message:settled", + "observation": { + "sender": ["a56852d6836b", "fc05e7103b6c"], + "payloads": ["1e5b32902af7", "9199aee60486"], + "settlements": { + "capture": "c7584e82c72f" + }, + "state": "518ec57c381a", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-files.preview-load-files.readterminalartifact-1.json b/mobile/rpc-foundation/goldens/matrix-files.preview-load-files.readterminalartifact-1.json new file mode 100644 index 00000000000..58cde4d1342 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-files.preview-load-files.readterminalartifact-1.json @@ -0,0 +1,649 @@ +{ + "operation": "files.preview-load", + "family": "files.preview-load", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "dbd20e271999641affbd4b52635c8864e25f08aa6db820a46d0773faa09770c6", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "139c55987ba6": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true + } + } + }, + "15467bba2d60": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "message": "Unable to load preview", + "reconnect": false, + "status": "error" + } + }, + "194fabd9b9d8": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "byteLength": 5, + "content": "hello", + "truncated": false + } + } + } + }, + "500d95d47092": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "byteLength": 5, + "content": "hello", + "kind": "text", + "status": "ready", + "truncated": false + } + }, + "645c5754be42": { + "preview": "unloaded" + }, + "67427c41b324": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "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 + } + } + } + }, + "68b5d189bcca": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "7500d091ea19": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "784ea351e5b2": { + "preview": { + "byteLength": 5, + "content": "hello", + "kind": "text", + "status": "ready", + "truncated": false + } + }, + "7886fcdc8065": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "9d9aa1c01790": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "a947768bc0ed": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + }, + "ac130adfeffb": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "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 + } + } + }, + "c7584e82c72f": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + }, + "e0401d205ea2": { + "name": "files.readTerminalArtifact#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.readTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-1\"}}" + }, + "e088aa7f81b8": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "e2791dca552b": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "e81d5596c201": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "f488aff81e98": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "fba5e3c89244": { + "preview": { + "message": "Unable to load preview", + "reconnect": false, + "status": "error" + } + } + }, + "recording": { + "scenario": "matrix-files.preview-load-files.readterminalartifact-1", + "checkpoints": [ + { + "id": "files-preview-grant-refresh.prelude:read-pending", + "observation": { + "sender": ["e81d5596c201"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "9270aeb7d9c6" + }, + "state": "645c5754be42", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.normal:settled", + "observation": { + "sender": ["194fabd9b9d8"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "500d95d47092" + }, + "state": "784ea351e5b2", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.result-absent:settled", + "observation": { + "sender": ["139c55987ba6"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.result-null:settled", + "observation": { + "sender": ["7500d091ea19"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.inner-ok-missing:settled", + "observation": { + "sender": ["f488aff81e98"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.inner-false-string-error:settled", + "observation": { + "sender": ["e088aa7f81b8"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.inner-false-object-error:settled", + "observation": { + "sender": ["67427c41b324"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.outer-refused:settled", + "observation": { + "sender": ["68b5d189bcca"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.outer-refused-no-message:settled", + "observation": { + "sender": ["e2791dca552b"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.method-not-found:settled", + "observation": { + "sender": ["ac130adfeffb"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.transport-rejection:settled", + "observation": { + "sender": ["7886fcdc8065"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "a947768bc0ed" + }, + "state": "645c5754be42", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.transport-rejection-no-message:settled", + "observation": { + "sender": ["9d9aa1c01790"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "c7584e82c72f" + }, + "state": "645c5754be42", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-files.preview-load-files.readterminalartifact-2.json b/mobile/rpc-foundation/goldens/matrix-files.preview-load-files.readterminalartifact-2.json new file mode 100644 index 00000000000..8f6a42df363 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-files.preview-load-files.readterminalartifact-2.json @@ -0,0 +1,747 @@ +{ + "operation": "files.preview-load", + "family": "files.preview-load", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "c4a09003352ba4e97a17ec4109cc125298cf7123b317265cc5eca06e8dcc0615", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "15467bba2d60": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "message": "Unable to load preview", + "reconnect": false, + "status": "error" + } + }, + "23897314fbe2": { + "name": "files.readTerminalArtifact#2", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "25b0d1737c71": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "terminal_file_grant_expired", + "message": "Grant expired" + }, + "id": "frame-1", + "ok": false + } + } + }, + "3c5492779d85": { + "name": "files.resolveTerminalPath#1", + "args": [ + { + "name": "method", + "value": "files.resolveTerminalPath" + }, + { + "name": "params", + "value": { + "cwd": "/logs", + "pathText": "run.txt", + "terminal": "terminal-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "exists": true, + "isDirectory": false, + "openTarget": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "kind": "absolute-file" + } + } + } + } + }, + "500d95d47092": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "byteLength": 5, + "content": "hello", + "kind": "text", + "status": "ready", + "truncated": false + } + }, + "5f446c109a9a": { + "name": "files.readTerminalArtifact#2", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "byteLength": 5, + "content": "hello", + "truncated": false + } + } + } + }, + "645c5754be42": { + "preview": "unloaded" + }, + "68b4cb95d67a": { + "name": "files.readTerminalArtifact#2", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "70356f9cd814": { + "name": "files.readTerminalArtifact#2", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "784ea351e5b2": { + "preview": { + "byteLength": 5, + "content": "hello", + "kind": "text", + "status": "ready", + "truncated": false + } + }, + "813fe48569a6": { + "name": "artifact-source-refreshed", + "value": { + "absolutePath": "/logs/run.txt", + "cwd": "/logs", + "grantId": "grant-2", + "pathText": "run.txt", + "source": "terminalArtifact", + "terminalHandle": "terminal-1", + "worktreeId": "workspace-1" + } + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "9a56ffbdd5bf": { + "name": "files.resolveTerminalPath#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.resolveTerminalPath\",\"params\":{\"worktree\":\"id:workspace-1\",\"pathText\":\"run.txt\",\"cwd\":\"/logs\",\"terminal\":\"terminal-1\"}}" + }, + "a947768bc0ed": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + }, + "b1c3cb621eff": { + "name": "files.readTerminalArtifact#2", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-3", + "ok": false + } + } + }, + "c01a147cb225": { + "name": "files.readTerminalArtifact#2", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "c283e01480f7": { + "name": "files.readTerminalArtifact#2", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"files.readTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-2\"}}" + }, + "c727a49c2e15": { + "name": "files.readTerminalArtifact#2", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-3", + "ok": false + } + } + }, + "c7584e82c72f": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + }, + "ca6bf3108851": { + "name": "files.readTerminalArtifact#2", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-3", + "ok": false + } + } + }, + "e0401d205ea2": { + "name": "files.readTerminalArtifact#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.readTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-1\"}}" + }, + "e81d5596c201": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "ebf2a6ee078d": { + "name": "files.readTerminalArtifact#2", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "edcd6a3e98cd": { + "name": "files.readTerminalArtifact#2", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "f444aa03ba44": { + "name": "files.readTerminalArtifact#2", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true + } + } + }, + "fba5e3c89244": { + "preview": { + "message": "Unable to load preview", + "reconnect": false, + "status": "error" + } + } + }, + "recording": { + "scenario": "matrix-files.preview-load-files.readterminalartifact-2", + "checkpoints": [ + { + "id": "files-preview-grant-refresh.prelude:read-pending", + "observation": { + "sender": ["e81d5596c201"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "9270aeb7d9c6" + }, + "state": "645c5754be42", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.normal:settled", + "observation": { + "sender": ["25b0d1737c71", "3c5492779d85", "5f446c109a9a"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf", "c283e01480f7"], + "settlements": { + "load": "500d95d47092" + }, + "state": "784ea351e5b2", + "effects": ["813fe48569a6"] + } + }, + { + "id": "files-preview-grant-refresh.result-absent:settled", + "observation": { + "sender": ["25b0d1737c71", "3c5492779d85", "f444aa03ba44"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf", "c283e01480f7"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": ["813fe48569a6"] + } + }, + { + "id": "files-preview-grant-refresh.result-null:settled", + "observation": { + "sender": ["25b0d1737c71", "3c5492779d85", "23897314fbe2"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf", "c283e01480f7"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": ["813fe48569a6"] + } + }, + { + "id": "files-preview-grant-refresh.inner-ok-missing:settled", + "observation": { + "sender": ["25b0d1737c71", "3c5492779d85", "c01a147cb225"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf", "c283e01480f7"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": ["813fe48569a6"] + } + }, + { + "id": "files-preview-grant-refresh.inner-false-string-error:settled", + "observation": { + "sender": ["25b0d1737c71", "3c5492779d85", "68b4cb95d67a"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf", "c283e01480f7"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": ["813fe48569a6"] + } + }, + { + "id": "files-preview-grant-refresh.inner-false-object-error:settled", + "observation": { + "sender": ["25b0d1737c71", "3c5492779d85", "edcd6a3e98cd"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf", "c283e01480f7"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": ["813fe48569a6"] + } + }, + { + "id": "files-preview-grant-refresh.outer-refused:settled", + "observation": { + "sender": ["25b0d1737c71", "3c5492779d85", "b1c3cb621eff"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf", "c283e01480f7"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": ["813fe48569a6"] + } + }, + { + "id": "files-preview-grant-refresh.outer-refused-no-message:settled", + "observation": { + "sender": ["25b0d1737c71", "3c5492779d85", "c727a49c2e15"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf", "c283e01480f7"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": ["813fe48569a6"] + } + }, + { + "id": "files-preview-grant-refresh.method-not-found:settled", + "observation": { + "sender": ["25b0d1737c71", "3c5492779d85", "ca6bf3108851"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf", "c283e01480f7"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": ["813fe48569a6"] + } + }, + { + "id": "files-preview-grant-refresh.transport-rejection:settled", + "observation": { + "sender": ["25b0d1737c71", "3c5492779d85", "ebf2a6ee078d"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf", "c283e01480f7"], + "settlements": { + "load": "a947768bc0ed" + }, + "state": "645c5754be42", + "effects": ["813fe48569a6"] + } + }, + { + "id": "files-preview-grant-refresh.transport-rejection-no-message:settled", + "observation": { + "sender": ["25b0d1737c71", "3c5492779d85", "70356f9cd814"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf", "c283e01480f7"], + "settlements": { + "load": "c7584e82c72f" + }, + "state": "645c5754be42", + "effects": ["813fe48569a6"] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-files.preview-load-files.resolveterminalpath-1.json b/mobile/rpc-foundation/goldens/matrix-files.preview-load-files.resolveterminalpath-1.json new file mode 100644 index 00000000000..c5b0724a1cc --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-files.preview-load-files.resolveterminalpath-1.json @@ -0,0 +1,757 @@ +{ + "operation": "files.preview-load", + "family": "files.preview-load", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "ecdeff2713e454925158dde09782713d76f39455729bb25688a6ffcfff154f30", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "05c972dfc190": { + "name": "files.resolveTerminalPath#1", + "args": [ + { + "name": "method", + "value": "files.resolveTerminalPath" + }, + { + "name": "params", + "value": { + "cwd": "/logs", + "pathText": "run.txt", + "terminal": "terminal-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true + } + } + }, + "15467bba2d60": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "message": "Unable to load preview", + "reconnect": false, + "status": "error" + } + }, + "25b0d1737c71": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "terminal_file_grant_expired", + "message": "Grant expired" + }, + "id": "frame-1", + "ok": false + } + } + }, + "30954e0c83e6": { + "name": "files.resolveTerminalPath#1", + "args": [ + { + "name": "method", + "value": "files.resolveTerminalPath" + }, + { + "name": "params", + "value": { + "cwd": "/logs", + "pathText": "run.txt", + "terminal": "terminal-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-2", + "ok": false + } + } + }, + "3c5492779d85": { + "name": "files.resolveTerminalPath#1", + "args": [ + { + "name": "method", + "value": "files.resolveTerminalPath" + }, + { + "name": "params", + "value": { + "cwd": "/logs", + "pathText": "run.txt", + "terminal": "terminal-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "exists": true, + "isDirectory": false, + "openTarget": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "kind": "absolute-file" + } + } + } + } + }, + "500d95d47092": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "byteLength": 5, + "content": "hello", + "kind": "text", + "status": "ready", + "truncated": false + } + }, + "5f446c109a9a": { + "name": "files.readTerminalArtifact#2", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-2", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "byteLength": 5, + "content": "hello", + "truncated": false + } + } + } + }, + "645c5754be42": { + "preview": "unloaded" + }, + "784ea351e5b2": { + "preview": { + "byteLength": 5, + "content": "hello", + "kind": "text", + "status": "ready", + "truncated": false + } + }, + "7f321cd7152f": { + "name": "files.resolveTerminalPath#1", + "args": [ + { + "name": "method", + "value": "files.resolveTerminalPath" + }, + { + "name": "params", + "value": { + "cwd": "/logs", + "pathText": "run.txt", + "terminal": "terminal-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "813fe48569a6": { + "name": "artifact-source-refreshed", + "value": { + "absolutePath": "/logs/run.txt", + "cwd": "/logs", + "grantId": "grant-2", + "pathText": "run.txt", + "source": "terminalArtifact", + "terminalHandle": "terminal-1", + "worktreeId": "workspace-1" + } + }, + "8ce900375525": { + "name": "files.resolveTerminalPath#1", + "args": [ + { + "name": "method", + "value": "files.resolveTerminalPath" + }, + { + "name": "params", + "value": { + "cwd": "/logs", + "pathText": "run.txt", + "terminal": "terminal-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "9a56ffbdd5bf": { + "name": "files.resolveTerminalPath#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.resolveTerminalPath\",\"params\":{\"worktree\":\"id:workspace-1\",\"pathText\":\"run.txt\",\"cwd\":\"/logs\",\"terminal\":\"terminal-1\"}}" + }, + "a947768bc0ed": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + }, + "ad2583c82bfe": { + "name": "files.resolveTerminalPath#1", + "args": [ + { + "name": "method", + "value": "files.resolveTerminalPath" + }, + { + "name": "params", + "value": { + "cwd": "/logs", + "pathText": "run.txt", + "terminal": "terminal-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-2", + "ok": false + } + } + }, + "c283e01480f7": { + "name": "files.readTerminalArtifact#2", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"files.readTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-2\"}}" + }, + "c469c3b9bfe7": { + "name": "files.resolveTerminalPath#1", + "args": [ + { + "name": "method", + "value": "files.resolveTerminalPath" + }, + { + "name": "params", + "value": { + "cwd": "/logs", + "pathText": "run.txt", + "terminal": "terminal-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "c657a3f0e02b": { + "name": "files.resolveTerminalPath#1", + "args": [ + { + "name": "method", + "value": "files.resolveTerminalPath" + }, + { + "name": "params", + "value": { + "cwd": "/logs", + "pathText": "run.txt", + "terminal": "terminal-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "c7584e82c72f": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + }, + "d9baab0b6b3c": { + "name": "files.resolveTerminalPath#1", + "args": [ + { + "name": "method", + "value": "files.resolveTerminalPath" + }, + { + "name": "params", + "value": { + "cwd": "/logs", + "pathText": "run.txt", + "terminal": "terminal-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "de1ef0907023": { + "name": "files.resolveTerminalPath#1", + "args": [ + { + "name": "method", + "value": "files.resolveTerminalPath" + }, + { + "name": "params", + "value": { + "cwd": "/logs", + "pathText": "run.txt", + "terminal": "terminal-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "e0401d205ea2": { + "name": "files.readTerminalArtifact#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.readTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-1\"}}" + }, + "e81d5596c201": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "efd7ff51072f": { + "name": "files.resolveTerminalPath#1", + "args": [ + { + "name": "method", + "value": "files.resolveTerminalPath" + }, + { + "name": "params", + "value": { + "cwd": "/logs", + "pathText": "run.txt", + "terminal": "terminal-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-2", + "ok": false + } + } + }, + "fba5e3c89244": { + "preview": { + "message": "Unable to load preview", + "reconnect": false, + "status": "error" + } + } + }, + "recording": { + "scenario": "matrix-files.preview-load-files.resolveterminalpath-1", + "checkpoints": [ + { + "id": "files-preview-grant-refresh.prelude:read-pending", + "observation": { + "sender": ["e81d5596c201"], + "payloads": ["e0401d205ea2"], + "settlements": { + "load": "9270aeb7d9c6" + }, + "state": "645c5754be42", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.normal:settled", + "observation": { + "sender": ["25b0d1737c71", "3c5492779d85", "5f446c109a9a"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf", "c283e01480f7"], + "settlements": { + "load": "500d95d47092" + }, + "state": "784ea351e5b2", + "effects": ["813fe48569a6"] + } + }, + { + "id": "files-preview-grant-refresh.result-absent:settled", + "observation": { + "sender": ["25b0d1737c71", "05c972dfc190"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.result-null:settled", + "observation": { + "sender": ["25b0d1737c71", "c469c3b9bfe7"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.inner-ok-missing:settled", + "observation": { + "sender": ["25b0d1737c71", "c657a3f0e02b"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.inner-false-string-error:settled", + "observation": { + "sender": ["25b0d1737c71", "8ce900375525"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.inner-false-object-error:settled", + "observation": { + "sender": ["25b0d1737c71", "d9baab0b6b3c"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.outer-refused:settled", + "observation": { + "sender": ["25b0d1737c71", "ad2583c82bfe"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.outer-refused-no-message:settled", + "observation": { + "sender": ["25b0d1737c71", "30954e0c83e6"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.method-not-found:settled", + "observation": { + "sender": ["25b0d1737c71", "efd7ff51072f"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf"], + "settlements": { + "load": "15467bba2d60" + }, + "state": "fba5e3c89244", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.transport-rejection:settled", + "observation": { + "sender": ["25b0d1737c71", "7f321cd7152f"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf"], + "settlements": { + "load": "a947768bc0ed" + }, + "state": "645c5754be42", + "effects": [] + } + }, + { + "id": "files-preview-grant-refresh.transport-rejection-no-message:settled", + "observation": { + "sender": ["25b0d1737c71", "de1ef0907023"], + "payloads": ["e0401d205ea2", "9a56ffbdd5bf"], + "settlements": { + "load": "c7584e82c72f" + }, + "state": "645c5754be42", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-files.preview-save-files.readterminalartifact-1.json b/mobile/rpc-foundation/goldens/matrix-files.preview-save-files.readterminalartifact-1.json new file mode 100644 index 00000000000..e8073399b83 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-files.preview-save-files.readterminalartifact-1.json @@ -0,0 +1,681 @@ +{ + "operation": "files.preview-save", + "family": "files.preview-save", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "1a4f7dff351be244712bedb8f495c83a531cfbfc5b5923267d1ed46bf2d6d11b", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "139c55987ba6": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true + } + } + }, + "15467bba2d60": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "message": "Unable to load preview", + "reconnect": false, + "status": "error" + } + }, + "54a6055a16b5": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "status": "saved" + } + }, + "5ac141a87b5a": { + "saved": { + "message": "Unable to load preview", + "reconnect": false, + "status": "error" + } + }, + "67427c41b324": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "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 + } + } + } + }, + "68b5d189bcca": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "7500d091ea19": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "7875007ef392": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "7886fcdc8065": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "935100df69e4": { + "saved": "unsaved" + }, + "9d9aa1c01790": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "a3886e3a9791": { + "name": "files.writeTerminalArtifact#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.writeTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-1\",\"content\":\"next\"}}" + }, + "a947768bc0ed": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + }, + "ac130adfeffb": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "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 + } + } + }, + "b3f873eb7d0c": { + "saved": { + "status": "saved" + } + }, + "c7584e82c72f": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + }, + "e0401d205ea2": { + "name": "files.readTerminalArtifact#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.readTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-1\"}}" + }, + "e088aa7f81b8": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "e2791dca552b": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "e391aec81b96": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "byteLength": 4, + "content": "base", + "truncated": false + } + } + } + }, + "e81d5596c201": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "f488aff81e98": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "refused" + } + } + } + } + }, + "recording": { + "scenario": "matrix-files.preview-save-files.readterminalartifact-1", + "checkpoints": [ + { + "id": "files-save-verified.prelude:verify-pending", + "observation": { + "sender": ["e81d5596c201"], + "payloads": ["e0401d205ea2"], + "settlements": { + "save": "9270aeb7d9c6" + }, + "state": "935100df69e4", + "effects": [] + } + }, + { + "id": "files-save-verified.normal:settled", + "observation": { + "sender": ["e391aec81b96", "7875007ef392"], + "payloads": ["e0401d205ea2", "a3886e3a9791"], + "settlements": { + "save": "54a6055a16b5" + }, + "state": "b3f873eb7d0c", + "effects": [] + } + }, + { + "id": "files-save-verified.result-absent:settled", + "observation": { + "sender": ["139c55987ba6"], + "payloads": ["e0401d205ea2"], + "settlements": { + "save": "15467bba2d60" + }, + "state": "5ac141a87b5a", + "effects": [] + } + }, + { + "id": "files-save-verified.result-null:settled", + "observation": { + "sender": ["7500d091ea19"], + "payloads": ["e0401d205ea2"], + "settlements": { + "save": "15467bba2d60" + }, + "state": "5ac141a87b5a", + "effects": [] + } + }, + { + "id": "files-save-verified.inner-ok-missing:settled", + "observation": { + "sender": ["f488aff81e98"], + "payloads": ["e0401d205ea2"], + "settlements": { + "save": "15467bba2d60" + }, + "state": "5ac141a87b5a", + "effects": [] + } + }, + { + "id": "files-save-verified.inner-false-string-error:settled", + "observation": { + "sender": ["e088aa7f81b8"], + "payloads": ["e0401d205ea2"], + "settlements": { + "save": "15467bba2d60" + }, + "state": "5ac141a87b5a", + "effects": [] + } + }, + { + "id": "files-save-verified.inner-false-object-error:settled", + "observation": { + "sender": ["67427c41b324"], + "payloads": ["e0401d205ea2"], + "settlements": { + "save": "15467bba2d60" + }, + "state": "5ac141a87b5a", + "effects": [] + } + }, + { + "id": "files-save-verified.outer-refused:settled", + "observation": { + "sender": ["68b5d189bcca"], + "payloads": ["e0401d205ea2"], + "settlements": { + "save": "15467bba2d60" + }, + "state": "5ac141a87b5a", + "effects": [] + } + }, + { + "id": "files-save-verified.outer-refused-no-message:settled", + "observation": { + "sender": ["e2791dca552b"], + "payloads": ["e0401d205ea2"], + "settlements": { + "save": "15467bba2d60" + }, + "state": "5ac141a87b5a", + "effects": [] + } + }, + { + "id": "files-save-verified.method-not-found:settled", + "observation": { + "sender": ["ac130adfeffb"], + "payloads": ["e0401d205ea2"], + "settlements": { + "save": "15467bba2d60" + }, + "state": "5ac141a87b5a", + "effects": [] + } + }, + { + "id": "files-save-verified.transport-rejection:settled", + "observation": { + "sender": ["7886fcdc8065"], + "payloads": ["e0401d205ea2"], + "settlements": { + "save": "a947768bc0ed" + }, + "state": "935100df69e4", + "effects": [] + } + }, + { + "id": "files-save-verified.transport-rejection-no-message:settled", + "observation": { + "sender": ["9d9aa1c01790"], + "payloads": ["e0401d205ea2"], + "settlements": { + "save": "c7584e82c72f" + }, + "state": "935100df69e4", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-files.preview-save-files.writeterminalartifact-1.json b/mobile/rpc-foundation/goldens/matrix-files.preview-save-files.writeterminalartifact-1.json new file mode 100644 index 00000000000..61bf334c6fa --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-files.preview-save-files.writeterminalartifact-1.json @@ -0,0 +1,691 @@ +{ + "operation": "files.preview-save", + "family": "files.preview-save", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "8d443bda91fe5a1fa74910d525bb2ec40f639109bc71afbd42bccd949b3d463f", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "15467bba2d60": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "message": "Unable to load preview", + "reconnect": false, + "status": "error" + } + }, + "24195166cf4d": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "2e3484ef7995": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-2", + "ok": false + } + } + }, + "3a281590ccf7": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "4db44f048a4d": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-2", + "ok": false + } + } + }, + "54a6055a16b5": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "status": "saved" + } + }, + "5ac141a87b5a": { + "saved": { + "message": "Unable to load preview", + "reconnect": false, + "status": "error" + } + }, + "7875007ef392": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "78be845b88ca": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "82f499ca91c8": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "935100df69e4": { + "saved": "unsaved" + }, + "a1ef4333ebe3": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true + } + } + }, + "a3886e3a9791": { + "name": "files.writeTerminalArtifact#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.writeTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-1\",\"content\":\"next\"}}" + }, + "a947768bc0ed": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + }, + "b3f873eb7d0c": { + "saved": { + "status": "saved" + } + }, + "bddbfe5ee1aa": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "c09d56029b09": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-2", + "ok": false + } + } + }, + "c7584e82c72f": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + }, + "c889a22fe351": { + "name": "files.writeTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.writeTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "content": "next", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "e0401d205ea2": { + "name": "files.readTerminalArtifact#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.readTerminalArtifact\",\"params\":{\"worktree\":\"id:workspace-1\",\"absolutePath\":\"/logs/run.txt\",\"grantId\":\"grant-1\"}}" + }, + "e391aec81b96": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "byteLength": 4, + "content": "base", + "truncated": false + } + } + } + }, + "e81d5596c201": { + "name": "files.readTerminalArtifact#1", + "args": [ + { + "name": "method", + "value": "files.readTerminalArtifact" + }, + { + "name": "params", + "value": { + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + } + }, + "recording": { + "scenario": "matrix-files.preview-save-files.writeterminalartifact-1", + "checkpoints": [ + { + "id": "files-save-verified.prelude:verify-pending", + "observation": { + "sender": ["e81d5596c201"], + "payloads": ["e0401d205ea2"], + "settlements": { + "save": "9270aeb7d9c6" + }, + "state": "935100df69e4", + "effects": [] + } + }, + { + "id": "files-save-verified.normal:settled", + "observation": { + "sender": ["e391aec81b96", "7875007ef392"], + "payloads": ["e0401d205ea2", "a3886e3a9791"], + "settlements": { + "save": "54a6055a16b5" + }, + "state": "b3f873eb7d0c", + "effects": [] + } + }, + { + "id": "files-save-verified.result-absent:settled", + "observation": { + "sender": ["e391aec81b96", "a1ef4333ebe3"], + "payloads": ["e0401d205ea2", "a3886e3a9791"], + "settlements": { + "save": "54a6055a16b5" + }, + "state": "b3f873eb7d0c", + "effects": [] + } + }, + { + "id": "files-save-verified.result-null:settled", + "observation": { + "sender": ["e391aec81b96", "c889a22fe351"], + "payloads": ["e0401d205ea2", "a3886e3a9791"], + "settlements": { + "save": "54a6055a16b5" + }, + "state": "b3f873eb7d0c", + "effects": [] + } + }, + { + "id": "files-save-verified.inner-ok-missing:settled", + "observation": { + "sender": ["e391aec81b96", "78be845b88ca"], + "payloads": ["e0401d205ea2", "a3886e3a9791"], + "settlements": { + "save": "54a6055a16b5" + }, + "state": "b3f873eb7d0c", + "effects": [] + } + }, + { + "id": "files-save-verified.inner-false-string-error:settled", + "observation": { + "sender": ["e391aec81b96", "82f499ca91c8"], + "payloads": ["e0401d205ea2", "a3886e3a9791"], + "settlements": { + "save": "54a6055a16b5" + }, + "state": "b3f873eb7d0c", + "effects": [] + } + }, + { + "id": "files-save-verified.inner-false-object-error:settled", + "observation": { + "sender": ["e391aec81b96", "bddbfe5ee1aa"], + "payloads": ["e0401d205ea2", "a3886e3a9791"], + "settlements": { + "save": "54a6055a16b5" + }, + "state": "b3f873eb7d0c", + "effects": [] + } + }, + { + "id": "files-save-verified.outer-refused:settled", + "observation": { + "sender": ["e391aec81b96", "2e3484ef7995"], + "payloads": ["e0401d205ea2", "a3886e3a9791"], + "settlements": { + "save": "15467bba2d60" + }, + "state": "5ac141a87b5a", + "effects": [] + } + }, + { + "id": "files-save-verified.outer-refused-no-message:settled", + "observation": { + "sender": ["e391aec81b96", "c09d56029b09"], + "payloads": ["e0401d205ea2", "a3886e3a9791"], + "settlements": { + "save": "15467bba2d60" + }, + "state": "5ac141a87b5a", + "effects": [] + } + }, + { + "id": "files-save-verified.method-not-found:settled", + "observation": { + "sender": ["e391aec81b96", "4db44f048a4d"], + "payloads": ["e0401d205ea2", "a3886e3a9791"], + "settlements": { + "save": "15467bba2d60" + }, + "state": "5ac141a87b5a", + "effects": [] + } + }, + { + "id": "files-save-verified.transport-rejection:settled", + "observation": { + "sender": ["e391aec81b96", "3a281590ccf7"], + "payloads": ["e0401d205ea2", "a3886e3a9791"], + "settlements": { + "save": "a947768bc0ed" + }, + "state": "935100df69e4", + "effects": [] + } + }, + { + "id": "files-save-verified.transport-rejection-no-message:settled", + "observation": { + "sender": ["e391aec81b96", "24195166cf4d"], + "payloads": ["e0401d205ea2", "a3886e3a9791"], + "settlements": { + "save": "c7584e82c72f" + }, + "state": "935100df69e4", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-files.tab-doc-files.read-1.json b/mobile/rpc-foundation/goldens/matrix-files.tab-doc-files.read-1.json new file mode 100644 index 00000000000..fdbab858db9 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-files.tab-doc-files.read-1.json @@ -0,0 +1,861 @@ +{ + "operation": "files.tab-doc", + "family": "files.tab-doc", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "65895c028637185238baf4fd4f1297c11f528a289fe8173a41c48dc5a0b37c26", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "02ea3f503180": { + "name": "files.read#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.read\",\"params\":{\"worktree\":\"id:workspace-1\",\"relativePath\":\"docs/readme.md\"}}" + }, + "02ee7655cfac": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "22c63b806ef5": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "3073ceba86bd": { + "diff": { + "kind": "diff", + "lines": [ + { + "kind": "delete", + "oldLineNumber": 1, + "text": "a" + }, + { + "kind": "add", + "newLineNumber": 1, + "text": "b" + } + ], + "status": "ready", + "truncated": false + }, + "image": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + } + }, + "323bf6059754": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "content": "aGk=", + "isImage": true, + "mimeType": "image/png" + } + } + } + }, + "32a7c0ae7918": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "outer refused", + "isRpcDeliveryUnknown": false + } + }, + "4771cbfc0dfc": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "5a33eeedb90f": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "byteLength": { + "$rpc": "undefined" + }, + "content": { + "$rpc": "undefined" + }, + "kind": "file", + "status": "ready", + "truncated": { + "$rpc": "undefined" + } + } + }, + "5c610ebe58ed": { + "name": "files.readPreview#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.readPreview\",\"params\":{\"worktree\":\"id:workspace-1\",\"relativePath\":\"docs/logo.png\"}}" + }, + "65af9a3f5ad4": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "6aca770498a6": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "8595b3c0f792": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "987f853ccbc2": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "9babe9503a83": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "byteLength": 8, + "content": "# readme", + "truncated": false + } + } + } + }, + "a7c7f43265d5": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "TypeError", + "message": "Cannot read properties of null (reading 'content')", + "isRpcDeliveryUnknown": false + } + }, + "a947768bc0ed": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + }, + "ae1baf99acb7": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "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 + } + } + } + }, + "b5a9ffe4c713": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true + } + } + }, + "b5c68b76c498": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "byteLength": 8, + "content": "# readme", + "kind": "file", + "status": "ready", + "truncated": false + } + }, + "b948e8307e81": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "Unknown method", + "isRpcDeliveryUnknown": false + } + }, + "ba9332ae7bb1": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "TypeError", + "message": "Cannot read properties of undefined (reading 'content')", + "isRpcDeliveryUnknown": false + } + }, + "c7584e82c72f": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + }, + "c8fbe8972330": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "kind": "text", + "modifiedContent": "b\n", + "originalContent": "a\n" + } + } + } + }, + "cb1b85f12e0a": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "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 + } + } + }, + "ed33ecdb4e8e": { + "diff": { + "kind": "diff", + "lines": [ + { + "kind": "delete", + "oldLineNumber": 1, + "text": "a" + }, + { + "kind": "add", + "newLineNumber": 1, + "text": "b" + } + ], + "status": "ready", + "truncated": false + }, + "image": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + }, + "text": { + "byteLength": 8, + "content": "# readme", + "kind": "file", + "status": "ready", + "truncated": false + } + }, + "eee847a9d90d": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + } + }, + "f3b516f62081": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": false + } + }, + "fad4ca11a316": { + "name": "git.diff#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"git.diff\",\"params\":{\"worktree\":\"id:workspace-1\",\"filePath\":\"docs/readme.md\",\"staged\":true}}" + }, + "fb58498a8798": { + "diff": { + "kind": "diff", + "lines": [ + { + "kind": "delete", + "oldLineNumber": 1, + "text": "a" + }, + { + "kind": "add", + "newLineNumber": 1, + "text": "b" + } + ], + "status": "ready", + "truncated": false + }, + "image": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + }, + "text": { + "byteLength": { + "$rpc": "undefined" + }, + "content": { + "$rpc": "undefined" + }, + "kind": "file", + "status": "ready", + "truncated": { + "$rpc": "undefined" + } + } + }, + "ffe1c534d459": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "kind": "diff", + "lines": [ + { + "kind": "delete", + "oldLineNumber": 1, + "text": "a" + }, + { + "kind": "add", + "newLineNumber": 1, + "text": "b" + } + ], + "status": "ready", + "truncated": false + } + } + }, + "recording": { + "scenario": "matrix-files.tab-doc-files.read-1", + "checkpoints": [ + { + "id": "files-tab-doc-shapes.normal:settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "ed33ecdb4e8e", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.result-absent:settled", + "observation": { + "sender": ["b5a9ffe4c713", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "ba9332ae7bb1", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "3073ceba86bd", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.result-null:settled", + "observation": { + "sender": ["6aca770498a6", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "a7c7f43265d5", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "3073ceba86bd", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.inner-ok-missing:settled", + "observation": { + "sender": ["8595b3c0f792", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "5a33eeedb90f", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "fb58498a8798", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.inner-false-string-error:settled", + "observation": { + "sender": ["987f853ccbc2", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "5a33eeedb90f", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "fb58498a8798", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.inner-false-object-error:settled", + "observation": { + "sender": ["ae1baf99acb7", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "5a33eeedb90f", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "fb58498a8798", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.outer-refused:settled", + "observation": { + "sender": ["4771cbfc0dfc", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "32a7c0ae7918", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "3073ceba86bd", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.outer-refused-no-message:settled", + "observation": { + "sender": ["02ee7655cfac", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "f3b516f62081", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "3073ceba86bd", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.method-not-found:settled", + "observation": { + "sender": ["cb1b85f12e0a", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b948e8307e81", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "3073ceba86bd", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.transport-rejection:settled", + "observation": { + "sender": ["22c63b806ef5", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "a947768bc0ed", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "3073ceba86bd", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.transport-rejection-no-message:settled", + "observation": { + "sender": ["65af9a3f5ad4", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "c7584e82c72f", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "3073ceba86bd", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-files.tab-doc-files.readpreview-1.json b/mobile/rpc-foundation/goldens/matrix-files.tab-doc-files.readpreview-1.json new file mode 100644 index 00000000000..51458db4a34 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-files.tab-doc-files.readpreview-1.json @@ -0,0 +1,818 @@ +{ + "operation": "files.tab-doc", + "family": "files.tab-doc", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "2ceca0ecd901fd78838fcbdc789cbb6b96f04674b850a0994c7611f5db804915", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "02ea3f503180": { + "name": "files.read#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.read\",\"params\":{\"worktree\":\"id:workspace-1\",\"relativePath\":\"docs/readme.md\"}}" + }, + "0fef03f57c61": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "2e3bb1c16607": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "TypeError", + "message": "Cannot read properties of undefined (reading 'isImage')", + "isRpcDeliveryUnknown": false + } + }, + "323bf6059754": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "content": "aGk=", + "isImage": true, + "mimeType": "image/png" + } + } + } + }, + "32a7c0ae7918": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "outer refused", + "isRpcDeliveryUnknown": false + } + }, + "43465946206b": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "47bde408cf1e": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true + } + } + }, + "5521ad94c331": { + "diff": { + "kind": "diff", + "lines": [ + { + "kind": "delete", + "oldLineNumber": 1, + "text": "a" + }, + { + "kind": "add", + "newLineNumber": 1, + "text": "b" + } + ], + "status": "ready", + "truncated": false + }, + "text": { + "byteLength": 8, + "content": "# readme", + "kind": "file", + "status": "ready", + "truncated": false + } + }, + "5c610ebe58ed": { + "name": "files.readPreview#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.readPreview\",\"params\":{\"worktree\":\"id:workspace-1\",\"relativePath\":\"docs/logo.png\"}}" + }, + "62a16026dfb1": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "63bda5bd024b": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-2", + "ok": false + } + } + }, + "9babe9503a83": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "byteLength": 8, + "content": "# readme", + "truncated": false + } + } + } + }, + "a5ebcad292b7": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "a947768bc0ed": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + }, + "a9fc8a97c98b": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "b5c68b76c498": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "byteLength": 8, + "content": "# readme", + "kind": "file", + "status": "ready", + "truncated": false + } + }, + "b948e8307e81": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "Unknown method", + "isRpcDeliveryUnknown": false + } + }, + "c2ba83cacd09": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-2", + "ok": false + } + } + }, + "c38abcaf69dd": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "binary_file", + "isRpcDeliveryUnknown": false + } + }, + "c47f8da1be2f": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "c7584e82c72f": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + }, + "c8fbe8972330": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "kind": "text", + "modifiedContent": "b\n", + "originalContent": "a\n" + } + } + } + }, + "d6234620430f": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "TypeError", + "message": "Cannot read properties of null (reading 'isImage')", + "isRpcDeliveryUnknown": false + } + }, + "ed33ecdb4e8e": { + "diff": { + "kind": "diff", + "lines": [ + { + "kind": "delete", + "oldLineNumber": 1, + "text": "a" + }, + { + "kind": "add", + "newLineNumber": 1, + "text": "b" + } + ], + "status": "ready", + "truncated": false + }, + "image": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + }, + "text": { + "byteLength": 8, + "content": "# readme", + "kind": "file", + "status": "ready", + "truncated": false + } + }, + "eee847a9d90d": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + } + }, + "f3b516f62081": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": false + } + }, + "f53a3ae32692": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-2", + "ok": false + } + } + }, + "fad4ca11a316": { + "name": "git.diff#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"git.diff\",\"params\":{\"worktree\":\"id:workspace-1\",\"filePath\":\"docs/readme.md\",\"staged\":true}}" + }, + "ffe1c534d459": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "kind": "diff", + "lines": [ + { + "kind": "delete", + "oldLineNumber": 1, + "text": "a" + }, + { + "kind": "add", + "newLineNumber": 1, + "text": "b" + } + ], + "status": "ready", + "truncated": false + } + } + }, + "recording": { + "scenario": "matrix-files.tab-doc-files.readpreview-1", + "checkpoints": [ + { + "id": "files-tab-doc-shapes.normal:settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "ed33ecdb4e8e", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.result-absent:settled", + "observation": { + "sender": ["9babe9503a83", "47bde408cf1e", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "2e3bb1c16607", + "diff": "ffe1c534d459" + }, + "state": "5521ad94c331", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.result-null:settled", + "observation": { + "sender": ["9babe9503a83", "0fef03f57c61", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "d6234620430f", + "diff": "ffe1c534d459" + }, + "state": "5521ad94c331", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.inner-ok-missing:settled", + "observation": { + "sender": ["9babe9503a83", "c47f8da1be2f", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "c38abcaf69dd", + "diff": "ffe1c534d459" + }, + "state": "5521ad94c331", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.inner-false-string-error:settled", + "observation": { + "sender": ["9babe9503a83", "a9fc8a97c98b", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "c38abcaf69dd", + "diff": "ffe1c534d459" + }, + "state": "5521ad94c331", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.inner-false-object-error:settled", + "observation": { + "sender": ["9babe9503a83", "62a16026dfb1", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "c38abcaf69dd", + "diff": "ffe1c534d459" + }, + "state": "5521ad94c331", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.outer-refused:settled", + "observation": { + "sender": ["9babe9503a83", "c2ba83cacd09", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "32a7c0ae7918", + "diff": "ffe1c534d459" + }, + "state": "5521ad94c331", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.outer-refused-no-message:settled", + "observation": { + "sender": ["9babe9503a83", "63bda5bd024b", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "f3b516f62081", + "diff": "ffe1c534d459" + }, + "state": "5521ad94c331", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.method-not-found:settled", + "observation": { + "sender": ["9babe9503a83", "f53a3ae32692", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "b948e8307e81", + "diff": "ffe1c534d459" + }, + "state": "5521ad94c331", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.transport-rejection:settled", + "observation": { + "sender": ["9babe9503a83", "a5ebcad292b7", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "a947768bc0ed", + "diff": "ffe1c534d459" + }, + "state": "5521ad94c331", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.transport-rejection-no-message:settled", + "observation": { + "sender": ["9babe9503a83", "43465946206b", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "c7584e82c72f", + "diff": "ffe1c534d459" + }, + "state": "5521ad94c331", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-files.tab-doc-git.diff-1.json b/mobile/rpc-foundation/goldens/matrix-files.tab-doc-git.diff-1.json new file mode 100644 index 00000000000..7bb502e9db7 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-files.tab-doc-git.diff-1.json @@ -0,0 +1,816 @@ +{ + "operation": "files.tab-doc", + "family": "files.tab-doc", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "b93fc8b6f1ece041acaa8cc5699852085e67d7e2f39db13145e483f854ea3309", + "scenarioSha256": "c4db2424b8a35fd97b3fea00b4dd91a3c8d50c6fb73795811ef5402e3d14f8df", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "02ea3f503180": { + "name": "files.read#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"files.read\",\"params\":{\"worktree\":\"id:workspace-1\",\"relativePath\":\"docs/readme.md\"}}" + }, + "0aa81de503dc": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "0ddde941c38a": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-3", + "ok": false + } + } + }, + "0fa28155e34e": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-3", + "ok": false + } + } + }, + "323bf6059754": { + "name": "files.readPreview#1", + "args": [ + { + "name": "method", + "value": "files.readPreview" + }, + { + "name": "params", + "value": { + "relativePath": "docs/logo.png", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "content": "aGk=", + "isImage": true, + "mimeType": "image/png" + } + } + } + }, + "32a7c0ae7918": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "outer refused", + "isRpcDeliveryUnknown": false + } + }, + "3a9e5c87d18b": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "TypeError", + "message": "Cannot read properties of undefined (reading 'kind')", + "isRpcDeliveryUnknown": false + } + }, + "3eca7222b2d0": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-3", + "ok": false + } + } + }, + "5225d2d0d430": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "559c313a79f9": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "TypeError", + "message": "Cannot read properties of null (reading 'kind')", + "isRpcDeliveryUnknown": false + } + }, + "5c610ebe58ed": { + "name": "files.readPreview#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"files.readPreview\",\"params\":{\"worktree\":\"id:workspace-1\",\"relativePath\":\"docs/logo.png\"}}" + }, + "6f5e5f7888b7": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "9babe9503a83": { + "name": "files.read#1", + "args": [ + { + "name": "method", + "value": "files.read" + }, + { + "name": "params", + "value": { + "relativePath": "docs/readme.md", + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "byteLength": 8, + "content": "# readme", + "truncated": false + } + } + } + }, + "9cf9915b1ff3": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "a947768bc0ed": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + }, + "af88d9765fd0": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "b5c68b76c498": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "byteLength": 8, + "content": "# readme", + "kind": "file", + "status": "ready", + "truncated": false + } + }, + "b948e8307e81": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "Unknown method", + "isRpcDeliveryUnknown": false + } + }, + "c38abcaf69dd": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "binary_file", + "isRpcDeliveryUnknown": false + } + }, + "c7584e82c72f": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + }, + "c8fbe8972330": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "kind": "text", + "modifiedContent": "b\n", + "originalContent": "a\n" + } + } + } + }, + "e3995cc146f1": { + "image": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + }, + "text": { + "byteLength": 8, + "content": "# readme", + "kind": "file", + "status": "ready", + "truncated": false + } + }, + "e56bb4eec9ad": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true + } + } + }, + "ed33ecdb4e8e": { + "diff": { + "kind": "diff", + "lines": [ + { + "kind": "delete", + "oldLineNumber": 1, + "text": "a" + }, + { + "kind": "add", + "newLineNumber": 1, + "text": "b" + } + ], + "status": "ready", + "truncated": false + }, + "image": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + }, + "text": { + "byteLength": 8, + "content": "# readme", + "kind": "file", + "status": "ready", + "truncated": false + } + }, + "eee847a9d90d": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "dataUri": "data:image/png;base64,aGk=", + "kind": "image", + "status": "ready" + } + }, + "f3b516f62081": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": false + } + }, + "fad4ca11a316": { + "name": "git.diff#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"git.diff\",\"params\":{\"worktree\":\"id:workspace-1\",\"filePath\":\"docs/readme.md\",\"staged\":true}}" + }, + "fdb82a72967a": { + "name": "git.diff#1", + "args": [ + { + "name": "method", + "value": "git.diff" + }, + { + "name": "params", + "value": { + "filePath": "docs/readme.md", + "staged": true, + "worktree": "id:workspace-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "ffe1c534d459": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "kind": "diff", + "lines": [ + { + "kind": "delete", + "oldLineNumber": 1, + "text": "a" + }, + { + "kind": "add", + "newLineNumber": 1, + "text": "b" + } + ], + "status": "ready", + "truncated": false + } + } + }, + "recording": { + "scenario": "matrix-files.tab-doc-git.diff-1", + "checkpoints": [ + { + "id": "files-tab-doc-shapes.normal:settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "c8fbe8972330"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "ffe1c534d459" + }, + "state": "ed33ecdb4e8e", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.result-absent:settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "e56bb4eec9ad"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "3a9e5c87d18b" + }, + "state": "e3995cc146f1", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.result-null:settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "0aa81de503dc"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "559c313a79f9" + }, + "state": "e3995cc146f1", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.inner-ok-missing:settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "af88d9765fd0"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "c38abcaf69dd" + }, + "state": "e3995cc146f1", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.inner-false-string-error:settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "6f5e5f7888b7"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "c38abcaf69dd" + }, + "state": "e3995cc146f1", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.inner-false-object-error:settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "fdb82a72967a"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "c38abcaf69dd" + }, + "state": "e3995cc146f1", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.outer-refused:settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "0fa28155e34e"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "32a7c0ae7918" + }, + "state": "e3995cc146f1", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.outer-refused-no-message:settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "3eca7222b2d0"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "f3b516f62081" + }, + "state": "e3995cc146f1", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.method-not-found:settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "0ddde941c38a"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "b948e8307e81" + }, + "state": "e3995cc146f1", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.transport-rejection:settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "9cf9915b1ff3"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "a947768bc0ed" + }, + "state": "e3995cc146f1", + "effects": [] + } + }, + { + "id": "files-tab-doc-shapes.transport-rejection-no-message:settled", + "observation": { + "sender": ["9babe9503a83", "323bf6059754", "5225d2d0d430"], + "payloads": ["02ea3f503180", "5c610ebe58ed", "fad4ca11a316"], + "settlements": { + "text": "b5c68b76c498", + "image": "eee847a9d90d", + "diff": "c7584e82c72f" + }, + "state": "e3995cc146f1", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-home.host-stats-stats.summary-1.json b/mobile/rpc-foundation/goldens/matrix-home.host-stats-stats.summary-1.json new file mode 100644 index 00000000000..3524680c22e --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-home.host-stats-stats.summary-1.json @@ -0,0 +1,656 @@ +{ + "operation": "home.host-stats", + "family": "home.host-stats", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b", + "scenarioSha256": "5518e08c1b20f0ddd4cb6bc81ff9af032b1a38daf24f3d3497bac5df8b2d0ec5", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "003f84d10dd0": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "0632d58191fb": { + "name": "stats", + "value": { + "host-1": { + "activeWorktrees": 1, + "totalWorktrees": 3 + } + } + }, + "0ebcc6f6a4cb": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "activeWorktrees": 1, + "totalWorktrees": 3 + } + } + } + }, + "2a8c0c9ced05": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "2f0d38ebf67c": { + "name": "stats", + "value": { + "host-1": { + "$rpc": "undefined" + } + } + }, + "44136fa355b3": {}, + "556edbbc8712": { + "host-1": { + "$rpc": "null" + } + }, + "5d85cea3ab32": { + "name": "stats", + "value": { + "host-1": { + "error": "inner refused", + "ok": false + } + } + }, + "6fe0cca6ed2a": { + "name": "stats", + "value": { + "host-1": { + "error": "refused" + } + } + }, + "7b564b8fe22e": { + "name": "stats", + "value": { + "host-1": { + "$rpc": "null" + } + } + }, + "7bf81b1e94c5": { + "name": "stats.summary#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"stats.summary\"}" + }, + "9a84a7559023": { + "host-1": { + "activeWorktrees": 1, + "totalWorktrees": 3 + } + }, + "9b2c7b6a4f74": { + "name": "stats", + "value": { + "host-1": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + }, + "9c34abfa17e7": { + "host-1": { + "error": { + "message": "inner refused" + }, + "ok": false + } + }, + "9e3e7d14abf9": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "a392ac528c2b": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "b474d2a02a6a": { + "host-1": { + "error": "refused" + } + }, + "bf78e405c5d4": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "c3fad9087af1": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "c5bfd5f18460": { + "host-1": { + "$rpc": "undefined" + } + }, + "dc03021bee85": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "e05986a4b6e2": { + "host-1": { + "error": "inner refused", + "ok": false + } + }, + "e180f1e7839f": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true + } + } + }, + "e20353973dc1": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "f9b87a5a7a70": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "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 + } + } + }, + "fa16031454a3": { + "name": "stats.summary#1", + "args": [ + { + "name": "method", + "value": "stats.summary" + }, + { + "name": "params", + "value": { + "$rpc": "undefined" + } + }, + { + "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-home.host-stats-stats.summary-1", + "checkpoints": [ + { + "id": "home-host-stats.prelude:stats-pending", + "observation": { + "sender": ["a392ac528c2b"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "44136fa355b3", + "effects": [] + } + }, + { + "id": "home-host-stats.normal:settled", + "observation": { + "sender": ["0ebcc6f6a4cb"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "9a84a7559023", + "effects": ["0632d58191fb"] + } + }, + { + "id": "home-host-stats.result-absent:settled", + "observation": { + "sender": ["e180f1e7839f"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "c5bfd5f18460", + "effects": ["2f0d38ebf67c"] + } + }, + { + "id": "home-host-stats.result-null:settled", + "observation": { + "sender": ["c3fad9087af1"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "556edbbc8712", + "effects": ["7b564b8fe22e"] + } + }, + { + "id": "home-host-stats.inner-ok-missing:settled", + "observation": { + "sender": ["2a8c0c9ced05"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "b474d2a02a6a", + "effects": ["6fe0cca6ed2a"] + } + }, + { + "id": "home-host-stats.inner-false-string-error:settled", + "observation": { + "sender": ["003f84d10dd0"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "e05986a4b6e2", + "effects": ["5d85cea3ab32"] + } + }, + { + "id": "home-host-stats.inner-false-object-error:settled", + "observation": { + "sender": ["fa16031454a3"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "9c34abfa17e7", + "effects": ["9b2c7b6a4f74"] + } + }, + { + "id": "home-host-stats.outer-refused:settled", + "observation": { + "sender": ["9e3e7d14abf9"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "44136fa355b3", + "effects": [] + } + }, + { + "id": "home-host-stats.outer-refused-no-message:settled", + "observation": { + "sender": ["dc03021bee85"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "44136fa355b3", + "effects": [] + } + }, + { + "id": "home-host-stats.method-not-found:settled", + "observation": { + "sender": ["f9b87a5a7a70"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "44136fa355b3", + "effects": [] + } + }, + { + "id": "home-host-stats.transport-rejection:settled", + "observation": { + "sender": ["bf78e405c5d4"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "44136fa355b3", + "effects": [] + } + }, + { + "id": "home-host-stats.transport-rejection-no-message:settled", + "observation": { + "sender": ["e20353973dc1"], + "payloads": ["7bf81b1e94c5"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "44136fa355b3", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-host.view-settings-ui.get-1.json b/mobile/rpc-foundation/goldens/matrix-host.view-settings-ui.get-1.json new file mode 100644 index 00000000000..95587f33b4c --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-host.view-settings-ui.get-1.json @@ -0,0 +1,779 @@ +{ + "operation": "host.view-settings", + "family": "host.view-settings", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b", + "scenarioSha256": "a9a3191e2e8c36870ce2769a7bb972813f435267fdc6ed9e42632a57a227bbd6", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0039f2221403": { + "name": "ui.get#1", + "args": [ + { + "name": "method", + "value": "ui.get" + }, + { + "name": "params", + "value": { + "$rpc": "absent" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "114056cffd39": { + "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": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-1", + "ok": false + } + } + }, + "1308c5012cf9": { + "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": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "17aa61c35dcf": { + "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-1", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "292b632037a0": { + "name": "ui.set#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"ui.set\",\"params\":{\"sortBy\":\"name\"}}" + }, + "3059ce80d86a": { + "name": "collapsedGroups", + "value": [] + }, + "34925f64c9a6": { + "name": "sortMode", + "value": "name" + }, + "3650379e5c37": { + "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": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "5907841fc56d": { + "name": "ui.get#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"ui.get\"}" + }, + "5fbdd64c75bc": { + "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 + } + }, + "61275c3082ca": { + "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-1", + "ok": true + } + } + }, + "757d36f7d7c1": { + "name": "ui.get#1", + "args": [ + { + "name": "method", + "value": "ui.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 + } + } + }, + "78f2fbcd0185": { + "name": "ui.set#1", + "args": [ + { + "name": "method", + "value": "ui.set" + }, + { + "name": "params", + "value": { + "sortBy": "name" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "7eaddd04bcdd": { + "name": "workspaceStatuses", + "value": [] + }, + "8ab3467032ef": { + "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-1", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "9527461faeb1": { + "name": "filters", + "value": { + "alwaysShowDefaultBranch": true, + "filterRepoIds": [], + "hideDefaultBranch": false, + "hideSleeping": true + } + }, + "96e59623cbb8": { + "name": "groupMode", + "value": "none" + }, + "993945d30ef2": { + "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-1", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "9a285e681215": { + "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-1", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "9d2d4e824476": { + "collapsed": [], + "filters": { + "alwaysShowDefaultBranch": true, + "filterRepoIds": [], + "hideDefaultBranch": false, + "hideSleeping": false + }, + "groupMode": "none", + "sortMode": "name", + "statuses": [] + }, + "a0a3277ca732": { + "name": "filters", + "value": { + "alwaysShowDefaultBranch": true, + "filterRepoIds": [], + "hideDefaultBranch": false, + "hideSleeping": false + } + }, + "a424515cabc9": { + "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-1", + "ok": true, + "result": { + "ui": { + "groupBy": "repo", + "hideSleepingWorkspaces": true, + "sortBy": "name" + } + } + } + } + }, + "ba2035345a68": { + "collapsed": [], + "filters": { + "alwaysShowDefaultBranch": true, + "filterRepoIds": [], + "hideDefaultBranch": false, + "hideSleeping": true + }, + "groupMode": "repo", + "sortMode": "name", + "statuses": [] + }, + "bbdab1a7d122": { + "collapsed": [], + "filters": { + "alwaysShowDefaultBranch": true, + "filterRepoIds": [], + "hideDefaultBranch": false, + "hideSleeping": false + }, + "groupMode": "none", + "sortMode": "recent", + "statuses": [] + }, + "e9a3acf203c6": { + "name": "groupMode", + "value": "repo" + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "matrix-host.view-settings-ui.get-1", + "checkpoints": [ + { + "id": "host-view-settings-sync.prelude:ui-pending", + "observation": { + "sender": ["5fbdd64c75bc"], + "payloads": ["5907841fc56d"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "9270aeb7d9c6" + }, + "state": "bbdab1a7d122", + "effects": [] + } + }, + { + "id": "host-view-settings-sync.normal:settled", + "observation": { + "sender": ["a424515cabc9", "78f2fbcd0185"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "ba2035345a68", + "effects": [ + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1", + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1" + ] + } + }, + { + "id": "host-view-settings-sync.result-absent:settled", + "observation": { + "sender": ["61275c3082ca", "78f2fbcd0185"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "9d2d4e824476", + "effects": [ + "96e59623cbb8", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "a0a3277ca732" + ] + } + }, + { + "id": "host-view-settings-sync.result-null:settled", + "observation": { + "sender": ["993945d30ef2", "78f2fbcd0185"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "9d2d4e824476", + "effects": [ + "96e59623cbb8", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "a0a3277ca732" + ] + } + }, + { + "id": "host-view-settings-sync.inner-ok-missing:settled", + "observation": { + "sender": ["9a285e681215", "78f2fbcd0185"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "9d2d4e824476", + "effects": [ + "96e59623cbb8", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "a0a3277ca732" + ] + } + }, + { + "id": "host-view-settings-sync.inner-false-string-error:settled", + "observation": { + "sender": ["17aa61c35dcf", "78f2fbcd0185"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "9d2d4e824476", + "effects": [ + "96e59623cbb8", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "a0a3277ca732" + ] + } + }, + { + "id": "host-view-settings-sync.inner-false-object-error:settled", + "observation": { + "sender": ["8ab3467032ef", "78f2fbcd0185"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "9d2d4e824476", + "effects": [ + "96e59623cbb8", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "a0a3277ca732" + ] + } + }, + { + "id": "host-view-settings-sync.outer-refused:settled", + "observation": { + "sender": ["1308c5012cf9", "78f2fbcd0185"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "9d2d4e824476", + "effects": [ + "96e59623cbb8", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "a0a3277ca732" + ] + } + }, + { + "id": "host-view-settings-sync.outer-refused-no-message:settled", + "observation": { + "sender": ["3650379e5c37", "78f2fbcd0185"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "9d2d4e824476", + "effects": [ + "96e59623cbb8", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "a0a3277ca732" + ] + } + }, + { + "id": "host-view-settings-sync.method-not-found:settled", + "observation": { + "sender": ["114056cffd39", "78f2fbcd0185"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "9d2d4e824476", + "effects": [ + "96e59623cbb8", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "a0a3277ca732" + ] + } + }, + { + "id": "host-view-settings-sync.transport-rejection:settled", + "observation": { + "sender": ["757d36f7d7c1", "78f2fbcd0185"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "9d2d4e824476", + "effects": [ + "96e59623cbb8", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "a0a3277ca732" + ] + } + }, + { + "id": "host-view-settings-sync.transport-rejection-no-message:settled", + "observation": { + "sender": ["0039f2221403", "78f2fbcd0185"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "9d2d4e824476", + "effects": [ + "96e59623cbb8", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "a0a3277ca732" + ] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-host.view-settings-ui.set-1.json b/mobile/rpc-foundation/goldens/matrix-host.view-settings-ui.set-1.json new file mode 100644 index 00000000000..94dcec7f6c4 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-host.view-settings-ui.set-1.json @@ -0,0 +1,804 @@ +{ + "operation": "host.view-settings", + "family": "host.view-settings", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "a9e0780298a1443664e7ae02056168aa34d67556c9c056d51a82c7b4a73ad35b", + "scenarioSha256": "30cbeff90a845ab5dd576e302156e859338357b608e87e9fadeddf18ae93d9ca", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "0658e20f47f5": { + "name": "ui.set#1", + "args": [ + { + "name": "method", + "value": "ui.set" + }, + { + "name": "params", + "value": { + "sortBy": "name" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-2", + "ok": false + } + } + }, + "25d97d355299": { + "name": "ui.set#1", + "args": [ + { + "name": "method", + "value": "ui.set" + }, + { + "name": "params", + "value": { + "sortBy": "name" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "292b632037a0": { + "name": "ui.set#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"ui.set\",\"params\":{\"sortBy\":\"name\"}}" + }, + "3059ce80d86a": { + "name": "collapsedGroups", + "value": [] + }, + "344b9ddf6cfb": { + "name": "ui.set#1", + "args": [ + { + "name": "method", + "value": "ui.set" + }, + { + "name": "params", + "value": { + "sortBy": "name" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "34925f64c9a6": { + "name": "sortMode", + "value": "name" + }, + "44e91172f4a0": { + "name": "ui.set#1", + "args": [ + { + "name": "method", + "value": "ui.set" + }, + { + "name": "params", + "value": { + "sortBy": "name" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "53a6789707e6": { + "name": "ui.set#1", + "args": [ + { + "name": "method", + "value": "ui.set" + }, + { + "name": "params", + "value": { + "sortBy": "name" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-2", + "ok": false + } + } + }, + "5907841fc56d": { + "name": "ui.get#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"ui.get\"}" + }, + "5fbdd64c75bc": { + "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 + } + }, + "733b56879f90": { + "name": "ui.set#1", + "args": [ + { + "name": "method", + "value": "ui.set" + }, + { + "name": "params", + "value": { + "sortBy": "name" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true + } + } + }, + "78f2fbcd0185": { + "name": "ui.set#1", + "args": [ + { + "name": "method", + "value": "ui.set" + }, + { + "name": "params", + "value": { + "sortBy": "name" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "7eaddd04bcdd": { + "name": "workspaceStatuses", + "value": [] + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "9527461faeb1": { + "name": "filters", + "value": { + "alwaysShowDefaultBranch": true, + "filterRepoIds": [], + "hideDefaultBranch": false, + "hideSleeping": true + } + }, + "a234a06a4465": { + "name": "ui.set#1", + "args": [ + { + "name": "method", + "value": "ui.set" + }, + { + "name": "params", + "value": { + "sortBy": "name" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "a424515cabc9": { + "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-1", + "ok": true, + "result": { + "ui": { + "groupBy": "repo", + "hideSleepingWorkspaces": true, + "sortBy": "name" + } + } + } + } + }, + "ba2035345a68": { + "collapsed": [], + "filters": { + "alwaysShowDefaultBranch": true, + "filterRepoIds": [], + "hideDefaultBranch": false, + "hideSleeping": true + }, + "groupMode": "repo", + "sortMode": "name", + "statuses": [] + }, + "bbdab1a7d122": { + "collapsed": [], + "filters": { + "alwaysShowDefaultBranch": true, + "filterRepoIds": [], + "hideDefaultBranch": false, + "hideSleeping": false + }, + "groupMode": "none", + "sortMode": "recent", + "statuses": [] + }, + "c6e108d0fcc5": { + "name": "ui.set#1", + "args": [ + { + "name": "method", + "value": "ui.set" + }, + { + "name": "params", + "value": { + "sortBy": "name" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "d991b0c4e961": { + "name": "ui.set#1", + "args": [ + { + "name": "method", + "value": "ui.set" + }, + { + "name": "params", + "value": { + "sortBy": "name" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "e9a3acf203c6": { + "name": "groupMode", + "value": "repo" + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "fa3d32a591e8": { + "name": "ui.set#1", + "args": [ + { + "name": "method", + "value": "ui.set" + }, + { + "name": "params", + "value": { + "sortBy": "name" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-2", + "ok": false + } + } + } + }, + "recording": { + "scenario": "matrix-host.view-settings-ui.set-1", + "checkpoints": [ + { + "id": "host-view-settings-sync.prelude:ui-pending", + "observation": { + "sender": ["5fbdd64c75bc"], + "payloads": ["5907841fc56d"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "9270aeb7d9c6" + }, + "state": "bbdab1a7d122", + "effects": [] + } + }, + { + "id": "host-view-settings-sync.normal:settled", + "observation": { + "sender": ["a424515cabc9", "78f2fbcd0185"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "ba2035345a68", + "effects": [ + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1", + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1" + ] + } + }, + { + "id": "host-view-settings-sync.result-absent:settled", + "observation": { + "sender": ["a424515cabc9", "733b56879f90"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "ba2035345a68", + "effects": [ + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1", + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1" + ] + } + }, + { + "id": "host-view-settings-sync.result-null:settled", + "observation": { + "sender": ["a424515cabc9", "d991b0c4e961"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "ba2035345a68", + "effects": [ + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1", + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1" + ] + } + }, + { + "id": "host-view-settings-sync.inner-ok-missing:settled", + "observation": { + "sender": ["a424515cabc9", "a234a06a4465"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "ba2035345a68", + "effects": [ + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1", + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1" + ] + } + }, + { + "id": "host-view-settings-sync.inner-false-string-error:settled", + "observation": { + "sender": ["a424515cabc9", "344b9ddf6cfb"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "ba2035345a68", + "effects": [ + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1", + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1" + ] + } + }, + { + "id": "host-view-settings-sync.inner-false-object-error:settled", + "observation": { + "sender": ["a424515cabc9", "c6e108d0fcc5"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "ba2035345a68", + "effects": [ + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1", + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1" + ] + } + }, + { + "id": "host-view-settings-sync.outer-refused:settled", + "observation": { + "sender": ["a424515cabc9", "fa3d32a591e8"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "ba2035345a68", + "effects": [ + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1", + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1" + ] + } + }, + { + "id": "host-view-settings-sync.outer-refused-no-message:settled", + "observation": { + "sender": ["a424515cabc9", "0658e20f47f5"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "ba2035345a68", + "effects": [ + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1", + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1" + ] + } + }, + { + "id": "host-view-settings-sync.method-not-found:settled", + "observation": { + "sender": ["a424515cabc9", "53a6789707e6"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "ba2035345a68", + "effects": [ + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1", + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1" + ] + } + }, + { + "id": "host-view-settings-sync.transport-rejection:settled", + "observation": { + "sender": ["a424515cabc9", "44e91172f4a0"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "ba2035345a68", + "effects": [ + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1", + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1" + ] + } + }, + { + "id": "host-view-settings-sync.transport-rejection-no-message:settled", + "observation": { + "sender": ["a424515cabc9", "25d97d355299"], + "payloads": ["5907841fc56d", "292b632037a0"], + "settlements": { + "mount": "eb79a9b3682a", + "sync": "eb79a9b3682a", + "sort": "eb79a9b3682a" + }, + "state": "ba2035345a68", + "effects": [ + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1", + "e9a3acf203c6", + "34925f64c9a6", + "7eaddd04bcdd", + "3059ce80d86a", + "9527461faeb1" + ] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-host.worktree-actions-worktree.activate-1.json b/mobile/rpc-foundation/goldens/matrix-host.worktree-actions-worktree.activate-1.json new file mode 100644 index 00000000000..f779c166b27 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-host.worktree-actions-worktree.activate-1.json @@ -0,0 +1,1158 @@ +{ + "operation": "host.worktree-actions", + "family": "host.worktree-actions", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639", + "scenarioSha256": "7e842584620018d5ec5560711d63a472302e8da80cfe65dfcd2952aebb509af2", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "04938673cbf5": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "0ebfc1859f18": { + "name": "pinnedIds", + "value": ["wt-1"] + }, + "2b635c2a4fbb": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "2d7fff77e4e1": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "2d8ad3ab13bb": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true + } + } + }, + "2eb4a9090f6f": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "403256b7ebef": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "4caf7515e224": { + "name": "worktree.set#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.set\",\"params\":{\"worktree\":\"id:wt-1\",\"isPinned\":true}}" + }, + "56b6d4fb8c56": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "5c186d67b84c": { + "name": "lastKnownWorktrees", + "value": [] + }, + "69d698d4f352": { + "name": "worktree.rm#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.rm\",\"params\":{\"worktree\":\"id:wt-1\",\"force\":true}}" + }, + "6cfdae6737f2": { + "name": "lastKnownWorktrees", + "value": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "6e959a9dd70e": { + "confirmRemoveHost": false, + "lastKnownWorktrees": [], + "optimisticActiveWorktreeIdentity": "|wt-1", + "pinnedIds": ["wt-1"], + "routeActionState": {}, + "worktrees": [] + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "9a9b0d6699b2": { + "confirmRemoveHost": false, + "lastKnownWorktrees": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ], + "optimisticActiveWorktreeIdentity": { + "$rpc": "null" + }, + "pinnedIds": ["wt-1"], + "routeActionState": {}, + "worktrees": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "a0393e57105c": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "b1509905fc66": { + "name": "optimisticActiveWorktreeIdentity", + "value": "|wt-1" + }, + "bea1b89d2581": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-2", + "ok": false + } + } + }, + "bf2b36bda2d2": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "c3eecb0c6e96": { + "name": "worktree.activate#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.activate\",\"params\":{\"worktree\":\"id:wt-1\",\"notifyClients\":false,\"navigation\":\"caller\"}}" + }, + "cbf8280fdbe7": { + "name": "worktrees", + "value": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "d440bd87d1ce": { + "name": "worktrees", + "value": [] + }, + "d4d67a091d31": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-2", + "ok": false + } + } + }, + "db04b3f07cf4": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "e3e3c397a66a": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "ef3b6a5ee1f2": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "f7f6b21128d9": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-2", + "ok": false + } + } + } + }, + "recording": { + "scenario": "matrix-host.worktree-actions-worktree.activate-1", + "checkpoints": [ + { + "id": "host-worktree-actions-pin-open-delete.prelude:pin-optimistic", + "observation": { + "sender": ["bf2b36bda2d2"], + "payloads": ["4caf7515e224"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a" + }, + "state": "9a9b0d6699b2", + "effects": ["cbf8280fdbe7", "6cfdae6737f2", "0ebfc1859f18"] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.normal:delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.normal:settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.result-absent:delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "2d8ad3ab13bb", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.result-absent:settled", + "observation": { + "sender": ["56b6d4fb8c56", "2d8ad3ab13bb", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.result-null:delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "ef3b6a5ee1f2", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.result-null:settled", + "observation": { + "sender": ["56b6d4fb8c56", "ef3b6a5ee1f2", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-ok-missing:delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "2eb4a9090f6f", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-ok-missing:settled", + "observation": { + "sender": ["56b6d4fb8c56", "2eb4a9090f6f", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-false-string-error:delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "db04b3f07cf4", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-false-string-error:settled", + "observation": { + "sender": ["56b6d4fb8c56", "db04b3f07cf4", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-false-object-error:delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "403256b7ebef", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-false-object-error:settled", + "observation": { + "sender": ["56b6d4fb8c56", "403256b7ebef", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.outer-refused:delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "d4d67a091d31", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.outer-refused:settled", + "observation": { + "sender": ["56b6d4fb8c56", "d4d67a091d31", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.outer-refused-no-message:delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "bea1b89d2581", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.outer-refused-no-message:settled", + "observation": { + "sender": ["56b6d4fb8c56", "bea1b89d2581", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.method-not-found:delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "f7f6b21128d9", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.method-not-found:settled", + "observation": { + "sender": ["56b6d4fb8c56", "f7f6b21128d9", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.transport-rejection:delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "2d7fff77e4e1", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.transport-rejection:settled", + "observation": { + "sender": ["56b6d4fb8c56", "2d7fff77e4e1", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.transport-rejection-no-message:delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "a0393e57105c", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.transport-rejection-no-message:settled", + "observation": { + "sender": ["56b6d4fb8c56", "a0393e57105c", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-host.worktree-actions-worktree.rm-1.json b/mobile/rpc-foundation/goldens/matrix-host.worktree-actions-worktree.rm-1.json new file mode 100644 index 00000000000..7ca72bac4ca --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-host.worktree-actions-worktree.rm-1.json @@ -0,0 +1,1078 @@ +{ + "operation": "host.worktree-actions", + "family": "host.worktree-actions", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639", + "scenarioSha256": "c47656a4ca21762e4b5a247ddf9a96efb746bec81e942ffa308a774bab1449e2", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "04938673cbf5": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "064a538f6c1c": { + "confirmRemoveHost": false, + "lastKnownWorktrees": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": false, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ], + "optimisticActiveWorktreeIdentity": "|wt-1", + "pinnedIds": ["wt-1"], + "routeActionState": {}, + "worktrees": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": false, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "0ebfc1859f18": { + "name": "pinnedIds", + "value": ["wt-1"] + }, + "11e971c034ae": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "2b635c2a4fbb": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "2c0740d2cefb": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-3", + "ok": false + } + } + }, + "4caf7515e224": { + "name": "worktree.set#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.set\",\"params\":{\"worktree\":\"id:wt-1\",\"isPinned\":true}}" + }, + "4f1b109adcc0": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "56b6d4fb8c56": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "5c186d67b84c": { + "name": "lastKnownWorktrees", + "value": [] + }, + "60cb8c68db7d": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "Connection closed", + "isRpcDeliveryUnknown": true + } + } + }, + "69d698d4f352": { + "name": "worktree.rm#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.rm\",\"params\":{\"worktree\":\"id:wt-1\",\"force\":true}}" + }, + "6cfdae6737f2": { + "name": "lastKnownWorktrees", + "value": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "6e959a9dd70e": { + "confirmRemoveHost": false, + "lastKnownWorktrees": [], + "optimisticActiveWorktreeIdentity": "|wt-1", + "pinnedIds": ["wt-1"], + "routeActionState": {}, + "worktrees": [] + }, + "7ce7ff16ad9e": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-3", + "ok": false + } + } + }, + "86754b292acd": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-3", + "ok": false + } + } + }, + "909c8bc23636": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "972099c06c75": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true + } + } + }, + "9a9b0d6699b2": { + "confirmRemoveHost": false, + "lastKnownWorktrees": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ], + "optimisticActiveWorktreeIdentity": { + "$rpc": "null" + }, + "pinnedIds": ["wt-1"], + "routeActionState": {}, + "worktrees": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "a7c564546e94": { + "name": "worktrees", + "value": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": false, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "b1509905fc66": { + "name": "optimisticActiveWorktreeIdentity", + "value": "|wt-1" + }, + "bf2b36bda2d2": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "c3eecb0c6e96": { + "name": "worktree.activate#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.activate\",\"params\":{\"worktree\":\"id:wt-1\",\"notifyClients\":false,\"navigation\":\"caller\"}}" + }, + "c777b17081dd": { + "name": "lastKnownWorktrees", + "value": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": false, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "cbf8280fdbe7": { + "name": "worktrees", + "value": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "ce97d2eedacb": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "cf69e8a7e125": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "d440bd87d1ce": { + "name": "worktrees", + "value": [] + }, + "e3e3c397a66a": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "ff4c661d50a3": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "error": "refused" + } + } + } + } + }, + "recording": { + "scenario": "matrix-host.worktree-actions-worktree.rm-1", + "checkpoints": [ + { + "id": "host-worktree-actions-pin-open-delete.prelude:pin-optimistic", + "observation": { + "sender": ["bf2b36bda2d2"], + "payloads": ["4caf7515e224"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a" + }, + "state": "9a9b0d6699b2", + "effects": ["cbf8280fdbe7", "6cfdae6737f2", "0ebfc1859f18"] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.prelude:delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.prelude:cleanup", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "60cb8c68db7d"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c", + "a7c564546e94", + "c777b17081dd" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.normal:settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.result-absent:settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "972099c06c75"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.result-null:settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "909c8bc23636"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-ok-missing:settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "ff4c661d50a3"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-false-string-error:settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "4f1b109adcc0"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-false-object-error:settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "11e971c034ae"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.outer-refused:settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "7ce7ff16ad9e"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "064a538f6c1c", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c", + "a7c564546e94", + "c777b17081dd" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.outer-refused-no-message:settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "2c0740d2cefb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "064a538f6c1c", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c", + "a7c564546e94", + "c777b17081dd" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.method-not-found:settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "86754b292acd"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "064a538f6c1c", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c", + "a7c564546e94", + "c777b17081dd" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.transport-rejection:settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "ce97d2eedacb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "064a538f6c1c", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c", + "a7c564546e94", + "c777b17081dd" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.transport-rejection-no-message:settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "cf69e8a7e125"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "064a538f6c1c", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c", + "a7c564546e94", + "c777b17081dd" + ] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-host.worktree-actions-worktree.set-1.json b/mobile/rpc-foundation/goldens/matrix-host.worktree-actions-worktree.set-1.json new file mode 100644 index 00000000000..4e8a29c868e --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-host.worktree-actions-worktree.set-1.json @@ -0,0 +1,1148 @@ +{ + "operation": "host.worktree-actions", + "family": "host.worktree-actions", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "92c29bd78ca0c0d5917e9386fc447bb9a1698b1d1ffaba0db7546eaac60da639", + "scenarioSha256": "054f1b1380fc6cfd4b0f4a85d6f143822a12a0a732d550dd85eef64a6556b3ba", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "04938673cbf5": { + "name": "worktree.activate#1", + "args": [ + { + "name": "method", + "value": "worktree.activate" + }, + { + "name": "params", + "value": { + "navigation": "caller", + "notifyClients": false, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-2", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "0ebfc1859f18": { + "name": "pinnedIds", + "value": ["wt-1"] + }, + "1266cec86f6a": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "275536711343": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "2b635c2a4fbb": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-3", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "44ff929f3c43": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "4caf7515e224": { + "name": "worktree.set#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.set\",\"params\":{\"worktree\":\"id:wt-1\",\"isPinned\":true}}" + }, + "55d53d27027d": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": { + "message": "inner refused" + }, + "ok": false + } + } + } + }, + "56b6d4fb8c56": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "ok": true + } + } + } + }, + "5c186d67b84c": { + "name": "lastKnownWorktrees", + "value": [] + }, + "6307d17334bd": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "651653c526f2": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "66469585a5b3": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "69d698d4f352": { + "name": "worktree.rm#1", + "json": "{\"id\":\"frame-3\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.rm\",\"params\":{\"worktree\":\"id:wt-1\",\"force\":true}}" + }, + "6b3c3497e633": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true + } + } + }, + "6cfdae6737f2": { + "name": "lastKnownWorktrees", + "value": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "6e959a9dd70e": { + "confirmRemoveHost": false, + "lastKnownWorktrees": [], + "optimisticActiveWorktreeIdentity": "|wt-1", + "pinnedIds": ["wt-1"], + "routeActionState": {}, + "worktrees": [] + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "9a9b0d6699b2": { + "confirmRemoveHost": false, + "lastKnownWorktrees": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ], + "optimisticActiveWorktreeIdentity": { + "$rpc": "null" + }, + "pinnedIds": ["wt-1"], + "routeActionState": {}, + "worktrees": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "b1509905fc66": { + "name": "optimisticActiveWorktreeIdentity", + "value": "|wt-1" + }, + "ba44a37bda16": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "method_not_found", + "message": "Unknown method" + }, + "id": "frame-1", + "ok": false + } + } + }, + "bf2b36bda2d2": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "c3eecb0c6e96": { + "name": "worktree.activate#1", + "json": "{\"id\":\"frame-2\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.activate\",\"params\":{\"worktree\":\"id:wt-1\",\"notifyClients\":false,\"navigation\":\"caller\"}}" + }, + "cbf8280fdbe7": { + "name": "worktrees", + "value": [ + { + "branch": "feature/pin", + "displayName": "marlin", + "hasAttachedPty": false, + "isPinned": true, + "linkedPR": { + "$rpc": "null" + }, + "liveTerminalCount": 0, + "path": "/repos/marlin/wt-1", + "preview": "", + "repo": "marlin", + "repoId": "repo-1", + "unread": false, + "worktreeId": "wt-1" + } + ] + }, + "d440bd87d1ce": { + "name": "worktrees", + "value": [] + }, + "e3e3c397a66a": { + "name": "worktree.rm#1", + "args": [ + { + "name": "method", + "value": "worktree.rm" + }, + { + "name": "params", + "value": { + "force": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "f1b199e21211": { + "name": "worktree.set#1", + "args": [ + { + "name": "method", + "value": "worktree.set" + }, + { + "name": "params", + "value": { + "isPinned": true, + "worktree": "id:wt-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + } + }, + "recording": { + "scenario": "matrix-host.worktree-actions-worktree.set-1", + "checkpoints": [ + { + "id": "host-worktree-actions-pin-open-delete.prelude:pin-optimistic", + "observation": { + "sender": ["bf2b36bda2d2"], + "payloads": ["4caf7515e224"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a" + }, + "state": "9a9b0d6699b2", + "effects": ["cbf8280fdbe7", "6cfdae6737f2", "0ebfc1859f18"] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.normal:delete-optimistic", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.normal:settled", + "observation": { + "sender": ["56b6d4fb8c56", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.result-absent:delete-optimistic", + "observation": { + "sender": ["6b3c3497e633", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.result-absent:settled", + "observation": { + "sender": ["6b3c3497e633", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.result-null:delete-optimistic", + "observation": { + "sender": ["66469585a5b3", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.result-null:settled", + "observation": { + "sender": ["66469585a5b3", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-ok-missing:delete-optimistic", + "observation": { + "sender": ["275536711343", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-ok-missing:settled", + "observation": { + "sender": ["275536711343", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-false-string-error:delete-optimistic", + "observation": { + "sender": ["651653c526f2", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-false-string-error:settled", + "observation": { + "sender": ["651653c526f2", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-false-object-error:delete-optimistic", + "observation": { + "sender": ["55d53d27027d", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.inner-false-object-error:settled", + "observation": { + "sender": ["55d53d27027d", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.outer-refused:delete-optimistic", + "observation": { + "sender": ["44ff929f3c43", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.outer-refused:settled", + "observation": { + "sender": ["44ff929f3c43", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.outer-refused-no-message:delete-optimistic", + "observation": { + "sender": ["6307d17334bd", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.outer-refused-no-message:settled", + "observation": { + "sender": ["6307d17334bd", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.method-not-found:delete-optimistic", + "observation": { + "sender": ["ba44a37bda16", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.method-not-found:settled", + "observation": { + "sender": ["ba44a37bda16", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.transport-rejection:delete-optimistic", + "observation": { + "sender": ["1266cec86f6a", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.transport-rejection:settled", + "observation": { + "sender": ["1266cec86f6a", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.transport-rejection-no-message:delete-optimistic", + "observation": { + "sender": ["f1b199e21211", "04938673cbf5", "e3e3c397a66a"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "9270aeb7d9c6" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + }, + { + "id": "host-worktree-actions-pin-open-delete.transport-rejection-no-message:settled", + "observation": { + "sender": ["f1b199e21211", "04938673cbf5", "2b635c2a4fbb"], + "payloads": ["4caf7515e224", "c3eecb0c6e96", "69d698d4f352"], + "settlements": { + "mount": "eb79a9b3682a", + "toggle-pin": "eb79a9b3682a", + "open-session": "eb79a9b3682a", + "delete": "eb79a9b3682a" + }, + "state": "6e959a9dd70e", + "effects": [ + "cbf8280fdbe7", + "6cfdae6737f2", + "0ebfc1859f18", + "b1509905fc66", + "d440bd87d1ce", + "5c186d67b84c" + ] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-worktree.catalog-snapshot-worktree.ps-1.json b/mobile/rpc-foundation/goldens/matrix-worktree.catalog-snapshot-worktree.ps-1.json new file mode 100644 index 00000000000..990edb8d529 --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-worktree.catalog-snapshot-worktree.ps-1.json @@ -0,0 +1,715 @@ +{ + "operation": "worktree.catalog-snapshot", + "family": "worktree.catalog-snapshot", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "6119d409e1958877e4a04b3901f94a3609ac0420f5ca02af20eb8dae5cbf3408", + "scenarioSha256": "95ca47f382997c412da974e564a46b1ae0c20d6e0f3ca14258d33c8d8b51a160", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "08dde29706df": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "0ce4a7117a8d": { + "admitted": { + "$rpc": "null" + }, + "fetched": { + "code": "refused", + "kind": "request_failed" + } + }, + "0d9bf2f46a5e": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "code": "refused", + "kind": "request_failed" + } + }, + "227f9e3de4fa": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "snapshotId": "snapshot-1", + "worktrees": [ + { + "displayName": "One", + "repo": "Repo", + "worktreeId": "w-1" + } + ] + } + } + } + }, + "253b98015b8d": { + "admitted": "unadmitted", + "fetched": "unfetched" + }, + "2d40d1d38104": { + "name": "unhandled-rejection", + "value": { + "category": "Error", + "isRpcDeliveryUnknown": false, + "message": "Unsupported observation: function" + } + }, + "4262ba495b1b": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "50c4271e912d": { + "admitted": { + "$rpc": "null" + }, + "fetched": { + "kind": "response", + "pending": { + "admission": { + "kind": "invalid" + }, + "client": "logical-client", + "hostId": "host-1" + } + } + }, + "5a288976750e": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "5d54bccfc557": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "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 + } + } + }, + "8e2c2fbe7e94": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "code": "method_not_found", + "kind": "request_failed" + } + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "a0fab6bf1fb0": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "a87f1f91dc98": { + "name": "worktree.ps#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.ps\",\"params\":{\"limit\":10000,\"afterSnapshotId\":null,\"supportsWorktreeVisibilitySourceDefaults\":true}}" + }, + "a947768bc0ed": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + }, + "ab1a9ba6301c": { + "admitted": [ + { + "displayName": "One", + "repo": "Repo", + "worktreeId": "w-1" + } + ], + "fetched": { + "kind": "response", + "pending": { + "admission": { + "kind": "full", + "snapshotId": "snapshot-1", + "worktrees": [ + { + "displayName": "One", + "repo": "Repo", + "worktreeId": "w-1" + } + ] + }, + "client": "logical-client", + "hostId": "host-1" + } + } + }, + "ad584cc963bb": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true + } + } + }, + "b14360b67647": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "b1ae1170d95b": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "b670d230caf2": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "ba9be29baf40": { + "admitted": { + "$rpc": "null" + }, + "fetched": { + "code": "method_not_found", + "kind": "request_failed" + } + }, + "c7584e82c72f": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + }, + "f5d207eddd1d": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "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 + } + } + } + }, + "f97b6b46b1d5": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + } + }, + "recording": { + "scenario": "matrix-worktree.catalog-snapshot-worktree.ps-1", + "checkpoints": [ + { + "id": "worktree-catalog-snapshot.prelude:catalog-pending", + "observation": { + "sender": ["f97b6b46b1d5"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "9270aeb7d9c6" + }, + "state": "253b98015b8d", + "effects": [] + } + }, + { + "id": "worktree-catalog-snapshot.normal:settled", + "observation": { + "sender": ["227f9e3de4fa"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "9270aeb7d9c6" + }, + "state": "ab1a9ba6301c", + "effects": ["2d40d1d38104"] + } + }, + { + "id": "worktree-catalog-snapshot.result-absent:settled", + "observation": { + "sender": ["ad584cc963bb"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "9270aeb7d9c6" + }, + "state": "50c4271e912d", + "effects": ["2d40d1d38104"] + } + }, + { + "id": "worktree-catalog-snapshot.result-null:settled", + "observation": { + "sender": ["b670d230caf2"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "9270aeb7d9c6" + }, + "state": "50c4271e912d", + "effects": ["2d40d1d38104"] + } + }, + { + "id": "worktree-catalog-snapshot.inner-ok-missing:settled", + "observation": { + "sender": ["4262ba495b1b"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "9270aeb7d9c6" + }, + "state": "50c4271e912d", + "effects": ["2d40d1d38104"] + } + }, + { + "id": "worktree-catalog-snapshot.inner-false-string-error:settled", + "observation": { + "sender": ["5a288976750e"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "9270aeb7d9c6" + }, + "state": "50c4271e912d", + "effects": ["2d40d1d38104"] + } + }, + { + "id": "worktree-catalog-snapshot.inner-false-object-error:settled", + "observation": { + "sender": ["f5d207eddd1d"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "9270aeb7d9c6" + }, + "state": "50c4271e912d", + "effects": ["2d40d1d38104"] + } + }, + { + "id": "worktree-catalog-snapshot.outer-refused:settled", + "observation": { + "sender": ["b14360b67647"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "0d9bf2f46a5e" + }, + "state": "0ce4a7117a8d", + "effects": [] + } + }, + { + "id": "worktree-catalog-snapshot.outer-refused-no-message:settled", + "observation": { + "sender": ["a0fab6bf1fb0"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "0d9bf2f46a5e" + }, + "state": "0ce4a7117a8d", + "effects": [] + } + }, + { + "id": "worktree-catalog-snapshot.method-not-found:settled", + "observation": { + "sender": ["5d54bccfc557"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "8e2c2fbe7e94" + }, + "state": "ba9be29baf40", + "effects": [] + } + }, + { + "id": "worktree-catalog-snapshot.transport-rejection:settled", + "observation": { + "sender": ["b1ae1170d95b"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "a947768bc0ed" + }, + "state": "253b98015b8d", + "effects": [] + } + }, + { + "id": "worktree-catalog-snapshot.transport-rejection-no-message:settled", + "observation": { + "sender": ["08dde29706df"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "c7584e82c72f" + }, + "state": "253b98015b8d", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-worktree.home-catalog-worktree.ps-1.json b/mobile/rpc-foundation/goldens/matrix-worktree.home-catalog-worktree.ps-1.json new file mode 100644 index 00000000000..73fefd560ef --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-worktree.home-catalog-worktree.ps-1.json @@ -0,0 +1,665 @@ +{ + "operation": "worktree.home-catalog", + "family": "worktree.home-catalog", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "6119d409e1958877e4a04b3901f94a3609ac0420f5ca02af20eb8dae5cbf3408", + "scenarioSha256": "fa0e28a167a5fba6fe7ffebb9f4ad28dd413d601c07116a24a7781d156f54beb", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "111018d23b6c": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "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 + } + } + }, + "2e82f8bbb1f1": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "worktrees": [ + { + "displayName": "One", + "repo": "Repo", + "status": "working", + "worktreeId": "w-1" + }, + { + "displayName": "Two", + "repo": "Repo", + "status": "idle", + "worktreeId": "w-2" + } + ] + } + } + } + }, + "39b7354b00f4": { + "host-1": { + "activeCount": 1, + "countsProvenAt": 1767225600000, + "hostId": "host-1", + "lastActiveWorktree": { + "displayName": "One", + "repo": "Repo", + "status": "working", + "worktreeId": "w-1" + }, + "totalWorktrees": 2 + } + }, + "430d32843438": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "44136fa355b3": {}, + "481a5e96b319": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "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 + } + } + } + }, + "4912be5d956f": { + "name": "worktree.ps#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.ps\",\"params\":{\"limit\":10000,\"supportsWorktreeVisibilitySourceDefaults\":true}}" + }, + "4fa9e403a3c8": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "51d64b49c1ab": { + "host-1": { + "activeCount": 0, + "catalogUnavailable": true, + "hostId": "host-1", + "lastActiveWorktree": { + "$rpc": "null" + }, + "totalWorktrees": 0 + } + }, + "6ed6d686b491": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true + } + } + }, + "8944b50988b9": { + "name": "info", + "value": { + "host-1": { + "activeCount": 1, + "countsProvenAt": 1767225600000, + "hostId": "host-1", + "lastActiveWorktree": { + "displayName": "One", + "repo": "Repo", + "status": "working", + "worktreeId": "w-1" + }, + "totalWorktrees": 2 + } + } + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "97177805ceb8": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "993fb2bd3f3e": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "9f1a49cd671e": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "a3336f998e22": { + "name": "info", + "value": { + "host-1": { + "activeCount": 0, + "catalogUnavailable": true, + "hostId": "host-1", + "lastActiveWorktree": { + "$rpc": "null" + }, + "totalWorktrees": 0 + } + } + }, + "bc1a8e138f82": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "cca1bdaf2563": { + "name": "info", + "value": { + "host-1": { + "activeCount": 0, + "countsProvenAt": 1767225600000, + "hostId": "host-1", + "lastActiveWorktree": { + "$rpc": "null" + }, + "totalWorktrees": 0 + } + } + }, + "d0ec31ab66d5": { + "host-1": { + "activeCount": 0, + "countsProvenAt": 1767225600000, + "hostId": "host-1", + "lastActiveWorktree": { + "$rpc": "null" + }, + "totalWorktrees": 0 + } + }, + "e904502f2359": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + }, + "f2257f595504": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + } + }, + "recording": { + "scenario": "matrix-worktree.home-catalog-worktree.ps-1", + "checkpoints": [ + { + "id": "worktree-home-catalog.prelude:catalog-pending", + "observation": { + "sender": ["bc1a8e138f82"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "9270aeb7d9c6" + }, + "state": "44136fa355b3", + "effects": [] + } + }, + { + "id": "worktree-home-catalog.normal:settled", + "observation": { + "sender": ["2e82f8bbb1f1"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "39b7354b00f4", + "effects": ["8944b50988b9"] + } + }, + { + "id": "worktree-home-catalog.result-absent:settled", + "observation": { + "sender": ["6ed6d686b491"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "51d64b49c1ab", + "effects": ["a3336f998e22"] + } + }, + { + "id": "worktree-home-catalog.result-null:settled", + "observation": { + "sender": ["430d32843438"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "51d64b49c1ab", + "effects": ["a3336f998e22"] + } + }, + { + "id": "worktree-home-catalog.inner-ok-missing:settled", + "observation": { + "sender": ["e904502f2359"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "d0ec31ab66d5", + "effects": ["cca1bdaf2563"] + } + }, + { + "id": "worktree-home-catalog.inner-false-string-error:settled", + "observation": { + "sender": ["f2257f595504"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "d0ec31ab66d5", + "effects": ["cca1bdaf2563"] + } + }, + { + "id": "worktree-home-catalog.inner-false-object-error:settled", + "observation": { + "sender": ["481a5e96b319"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "d0ec31ab66d5", + "effects": ["cca1bdaf2563"] + } + }, + { + "id": "worktree-home-catalog.outer-refused:settled", + "observation": { + "sender": ["993fb2bd3f3e"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "51d64b49c1ab", + "effects": ["a3336f998e22"] + } + }, + { + "id": "worktree-home-catalog.outer-refused-no-message:settled", + "observation": { + "sender": ["97177805ceb8"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "51d64b49c1ab", + "effects": ["a3336f998e22"] + } + }, + { + "id": "worktree-home-catalog.method-not-found:settled", + "observation": { + "sender": ["111018d23b6c"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "51d64b49c1ab", + "effects": ["a3336f998e22"] + } + }, + { + "id": "worktree-home-catalog.transport-rejection:settled", + "observation": { + "sender": ["4fa9e403a3c8"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "51d64b49c1ab", + "effects": ["a3336f998e22"] + } + }, + { + "id": "worktree-home-catalog.transport-rejection-no-message:settled", + "observation": { + "sender": ["9f1a49cd671e"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "51d64b49c1ab", + "effects": ["a3336f998e22"] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/matrix-worktree.retired-names-worktree.listretirednames-1.json b/mobile/rpc-foundation/goldens/matrix-worktree.retired-names-worktree.listretirednames-1.json new file mode 100644 index 00000000000..7d25dad36cb --- /dev/null +++ b/mobile/rpc-foundation/goldens/matrix-worktree.retired-names-worktree.listretirednames-1.json @@ -0,0 +1,583 @@ +{ + "operation": "worktree.retired-names", + "family": "worktree.retired-names", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "6119d409e1958877e4a04b3901f94a3609ac0420f5ca02af20eb8dae5cbf3408", + "scenarioSha256": "d321d6c17e67ae90f6ceefb775495ff765a86a35423ed33a212e71ec5e9e94aa", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "02fe07399476": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "", + "isRpcDeliveryUnknown": true + } + } + }, + "097832ba0321": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "$rpc": "null" + } + } + } + }, + "0c1342cbe912": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "refused" + } + } + } + }, + "2b135054eb20": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "error": "inner refused", + "ok": false + } + } + } + }, + "569633c0c5c5": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "5e2e60e145d8": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "retiredNameTiersByRepo": { + "repo-1": 2 + }, + "retiredNamesByRepo": { + "repo-1": ["marlin", "orca"] + } + } + } + } + }, + "62049c27970e": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true + } + } + }, + "65d2ebb48892": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "outer refused" + }, + "id": "frame-1", + "ok": false + } + } + }, + "85d826c606ff": { + "registry": { + "exhaustedTiers": 2, + "names": ["marlin", "orca"] + } + }, + "ba7d8283433b": { + "name": "worktree.listRetiredNames#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.listRetiredNames\",\"params\":{\"repo\":\"id:repo-1\"}}" + }, + "be9540321e8c": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "error": { + "code": "refused", + "message": "" + }, + "id": "frame-1", + "ok": false + } + } + }, + "cb76d0017b96": { + "registry": { + "exhaustedTiers": 0, + "names": [] + } + }, + "dfdfe583f72c": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "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 + } + } + } + }, + "e30ddb3bb2da": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "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 + } + } + }, + "ea14357ab74a": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "rejected", + "startedAt": 0, + "settledAt": 0, + "error": { + "category": "Error", + "message": "transport failure", + "isRpcDeliveryUnknown": true + } + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "matrix-worktree.retired-names-worktree.listretirednames-1", + "checkpoints": [ + { + "id": "worktree-retired-names.prelude:names-pending", + "observation": { + "sender": ["569633c0c5c5"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "cb76d0017b96", + "effects": [] + } + }, + { + "id": "worktree-retired-names.normal:settled", + "observation": { + "sender": ["5e2e60e145d8"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "85d826c606ff", + "effects": [] + } + }, + { + "id": "worktree-retired-names.result-absent:settled", + "observation": { + "sender": ["62049c27970e"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "cb76d0017b96", + "effects": [] + } + }, + { + "id": "worktree-retired-names.result-null:settled", + "observation": { + "sender": ["097832ba0321"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "cb76d0017b96", + "effects": [] + } + }, + { + "id": "worktree-retired-names.inner-ok-missing:settled", + "observation": { + "sender": ["0c1342cbe912"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "cb76d0017b96", + "effects": [] + } + }, + { + "id": "worktree-retired-names.inner-false-string-error:settled", + "observation": { + "sender": ["2b135054eb20"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "cb76d0017b96", + "effects": [] + } + }, + { + "id": "worktree-retired-names.inner-false-object-error:settled", + "observation": { + "sender": ["dfdfe583f72c"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "cb76d0017b96", + "effects": [] + } + }, + { + "id": "worktree-retired-names.outer-refused:settled", + "observation": { + "sender": ["65d2ebb48892"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "cb76d0017b96", + "effects": [] + } + }, + { + "id": "worktree-retired-names.outer-refused-no-message:settled", + "observation": { + "sender": ["be9540321e8c"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "cb76d0017b96", + "effects": [] + } + }, + { + "id": "worktree-retired-names.method-not-found:settled", + "observation": { + "sender": ["e30ddb3bb2da"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "cb76d0017b96", + "effects": [] + } + }, + { + "id": "worktree-retired-names.transport-rejection:settled", + "observation": { + "sender": ["ea14357ab74a"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "cb76d0017b96", + "effects": [] + } + }, + { + "id": "worktree-retired-names.transport-rejection-no-message:settled", + "observation": { + "sender": ["02fe07399476"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "cb76d0017b96", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/worktree-catalog-snapshot.json b/mobile/rpc-foundation/goldens/worktree-catalog-snapshot.json new file mode 100644 index 00000000000..a1bf90b2b94 --- /dev/null +++ b/mobile/rpc-foundation/goldens/worktree-catalog-snapshot.json @@ -0,0 +1,164 @@ +{ + "operation": "worktree.catalog-snapshot", + "family": "worktree.catalog-snapshot", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "6119d409e1958877e4a04b3901f94a3609ac0420f5ca02af20eb8dae5cbf3408", + "scenarioSha256": "d2947158840576cbd0f0604ed3d37b0f446c63c6d439b4d1b7def7fe8524523d", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "227f9e3de4fa": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "snapshotId": "snapshot-1", + "worktrees": [ + { + "displayName": "One", + "repo": "Repo", + "worktreeId": "w-1" + } + ] + } + } + } + }, + "253b98015b8d": { + "admitted": "unadmitted", + "fetched": "unfetched" + }, + "2d40d1d38104": { + "name": "unhandled-rejection", + "value": { + "category": "Error", + "isRpcDeliveryUnknown": false, + "message": "Unsupported observation: function" + } + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "a87f1f91dc98": { + "name": "worktree.ps#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.ps\",\"params\":{\"limit\":10000,\"afterSnapshotId\":null,\"supportsWorktreeVisibilitySourceDefaults\":true}}" + }, + "ab1a9ba6301c": { + "admitted": [ + { + "displayName": "One", + "repo": "Repo", + "worktreeId": "w-1" + } + ], + "fetched": { + "kind": "response", + "pending": { + "admission": { + "kind": "full", + "snapshotId": "snapshot-1", + "worktrees": [ + { + "displayName": "One", + "repo": "Repo", + "worktreeId": "w-1" + } + ] + }, + "client": "logical-client", + "hostId": "host-1" + } + } + }, + "f97b6b46b1d5": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "afterSnapshotId": { + "$rpc": "null" + }, + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + } + }, + "recording": { + "scenario": "worktree-catalog-snapshot", + "checkpoints": [ + { + "id": "catalog-pending", + "observation": { + "sender": ["f97b6b46b1d5"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "9270aeb7d9c6" + }, + "state": "253b98015b8d", + "effects": [] + } + }, + { + "id": "settled", + "observation": { + "sender": ["227f9e3de4fa"], + "payloads": ["a87f1f91dc98"], + "settlements": { + "fetch": "9270aeb7d9c6" + }, + "state": "ab1a9ba6301c", + "effects": ["2d40d1d38104"] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/worktree-home-catalog.json b/mobile/rpc-foundation/goldens/worktree-home-catalog.json new file mode 100644 index 00000000000..955191bccc8 --- /dev/null +++ b/mobile/rpc-foundation/goldens/worktree-home-catalog.json @@ -0,0 +1,165 @@ +{ + "operation": "worktree.home-catalog", + "family": "worktree.home-catalog", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "6119d409e1958877e4a04b3901f94a3609ac0420f5ca02af20eb8dae5cbf3408", + "scenarioSha256": "4749bb3b871275ba08f026f9b6bcfd383605f443e7bba70a7f89175b91db6fa5", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "2e82f8bbb1f1": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "worktrees": [ + { + "displayName": "One", + "repo": "Repo", + "status": "working", + "worktreeId": "w-1" + }, + { + "displayName": "Two", + "repo": "Repo", + "status": "idle", + "worktreeId": "w-2" + } + ] + } + } + } + }, + "39b7354b00f4": { + "host-1": { + "activeCount": 1, + "countsProvenAt": 1767225600000, + "hostId": "host-1", + "lastActiveWorktree": { + "displayName": "One", + "repo": "Repo", + "status": "working", + "worktreeId": "w-1" + }, + "totalWorktrees": 2 + } + }, + "44136fa355b3": {}, + "4912be5d956f": { + "name": "worktree.ps#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.ps\",\"params\":{\"limit\":10000,\"supportsWorktreeVisibilitySourceDefaults\":true}}" + }, + "8944b50988b9": { + "name": "info", + "value": { + "host-1": { + "activeCount": 1, + "countsProvenAt": 1767225600000, + "hostId": "host-1", + "lastActiveWorktree": { + "displayName": "One", + "repo": "Repo", + "status": "working", + "worktreeId": "w-1" + }, + "totalWorktrees": 2 + } + } + }, + "9270aeb7d9c6": { + "status": "pending", + "startedAt": 0 + }, + "bc1a8e138f82": { + "name": "worktree.ps#1", + "args": [ + { + "name": "method", + "value": "worktree.ps" + }, + { + "name": "params", + "value": { + "limit": 10000 + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "worktree-home-catalog", + "checkpoints": [ + { + "id": "catalog-pending", + "observation": { + "sender": ["bc1a8e138f82"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "9270aeb7d9c6" + }, + "state": "44136fa355b3", + "effects": [] + } + }, + { + "id": "settled", + "observation": { + "sender": ["2e82f8bbb1f1"], + "payloads": ["4912be5d956f"], + "settlements": { + "load": "eb79a9b3682a" + }, + "state": "39b7354b00f4", + "effects": ["8944b50988b9"] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/goldens/worktree-retired-names.json b/mobile/rpc-foundation/goldens/worktree-retired-names.json new file mode 100644 index 00000000000..56c92ffeebb --- /dev/null +++ b/mobile/rpc-foundation/goldens/worktree-retired-names.json @@ -0,0 +1,133 @@ +{ + "operation": "worktree.retired-names", + "family": "worktree.retired-names", + "namedDeltas": [], + "runnerVersion": 1, + "baseline": "c6a72169843ececf3a21da370ac50c5c5a4e6462", + "lockfileSha256": "788c1234b38a61fc882fca292341fce6690deee9cc6695673b0575cf2c4cf571", + "recorderSha256": "2e90933db32efc17d752cf5d506ecdd9ec54ce53ea30ba55021ea3d1bc1d3fb2", + "adapterSha256": "6119d409e1958877e4a04b3901f94a3609ac0420f5ca02af20eb8dae5cbf3408", + "scenarioSha256": "2faa07ee5f12b3ed584117359d3b7aeb9c78a04e8fc49e753372f8c3927a3740", + "platform": "darwin", + "scenarioVersion": 1, + "projectionVersion": 2, + "goldenFormatVersion": 5, + "values": { + "569633c0c5c5": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "pending", + "startedAt": 0 + } + }, + "5e2e60e145d8": { + "name": "worktree.listRetiredNames#1", + "args": [ + { + "name": "method", + "value": "worktree.listRetiredNames" + }, + { + "name": "params", + "value": { + "repo": "id:repo-1" + } + }, + { + "name": "options", + "value": { + "$rpc": "absent" + } + } + ], + "settlement": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "id": "frame-1", + "ok": true, + "result": { + "retiredNameTiersByRepo": { + "repo-1": 2 + }, + "retiredNamesByRepo": { + "repo-1": ["marlin", "orca"] + } + } + } + } + }, + "85d826c606ff": { + "registry": { + "exhaustedTiers": 2, + "names": ["marlin", "orca"] + } + }, + "ba7d8283433b": { + "name": "worktree.listRetiredNames#1", + "json": "{\"id\":\"frame-1\",\"deviceToken\":\"recording-device\",\"method\":\"worktree.listRetiredNames\",\"params\":{\"repo\":\"id:repo-1\"}}" + }, + "cb76d0017b96": { + "registry": { + "exhaustedTiers": 0, + "names": [] + } + }, + "eb79a9b3682a": { + "status": "fulfilled", + "startedAt": 0, + "settledAt": 0, + "value": { + "$rpc": "undefined" + } + } + }, + "recording": { + "scenario": "worktree-retired-names", + "checkpoints": [ + { + "id": "names-pending", + "observation": { + "sender": ["569633c0c5c5"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "cb76d0017b96", + "effects": [] + } + }, + { + "id": "settled", + "observation": { + "sender": ["5e2e60e145d8"], + "payloads": ["ba7d8283433b"], + "settlements": { + "mount": "eb79a9b3682a" + }, + "state": "85d826c606ff", + "effects": [] + } + } + ] + } +} diff --git a/mobile/rpc-foundation/pilot-scenarios.json b/mobile/rpc-foundation/pilot-scenarios.json index 1443895a1a8..ab58e1425ff 100644 --- a/mobile/rpc-foundation/pilot-scenarios.json +++ b/mobile/rpc-foundation/pilot-scenarios.json @@ -6753,6 +6753,981 @@ "checkpoint": "awaited-trust-write-refused" } ] + }, + { + "id": "files-ownership-ssh", + "operation": "files.mutation-ownership", + "version": 1, + "family": "files.mutation-ownership", + "sites": ["mobile/src/files/mobile-file-mutation-ownership.ts"], + "schedules": [], + "steps": [ + { + "action": "capture", + "id": "capture" + }, + { + "checkpoint": "status-pending" + }, + { + "complete": "status.get#1", + "params": { + "$undefined": true + }, + "reply": { + "ok": true, + "result": { + "capabilities": ["files.mutation-ownership.v1"] + } + } + }, + { + "complete": "worktree.show#1", + "params": { + "worktree": "id:workspace-1" + }, + "reply": { + "ok": true, + "result": { + "worktree": { + "hostId": "ssh:target-1" + } + } + } + }, + { + "complete": "ssh.getState#1", + "params": { + "targetId": "target-1" + }, + "reply": { + "ok": true, + "result": { + "state": { + "targetId": "target-1", + "status": "connected", + "error": null, + "reconnectAttempt": 0, + "connectionGeneration": 3 + } + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "files-ownership-local", + "operation": "files.mutation-ownership", + "version": 1, + "family": "files.mutation-ownership", + "sites": ["mobile/src/files/mobile-file-mutation-ownership.ts"], + "schedules": [], + "steps": [ + { + "action": "capture", + "id": "capture" + }, + { + "complete": "status.get#1", + "params": { + "$undefined": true + }, + "reply": { + "ok": true, + "result": { + "capabilities": ["files.mutation-ownership.v1"] + } + } + }, + { + "complete": "worktree.show#1", + "params": { + "worktree": "id:workspace-1" + }, + "reply": { + "ok": true, + "result": { + "worktree": { + "hostId": "local" + } + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "files-preview-grant-refresh", + "operation": "files.preview-load", + "version": 1, + "family": "files.preview-load", + "sites": [ + "mobile/src/files/mobile-file-preview-request.ts", + "mobile/src/files/mobile-terminal-artifact-grant-refresh.ts" + ], + "schedules": [], + "steps": [ + { + "action": "artifact", + "id": "load" + }, + { + "checkpoint": "read-pending" + }, + { + "complete": "files.readTerminalArtifact#1", + "params": { + "worktree": "id:workspace-1", + "absolutePath": "/logs/run.txt", + "grantId": "grant-1" + }, + "reply": { + "ok": false, + "error": { + "code": "terminal_file_grant_expired", + "message": "Grant expired" + } + } + }, + { + "complete": "files.resolveTerminalPath#1", + "params": { + "worktree": "id:workspace-1", + "pathText": "run.txt", + "cwd": "/logs", + "terminal": "terminal-1" + }, + "reply": { + "ok": true, + "result": { + "exists": true, + "isDirectory": false, + "openTarget": { + "kind": "absolute-file", + "absolutePath": "/logs/run.txt", + "grantId": "grant-2" + } + } + } + }, + { + "complete": "files.readTerminalArtifact#2", + "params": { + "worktree": "id:workspace-1", + "absolutePath": "/logs/run.txt", + "grantId": "grant-2" + }, + "reply": { + "ok": true, + "result": { + "content": "hello", + "truncated": false, + "byteLength": 5 + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "files-preview-artifact-direct", + "operation": "files.preview-load", + "version": 1, + "family": "files.preview-load", + "sites": [ + "mobile/src/files/mobile-file-preview-request.ts", + "mobile/src/files/mobile-terminal-artifact-grant-refresh.ts" + ], + "schedules": [], + "steps": [ + { + "action": "artifact", + "id": "load" + }, + { + "complete": "files.readTerminalArtifact#1", + "params": { + "worktree": "id:workspace-1", + "absolutePath": "/logs/run.txt", + "grantId": "grant-1" + }, + "reply": { + "ok": true, + "result": { + "content": "hello", + "truncated": false, + "byteLength": 5 + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "files-preview-worktree", + "operation": "files.preview-load", + "version": 1, + "family": "files.preview-load", + "sites": ["mobile/src/files/mobile-file-preview-request.ts"], + "schedules": [], + "steps": [ + { + "action": "worktree", + "id": "load" + }, + { + "complete": "files.read#1", + "params": { + "worktree": "id:workspace-1", + "relativePath": "docs/readme.md" + }, + "reply": { + "ok": true, + "result": { + "content": "# readme", + "truncated": false, + "byteLength": 8 + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "files-preview-worktree-image", + "operation": "files.preview-load", + "version": 1, + "family": "files.preview-load", + "sites": ["mobile/src/files/mobile-file-preview-request.ts"], + "schedules": [], + "steps": [ + { + "action": "worktree", + "id": "load", + "args": { + "path": "docs/logo.png" + } + }, + { + "complete": "files.readPreview#1", + "params": { + "worktree": "id:workspace-1", + "relativePath": "docs/logo.png" + }, + "reply": { + "ok": true, + "result": { + "content": "aGk=", + "isBinary": true, + "isImage": true, + "mimeType": "image/png" + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "files-preview-artifact-image", + "operation": "files.preview-load", + "version": 1, + "family": "files.preview-load", + "sites": ["mobile/src/files/mobile-file-preview-request.ts"], + "schedules": [], + "steps": [ + { + "action": "artifact", + "id": "load", + "args": { + "path": "/logs/shot.png" + } + }, + { + "complete": "files.readTerminalArtifactPreview#1", + "params": { + "worktree": "id:workspace-1", + "absolutePath": "/logs/shot.png", + "grantId": "grant-1" + }, + "reply": { + "ok": true, + "result": { + "content": "aGk=", + "isBinary": true, + "isImage": true, + "mimeType": "image/png" + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "files-save-verified", + "operation": "files.preview-save", + "version": 1, + "family": "files.preview-save", + "sites": [ + "mobile/src/files/mobile-file-preview-request.ts", + "mobile/src/files/mobile-terminal-artifact-grant-refresh.ts" + ], + "schedules": [], + "steps": [ + { + "action": "verified", + "id": "save" + }, + { + "checkpoint": "verify-pending" + }, + { + "complete": "files.readTerminalArtifact#1", + "params": { + "worktree": "id:workspace-1", + "absolutePath": "/logs/run.txt", + "grantId": "grant-1" + }, + "reply": { + "ok": true, + "result": { + "content": "base", + "truncated": false, + "byteLength": 4 + } + } + }, + { + "complete": "files.writeTerminalArtifact#1", + "params": { + "worktree": "id:workspace-1", + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "content": "next" + }, + "reply": { + "ok": true, + "result": { + "ok": true + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "files-save-blind", + "operation": "files.preview-save", + "version": 1, + "family": "files.preview-save", + "sites": [ + "mobile/src/files/mobile-file-preview-request.ts", + "mobile/src/files/mobile-terminal-artifact-grant-refresh.ts" + ], + "schedules": [], + "steps": [ + { + "action": "blind", + "id": "save" + }, + { + "complete": "files.writeTerminalArtifact#1", + "params": { + "worktree": "id:workspace-1", + "absolutePath": "/logs/run.txt", + "grantId": "grant-1", + "content": "next" + }, + "reply": { + "ok": true, + "result": { + "ok": true + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "files-tab-doc-shapes", + "operation": "files.tab-doc", + "version": 1, + "family": "files.tab-doc", + "sites": ["mobile/src/files/mobile-file-tab-doc.ts"], + "schedules": [], + "steps": [ + { + "action": "text", + "id": "text" + }, + { + "complete": "files.read#1", + "params": { + "worktree": "id:workspace-1", + "relativePath": "docs/readme.md" + }, + "reply": { + "ok": true, + "result": { + "content": "# readme", + "truncated": false, + "byteLength": 8 + } + } + }, + { + "action": "image", + "id": "image" + }, + { + "complete": "files.readPreview#1", + "params": { + "worktree": "id:workspace-1", + "relativePath": "docs/logo.png" + }, + "reply": { + "ok": true, + "result": { + "content": "aGk=", + "isImage": true, + "mimeType": "image/png" + } + } + }, + { + "action": "diff", + "id": "diff" + }, + { + "complete": "git.diff#1", + "params": { + "worktree": "id:workspace-1", + "filePath": "docs/readme.md", + "staged": true + }, + "reply": { + "ok": true, + "result": { + "kind": "text", + "originalContent": "a\n", + "modifiedContent": "b\n" + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "components-target-ssh", + "operation": "components.execution-target", + "version": 1, + "family": "components.execution-target", + "sites": ["mobile/src/components/use-new-workspace-execution-target.ts"], + "schedules": [], + "steps": [ + { + "action": "mount", + "id": "mount" + }, + { + "checkpoint": "state-pending" + }, + { + "complete": "ssh.getState#1", + "params": { + "targetId": "ssh-1" + }, + "reply": { + "ok": true, + "result": { + "state": { + "targetId": "ssh-1", + "status": "connected", + "error": null, + "reconnectAttempt": 0 + } + } + } + }, + { + "complete": "preflight.detectRemoteAgents#1", + "params": { + "connectionId": "ssh-1" + }, + "reply": { + "ok": true, + "result": ["codex"] + } + }, + { + "action": "connect", + "id": "connect" + }, + { + "complete": "ssh.connect#1", + "params": { + "targetId": "ssh-1" + }, + "reply": { + "ok": true, + "result": { + "state": { + "targetId": "ssh-1", + "status": "connected", + "error": null, + "reconnectAttempt": 0 + } + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "components-target-local", + "operation": "components.execution-target-local", + "version": 1, + "family": "components.execution-target-local", + "sites": ["mobile/src/components/use-new-workspace-execution-target.ts"], + "schedules": [], + "steps": [ + { + "action": "mount", + "id": "mount" + }, + { + "checkpoint": "detect-pending" + }, + { + "complete": "preflight.detectAgents#1", + "params": { + "$undefined": true + }, + "reply": { + "ok": true, + "result": ["claude"] + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "components-setup-ask", + "operation": "components.setup-script", + "version": 1, + "family": "components.setup-script", + "sites": ["mobile/src/components/use-new-workspace-setup-script.ts"], + "schedules": [], + "steps": [ + { + "action": "mount", + "id": "mount" + }, + { + "checkpoint": "hooks-pending" + }, + { + "complete": "repo.hooks#1", + "params": { + "repo": "id:repo-1" + }, + "reply": { + "ok": true, + "result": { + "hooks": { + "scripts": { + "setup": "pnpm install" + } + }, + "source": "repo", + "setupRunPolicy": "ask", + "setupTrust": null + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "components-codex-capability", + "operation": "components.codex-reset-capability", + "version": 1, + "family": "components.codex-reset-capability", + "sites": ["mobile/src/components/codex-reset-credit-capability.ts"], + "schedules": [], + "steps": [ + { + "action": "probe", + "id": "probe" + }, + { + "complete": "status.get#1", + "params": { + "$undefined": true + }, + "reply": { + "ok": true, + "result": { + "capabilities": ["accounts.codex-reset-credit.v1"] + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "host-view-settings-sync", + "operation": "host.view-settings", + "version": 1, + "family": "host.view-settings", + "sites": ["mobile/src/host-screen/use-host-view-settings.ts"], + "schedules": [], + "steps": [ + { + "action": "mount", + "id": "mount" + }, + { + "action": "sync", + "id": "sync" + }, + { + "checkpoint": "ui-pending" + }, + { + "complete": "ui.get#1", + "params": { + "$undefined": true + }, + "reply": { + "ok": true, + "result": { + "ui": { + "sortBy": "name", + "groupBy": "repo", + "hideSleepingWorkspaces": true + } + } + } + }, + { + "action": "sort", + "id": "sort" + }, + { + "complete": "ui.set#1", + "params": { + "sortBy": "name" + }, + "reply": { + "ok": true, + "result": { + "ok": true + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "home-host-stats", + "operation": "home.host-stats", + "version": 1, + "family": "home.host-stats", + "sites": ["mobile/src/home/mobile-home-host-requests.ts"], + "schedules": [], + "steps": [ + { + "action": "load", + "id": "load" + }, + { + "checkpoint": "stats-pending" + }, + { + "complete": "stats.summary#1", + "params": { + "$undefined": true + }, + "reply": { + "ok": true, + "result": { + "totalWorktrees": 3, + "activeWorktrees": 1 + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "worktree-home-catalog", + "operation": "worktree.home-catalog", + "version": 1, + "family": "worktree.home-catalog", + "sites": ["mobile/src/worktree/home-host-worktree-fetch.ts"], + "schedules": [], + "steps": [ + { + "action": "load", + "id": "load" + }, + { + "checkpoint": "catalog-pending" + }, + { + "complete": "worktree.ps#1", + "params": { + "limit": 10000, + "supportsWorktreeVisibilitySourceDefaults": true + }, + "reply": { + "ok": true, + "result": { + "worktrees": [ + { + "worktreeId": "w-1", + "displayName": "One", + "repo": "Repo", + "status": "working" + }, + { + "worktreeId": "w-2", + "displayName": "Two", + "repo": "Repo", + "status": "idle" + } + ] + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "worktree-catalog-snapshot", + "operation": "worktree.catalog-snapshot", + "version": 1, + "family": "worktree.catalog-snapshot", + "sites": ["mobile/src/worktree/worktree-catalog-snapshot-client.ts"], + "schedules": [], + "steps": [ + { + "action": "fetch", + "id": "fetch" + }, + { + "checkpoint": "catalog-pending" + }, + { + "complete": "worktree.ps#1", + "params": { + "limit": 10000, + "supportsWorktreeVisibilitySourceDefaults": true, + "afterSnapshotId": null + }, + "reply": { + "ok": true, + "result": { + "snapshotId": "snapshot-1", + "worktrees": [ + { + "worktreeId": "w-1", + "displayName": "One", + "repo": "Repo" + } + ] + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "worktree-retired-names", + "operation": "worktree.retired-names", + "version": 1, + "family": "worktree.retired-names", + "sites": ["mobile/src/worktree/use-retired-worktree-names.ts"], + "schedules": [], + "steps": [ + { + "action": "mount", + "id": "mount" + }, + { + "checkpoint": "names-pending" + }, + { + "complete": "worktree.listRetiredNames#1", + "params": { + "repo": "id:repo-1" + }, + "reply": { + "ok": true, + "result": { + "retiredNamesByRepo": { + "repo-1": ["marlin", "orca"] + }, + "retiredNameTiersByRepo": { + "repo-1": 2 + } + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "host-worktree-actions-pin-open-delete", + "operation": "host.worktree-actions", + "version": 1, + "family": "host.worktree-actions", + "sites": ["mobile/src/host-screen/use-host-worktree-actions.ts"], + "schedules": [], + "steps": [ + { + "action": "mount", + "id": "mount" + }, + { + "action": "toggle-pin", + "id": "toggle-pin" + }, + { + "checkpoint": "pin-optimistic" + }, + { + "complete": "worktree.set#1", + "params": { + "worktree": "id:wt-1", + "isPinned": true + }, + "reply": { + "ok": true, + "result": { + "ok": true + } + } + }, + { + "action": "open-session", + "id": "open-session" + }, + { + "complete": "worktree.activate#1", + "params": { + "worktree": "id:wt-1", + "notifyClients": false, + "navigation": "caller" + }, + "reply": { + "ok": true, + "result": { + "ok": true + } + } + }, + { + "action": "delete", + "id": "delete" + }, + { + "checkpoint": "delete-optimistic" + }, + { + "complete": "worktree.rm#1", + "params": { + "worktree": "id:wt-1", + "force": true + }, + "reply": { + "ok": true, + "result": { + "ok": true + } + } + }, + { + "checkpoint": "settled" + } + ] + }, + { + "id": "host-worktree-delete-refused", + "operation": "host.worktree-actions", + "version": 1, + "family": "host.worktree-actions", + "sites": ["mobile/src/host-screen/use-host-worktree-actions.ts"], + "schedules": [], + "steps": [ + { + "action": "mount", + "id": "mount" + }, + { + "action": "delete", + "id": "delete" + }, + { + "checkpoint": "delete-optimistic" + }, + { + "complete": "worktree.rm#1", + "params": { + "worktree": "id:wt-1", + "force": true + }, + "reply": { + "ok": false, + "error": { + "code": "worktree_busy", + "message": "Worktree is busy" + } + } + }, + { + "checkpoint": "restored" + } + ] } ] } diff --git a/mobile/src/components/codex-reset-credit-capability-operations.ts b/mobile/src/components/codex-reset-credit-capability-operations.ts new file mode 100644 index 00000000000..71502c945e2 --- /dev/null +++ b/mobile/src/components/codex-reset-credit-capability-operations.ts @@ -0,0 +1,33 @@ +import { bindDeferredRpcOperation, defineRpcOperation } from '../transport/rpc-operation' +import type { RpcCompatibleReader } from '../transport/rpc-operation-contract' +import { rpcReadUnchecked } from '../transport/rpc-reader-payload' + +// Reads the capability list off a status the object policy already admitted, so a non-object +// result reads as no capabilities rather than throwing — which is what the probe's `catch` did. +const capabilityListReader: RpcCompatibleReader< + Record, + 'capabilities', + unknown +> = (raw) => rpcReadUnchecked('capabilities', raw.capabilities) + +/** + * status.get read for the Codex reset-credit probe, with its own policy on that method. + * + * The probe treats a refusal, a null result and a non-object result identically as "unsupported", + * which only `object-result-or-null` expresses, and which is what `rpcObjectResultOrNull` already + * spelled at this call site. + */ +export const codexResetCreditCapabilityRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'status.codex-reset-credit-capability', + method: 'status.get', + acceptance: 'object-result-or-null', + barrier: 'after-caller-barrier', + read: capabilityListReader + }) +) + +/** What the probe sends with, named from an operation so no module names the raw port. */ +export type MobileCodexResetCapabilityRpcSender = Parameters< + typeof codexResetCreditCapabilityRead.request +>[0] diff --git a/mobile/src/components/codex-reset-credit-capability.ts b/mobile/src/components/codex-reset-credit-capability.ts index 8e88f74f2f9..5246860a928 100644 --- a/mobile/src/components/codex-reset-credit-capability.ts +++ b/mobile/src/components/codex-reset-credit-capability.ts @@ -2,18 +2,22 @@ import { useEffect, useState } from 'react' import { CODEX_RESET_CREDIT_RUNTIME_CAPABILITY } from '../../../src/shared/protocol-version' import type { RpcClient } from '../transport/rpc-client' import { startRuntimeCapabilityProbe } from '../transport/runtime-capability-probe' -import { rpcObjectResultOrNull } from '../transport/rpc-acceptance-policies' +import { + codexResetCreditCapabilityRead, + type MobileCodexResetCapabilityRpcSender +} from './codex-reset-credit-capability-operations' // Why: source the capability string from the shared contract so a host bump can never // silently drift from the mobile probe. export const MOBILE_CODEX_RESET_CREDIT_CAPABILITY = CODEX_RESET_CREDIT_RUNTIME_CAPABILITY export async function readCodexResetCreditCapability( - client: Pick + client: MobileCodexResetCapabilityRpcSender ): Promise { try { - const response = await client.sendRequest('status.get') - const capabilities = rpcObjectResultOrNull(response)?.capabilities + const capabilities = codexResetCreditCapabilityRead.interpret( + await codexResetCreditCapabilityRead.request(client) + ) return ( Array.isArray(capabilities) && capabilities.includes(MOBILE_CODEX_RESET_CREDIT_CAPABILITY) ) diff --git a/mobile/src/components/new-workspace-operations.ts b/mobile/src/components/new-workspace-operations.ts new file mode 100644 index 00000000000..bd3a6a24990 --- /dev/null +++ b/mobile/src/components/new-workspace-operations.ts @@ -0,0 +1,40 @@ +import { bindDeferredRpcOperation, defineRpcOperation } from '../transport/rpc-operation' +import type { RpcCompatibleReader } from '../transport/rpc-operation-contract' +import { rpcReadUnchecked, rpcUncheckedPayloadReader } from '../transport/rpc-reader-payload' + +// The New Workspace drawer's own reads. Its SSH connect, SSH state and agent detection are the +// workspace-create operations in ../tasks/mobile-workspace-source-operations.ts, asked with the +// same acceptance by the same flow, so the drawer sends those rather than restating them. + +/** + * repo.hooks read for the drawer, the second of two policies on this method. + * + * The tasks create path (`repo.setup-hooks`) throws the host's message because it cannot decide + * whether to run setup without an answer. The drawer only decorates a form: a refusal leaves the + * advanced section on its defaults and the message is never shown, so refusal is a skip here. + */ +export const newWorkspaceSetupHooksRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'repo.drawer-setup-hooks-or-skip', + method: 'repo.hooks', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('repo-hooks') + }) +) + +// Reads `ui` the way the drawer always has: through optional chaining, so a null or absent result +// is untrusted-but-not-fatal rather than the property-read throw the Tasks screen's reader keeps. +const optionalUiMemberReader: RpcCompatibleReader = (raw) => + rpcReadUnchecked('optional-ui-member', raw == null ? undefined : Object(raw).ui) + +/** Persisted UI state, read for the trusted-hooks record only. A refused read trusts nothing. */ +export const newWorkspaceUiStateRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'ui.new-workspace-trust-or-skip', + method: 'ui.get', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: optionalUiMemberReader + }) +) diff --git a/mobile/src/components/use-new-workspace-execution-target.ts b/mobile/src/components/use-new-workspace-execution-target.ts index 27302d9ecb2..1a3c7798931 100644 --- a/mobile/src/components/use-new-workspace-execution-target.ts +++ b/mobile/src/components/use-new-workspace-execution-target.ts @@ -1,7 +1,12 @@ import { useEffect, useState } from 'react' import type { SshConnectionState } from '../../../src/shared/ssh-types' import type { RpcClient } from '../transport/rpc-client' -import type { RpcSuccess } from '../transport/types' +import { + localAgentDetectionRead, + remoteAgentDetectionRead, + sshRepoConnectRun, + sshRepoStateRead +} from '../tasks/mobile-workspace-source-operations' import { deriveWorkspaceSshGate, type WorkspaceSshGate } from '../tasks/workspace-ssh-gate' type DetectedAgentIdsState = { @@ -48,17 +53,15 @@ export function useNewWorkspaceExecutionTarget(args: { return } let stale = false - void client - .sendRequest('ssh.getState', { targetId: connectionId }) - .then((response) => { + void sshRepoStateRead + .request(client, { targetId: connectionId }) + .then((reply) => { if (stale) { return } - if (!response.ok) { - throw new Error(response.error.message) - } - const state = (response as RpcSuccess).result as { state?: SshConnectionState | null } - setSshState(state.state ?? fallbackSshState(connectionId, 'disconnected', null)) + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + const state = sshRepoStateRead.interpret(reply) as SshConnectionState | null | undefined + setSshState(state ?? fallbackSshState(connectionId, 'disconnected', null)) }) .catch((error) => { if (!stale) { @@ -83,13 +86,16 @@ export function useNewWorkspaceExecutionTarget(args: { let stale = false void (async () => { try { - const response = connectionId - ? await client.sendRequest('preflight.detectRemoteAgents', { connectionId }) - : await client.sendRequest('preflight.detectAgents') + const detected = connectionId + ? remoteAgentDetectionRead.interpret( + await remoteAgentDetectionRead.request(client, { connectionId }) + ) + : localAgentDetectionRead.interpret(await localAgentDetectionRead.request(client)) if (!stale) { setDetectedAgentIdsState({ connectionId, - ids: response.ok ? new Set((response as RpcSuccess).result as string[]) : new Set() + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + ids: detected.accepted ? new Set(detected.value as string[]) : new Set() }) } } catch { @@ -110,16 +116,14 @@ export function useNewWorkspaceExecutionTarget(args: { setConnectingTargetId(connectionId) setSshState(fallbackSshState(connectionId, 'connecting', null)) try { - const response = await client.sendRequest( - 'ssh.connect', + const reply = await sshRepoConnectRun.request( + client, { targetId: connectionId }, { timeoutMs: 120_000 } ) - if (!response.ok) { - throw new Error(response.error.message) - } - const result = (response as RpcSuccess).result as { state?: SshConnectionState | null } - setSshState(result.state ?? fallbackSshState(connectionId, 'connected', null)) + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + const state = sshRepoConnectRun.interpret(reply) as SshConnectionState | null | undefined + setSshState(state ?? fallbackSshState(connectionId, 'connected', null)) } catch (error) { setSshState( fallbackSshState( diff --git a/mobile/src/components/use-new-workspace-runtime-context.ts b/mobile/src/components/use-new-workspace-runtime-context.ts index b7d3b142675..a4540eb2ebb 100644 --- a/mobile/src/components/use-new-workspace-runtime-context.ts +++ b/mobile/src/components/use-new-workspace-runtime-context.ts @@ -1,19 +1,33 @@ import { optionalSettingsRead } from '../transport/settings-read-operations' import { useEffect, useState } from 'react' import type { PersistedTrustedOrcaHooks } from '../../../src/shared/orca-yaml-hook-types' +import type { RpcAcceptedResult } from '../transport/rpc-accepted-result' import type { RpcClient } from '../transport/rpc-client' -import type { RpcResponse, RpcSuccess } from '../transport/types' +import type { RpcResponse } from '../transport/types' +import { taskLinearStatusRead, taskPreflightRead } from '../tasks/mobile-task-runtime-operations' import { filterAvailableTaskProviders, normalizeVisibleTaskProviders, type TaskProvider } from '../tasks/mobile-task-providers' import type { NewWorktreeRuntimeSettings } from './new-worktree-agent-selection' +import { newWorkspaceUiStateRead } from './new-workspace-operations' -type UiGetResult = { ui?: { trustedOrcaHooks?: PersistedTrustedOrcaHooks } } | null | undefined +/** One member off a probe payload the drawer only re-typed, keeping its optional-chaining read. */ +function readProbeMember(payload: unknown, key: string): unknown { + return payload == null ? undefined : Object(payload)[key] +} -function settledSuccess(entry: PromiseSettledResult): RpcSuccess | null { - return entry.status === 'fulfilled' && entry.value.ok ? (entry.value as RpcSuccess) : null +/** A settled probe's accepted payload, or undefined when it never landed or was refused. */ +function settledValue( + entry: PromiseSettledResult, + interpret: (reply: RpcResponse) => RpcAcceptedResult +): unknown { + if (entry.status !== 'fulfilled') { + return undefined + } + const verdict = interpret(entry.value) + return verdict.accepted ? verdict.value : undefined } export function useNewWorkspaceRuntimeContext( @@ -38,12 +52,12 @@ export function useNewWorkspaceRuntimeContext( let stale = false void (async () => { const probes = Promise.allSettled([ - client.sendRequest('preflight.check'), - client.sendRequest('linear.status') + taskPreflightRead.request(client), + taskLinearStatusRead.request(client) ]) const [settingsRes, uiRes] = await Promise.allSettled([ optionalSettingsRead.request(client), - client.sendRequest('ui.get') + newWorkspaceUiStateRead.request(client) ]) if (stale) { return @@ -60,11 +74,13 @@ export function useNewWorkspaceRuntimeContext( if (settingsValue) { setRuntimeSettings(settingsValue) } - const uiResult = settledSuccess(uiRes) - if (uiResult) { - // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary; a missing result reads as untrusted. - const ui = (uiResult.result as UiGetResult)?.ui - setTrustedOrcaHooks(ui?.trustedOrcaHooks ?? {}) + if (uiRes.status === 'fulfilled') { + const ui = newWorkspaceUiStateRead.interpret(uiRes.value) + if (ui.accepted) { + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary; a missing result reads as untrusted. + const trust = ui.value as { trustedOrcaHooks?: PersistedTrustedOrcaHooks } | undefined + setTrustedOrcaHooks(trust?.trustedOrcaHooks ?? {}) + } } const [preflightRes, linearRes] = await probes @@ -72,10 +88,12 @@ export function useNewWorkspaceRuntimeContext( return } const glabInstalled = - (settledSuccess(preflightRes)?.result as { glab?: { installed?: boolean } } | undefined) - ?.glab?.installed === true + readProbeMember( + readProbeMember(settledValue(preflightRes, taskPreflightRead.interpret), 'glab'), + 'installed' + ) === true const linearConnected = - (settledSuccess(linearRes)?.result as { connected?: boolean } | undefined)?.connected === + readProbeMember(settledValue(linearRes, taskLinearStatusRead.interpret), 'connected') === true const visibleProviders = normalizeVisibleTaskProviders(settingsValue?.visibleTaskProviders) setAvailableProviders( diff --git a/mobile/src/components/use-new-workspace-setup-script.ts b/mobile/src/components/use-new-workspace-setup-script.ts index e564b8365e3..2df9067c0e8 100644 --- a/mobile/src/components/use-new-workspace-setup-script.ts +++ b/mobile/src/components/use-new-workspace-setup-script.ts @@ -1,7 +1,7 @@ import { useEffect, useState } from 'react' import type { RpcClient } from '../transport/rpc-client' -import type { RpcSuccess } from '../transport/types' import { normalizeSetupHookTrust } from '../tasks/setup-hook-trust' +import { newWorkspaceSetupHooksRead } from './new-workspace-operations' import type { WorkspaceCreateSetupDecision } from '../tasks/workspace-create-params' import type { MobileWorkspaceRepo, @@ -39,13 +39,15 @@ export function useNewWorkspaceSetupScript(args: { return } let stale = false - void client - .sendRequest('repo.hooks', { repo: `id:${selectedRepo.id}` }) - .then((response) => { - if (stale || !response.ok) { + void newWorkspaceSetupHooksRead + .request(client, { repo: `id:${selectedRepo.id}` }) + .then((reply) => { + const hooks = newWorkspaceSetupHooksRead.interpret(reply) + if (stale || !hooks.accepted) { return } - const result = (response as RpcSuccess).result as RepoHooksResponse + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + const result = hooks.value as RepoHooksResponse const command = result.hooks?.scripts?.setup?.trim() || null const runPolicy = result.setupRunPolicy ?? 'run-by-default' setDetails({ diff --git a/mobile/src/files/mobile-file-mutation-ownership.ts b/mobile/src/files/mobile-file-mutation-ownership.ts index e5a1cbbeb65..978cb0796d8 100644 --- a/mobile/src/files/mobile-file-mutation-ownership.ts +++ b/mobile/src/files/mobile-file-mutation-ownership.ts @@ -2,8 +2,12 @@ import { parseExecutionHostId } from '../../../src/shared/execution-host' import { assertFileMutationOwnershipCapability } from '../../../src/shared/file-mutation-ownership' import type { RuntimeStatus } from '../../../src/shared/runtime-types' import type { SshConnectionState, SshMutationExpectation } from '../../../src/shared/ssh-types' -import type { RpcClient } from '../transport/rpc-client' -import type { RpcFailure, RpcSuccess } from '../transport/types' +import { + fileOwnershipRuntimeStatusRead, + fileOwnershipSshStateRead, + fileOwnershipWorktreeRead, + type MobileFileOwnershipRpcSender +} from './mobile-file-ownership-operations' const FILE_MUTATION_TIMEOUT_MS = 15_000 const SSH_OWNER_CHANGED_MESSAGE = @@ -35,47 +39,42 @@ export function buildMobileFileMutationOwnership( } export async function captureMobileFileMutationOwnership( - client: Pick, + client: MobileFileOwnershipRpcSender, worktree: string ): Promise { - const status = await requestResult>( - client, - 'status.get', - undefined - ) + const statusReply = await fileOwnershipRuntimeStatusRead.request(client, undefined, { + timeoutMs: FILE_MUTATION_TIMEOUT_MS + }) + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + const status = fileOwnershipRuntimeStatusRead.interpret(statusReply) as Pick< + RuntimeStatus, + 'capabilities' + > assertFileMutationOwnershipCapability(status) - const result = await requestResult<{ worktree?: { hostId?: string | null } }>( + const worktreeReply = await fileOwnershipWorktreeRead.request( client, - 'worktree.show', - { worktree } + { worktree }, + { timeoutMs: FILE_MUTATION_TIMEOUT_MS } ) - if (!result.worktree) { + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + const summary = fileOwnershipWorktreeRead.interpret(worktreeReply) as + | { hostId?: string | null } + | undefined + if (!summary) { throw new Error(SSH_OWNER_CHANGED_MESSAGE) } - const host = parseExecutionHostId(result.worktree.hostId) - const sshState = - host?.kind === 'ssh' - ? ( - await requestResult<{ state: SshConnectionState | null }>(client, 'ssh.getState', { - targetId: host.targetId - }) - ).state - : null - return buildMobileFileMutationOwnership(result.worktree.hostId, sshState) -} - -async function requestResult( - client: Pick, - method: string, - params: unknown -): Promise { - const response = await client.sendRequest(method, params, { - timeoutMs: FILE_MUTATION_TIMEOUT_MS - }) - if (!response.ok) { - throw new Error((response as RpcFailure).error.message) + const host = parseExecutionHostId(summary.hostId) + let sshState: SshConnectionState | null = null + if (host?.kind === 'ssh') { + const stateReply = await fileOwnershipSshStateRead.request( + client, + { targetId: host.targetId }, + { timeoutMs: FILE_MUTATION_TIMEOUT_MS } + ) + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + sshState = fileOwnershipSshStateRead.interpret(stateReply) as SshConnectionState | null } - return (response as RpcSuccess).result as TResult + return buildMobileFileMutationOwnership(summary.hostId, sshState) } diff --git a/mobile/src/files/mobile-file-ownership-operations.ts b/mobile/src/files/mobile-file-ownership-operations.ts new file mode 100644 index 00000000000..82084993729 --- /dev/null +++ b/mobile/src/files/mobile-file-ownership-operations.ts @@ -0,0 +1,35 @@ +import { bindDeferredRpcOperation, defineRpcOperation } from '../transport/rpc-operation' +import { rpcUncheckedMemberReader } from '../transport/rpc-reader-payload' + +// The three reads that pin which execution host owns a workspace before a file mutation is sent. +// All three share one acceptance because the capture is all-or-nothing: any refusal aborts the +// mutation with the host's own message rather than letting a write land on the wrong host. + +// The runtime status this gate needs is the one the Tasks screen already asks for, field for +// field. A second operation would only be a second name for the same wire. +export { taskRuntimeStatusRead as fileOwnershipRuntimeStatusRead } from '../tasks/mobile-task-runtime-operations' + +/** The workspace row the mutation targets. A null result throws where `result.worktree` did. */ +export const fileOwnershipWorktreeRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'worktree.file-mutation-owner', + method: 'worktree.show', + acceptance: 'require-result-or-throw-message', + barrier: 'after-caller-barrier', + read: rpcUncheckedMemberReader('worktree-summary', 'worktree') + }) +) + +/** The SSH connection generation the mutation is expected to still be running on. */ +export const fileOwnershipSshStateRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'ssh.file-mutation-owner-state', + method: 'ssh.getState', + acceptance: 'require-result-or-throw-message', + barrier: 'after-caller-barrier', + read: rpcUncheckedMemberReader('ssh-connection-state', 'state') + }) +) + +/** What an ownership capture sends with, named from an operation so no module names the raw port. */ +export type MobileFileOwnershipRpcSender = Parameters[0] diff --git a/mobile/src/files/mobile-file-preview-operations.ts b/mobile/src/files/mobile-file-preview-operations.ts new file mode 100644 index 00000000000..ac679e61bce --- /dev/null +++ b/mobile/src/files/mobile-file-preview-operations.ts @@ -0,0 +1,83 @@ +import { bindDeferredRpcOperation, defineRpcOperation } from '../transport/rpc-operation' +import { rpcUncheckedPayloadReader } from '../transport/rpc-reader-payload' + +/** + * The preview screen's reads and writes. + * + * Every one of them is a skip rather than a throw, because a refused preview is not an error the + * screen raises: it is a result the screen renders. The refusal itself stays at the call site, + * which maps the host's code and message into display copy (`previewError`) and decides whether + * the failure is a stale terminal-artifact grant worth refreshing. No acceptance policy exposes a + * refusal code, and only these two consumers want one. + * + * The payloads are unchecked here because the shape depends on the path, not on the method: + * `normalizeMobileFilePreviewResult` picks the image or text projection from the file name, which + * a module-level reader cannot see. + */ + +/** files.read for a preview. The tab doc asks the same method under a throwing policy. */ +export const filePreviewTextRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'files.preview-text-or-skip', + method: 'files.read', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('file-preview') + }) +) + +/** files.readPreview for a preview; the tab doc's image read is the other policy on it. */ +export const filePreviewImageRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'files.preview-image-or-skip', + method: 'files.readPreview', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('file-preview') + }) +) + +export const terminalArtifactTextRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'files.terminal-artifact-text-or-skip', + method: 'files.readTerminalArtifact', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('file-preview') + }) +) + +export const terminalArtifactImageRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'files.terminal-artifact-image-or-skip', + method: 'files.readTerminalArtifactPreview', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('file-preview') + }) +) + +/** The save. Its reply body is never read: a success is the whole answer. */ +export const terminalArtifactWrite = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'files.write-terminal-artifact-or-skip', + method: 'files.writeTerminalArtifact', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('artifact-written') + }) +) + +/** Re-resolves a terminal path to mint a fresh grant. A refusal leaves the stale grant in place. */ +export const terminalArtifactPathResolve = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'files.resolve-terminal-path-or-skip', + method: 'files.resolveTerminalPath', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('terminal-path-resolution') + }) +) + +/** What a preview send takes, named from an operation so no module names the raw port. */ +export type MobileFilePreviewRpcSender = Parameters[0] diff --git a/mobile/src/files/mobile-file-preview-request.test.ts b/mobile/src/files/mobile-file-preview-request.test.ts index fe15cad0b07..9c8692e5a78 100644 --- a/mobile/src/files/mobile-file-preview-request.test.ts +++ b/mobile/src/files/mobile-file-preview-request.test.ts @@ -4,9 +4,12 @@ import { createMobileFilePreviewRequest, formatPreviewByteLength, loadMobileFilePreview, - normalizeMobileFilePreviewResponse, saveMobileTerminalArtifactPreview } from './mobile-file-preview-request' +import { + normalizeMobileFilePreviewResult, + previewErrorFromRefusal +} from './mobile-file-preview-response' function ok(result: unknown): RpcSuccess { return { id: '1', ok: true, result, _meta: { runtimeId: 'runtime-1' } } @@ -592,7 +595,7 @@ describe('mobile-file-preview-request', () => { ['missing mimeType', { content: 'aW1hZ2U=', isBinary: true, isImage: true }], ['empty content', { content: '', isBinary: true, isImage: true, mimeType: 'image/png' }] ])('rejects invalid image preview results: %s', (_label, result) => { - expect(normalizeMobileFilePreviewResponse('assets/logo.png', ok(result))).toEqual({ + expect(normalizeMobileFilePreviewResult('assets/logo.png', result)).toEqual({ status: 'error', message: 'Binary preview unavailable', reconnect: false @@ -601,10 +604,11 @@ describe('mobile-file-preview-request', () => { it('normalizes markdown, html, text, empty, and truncated reads', () => { expect( - normalizeMobileFilePreviewResponse( - 'README.md', - ok({ content: '# Hi', truncated: false, byteLength: 4 }) - ) + normalizeMobileFilePreviewResult('README.md', { + content: '# Hi', + truncated: false, + byteLength: 4 + }) ).toEqual({ status: 'ready', kind: 'markdown', @@ -613,16 +617,18 @@ describe('mobile-file-preview-request', () => { byteLength: 4 }) expect( - normalizeMobileFilePreviewResponse( - 'index.html', - ok({ content: '

Hi

', truncated: false, byteLength: 11 }) - ) + normalizeMobileFilePreviewResult('index.html', { + content: '

Hi

', + truncated: false, + byteLength: 11 + }) ).toMatchObject({ status: 'ready', kind: 'html' }) expect( - normalizeMobileFilePreviewResponse( - 'src/app.ts', - ok({ content: 'const a = 1', truncated: true, byteLength: 700_000 }) - ) + normalizeMobileFilePreviewResult('src/app.ts', { + content: 'const a = 1', + truncated: true, + byteLength: 700_000 + }) ).toEqual({ status: 'ready', kind: 'text', @@ -631,10 +637,11 @@ describe('mobile-file-preview-request', () => { byteLength: 700_000 }) expect( - normalizeMobileFilePreviewResponse( - 'empty.txt', - ok({ content: '', truncated: false, byteLength: 0 }) - ) + normalizeMobileFilePreviewResult('empty.txt', { + content: '', + truncated: false, + byteLength: 0 + }) ).toEqual({ status: 'empty', kind: 'text' }) }) @@ -651,7 +658,7 @@ describe('mobile-file-preview-request', () => { ['terminal_file_grant_stale', 'Reload preview before saving', false], ['permission denied', 'Unable to load preview', false] ])('maps preview failure %s', (message, expected, reconnect) => { - expect(normalizeMobileFilePreviewResponse('src/app.ts', fail(message))).toEqual({ + expect(previewErrorFromRefusal(fail(message).error)).toEqual({ status: 'error', message: expected, reconnect diff --git a/mobile/src/files/mobile-file-preview-request.ts b/mobile/src/files/mobile-file-preview-request.ts index 63b61326654..5a76dc33560 100644 --- a/mobile/src/files/mobile-file-preview-request.ts +++ b/mobile/src/files/mobile-file-preview-request.ts @@ -1,9 +1,18 @@ import { classifyMobileArtifact } from '../session/mobile-artifact-kind' +import type { RpcAcceptedResult } from '../transport/rpc-accepted-result' import type { RpcFailure, RpcResponse } from '../transport/types' -import type { RpcClient } from '../transport/rpc-client' import { - normalizeMobileFilePreviewResponse, + filePreviewImageRead, + filePreviewTextRead, + terminalArtifactImageRead, + terminalArtifactTextRead, + terminalArtifactWrite, + type MobileFilePreviewRpcSender +} from './mobile-file-preview-operations' +import { + normalizeMobileFilePreviewResult, previewError, + previewErrorFromRefusal, type MobileFilePreviewResult } from './mobile-file-preview-response' import { @@ -12,11 +21,8 @@ import { type TerminalArtifactRetryOptions } from './mobile-terminal-artifact-grant-refresh' -export { - formatPreviewByteLength, - normalizeMobileFilePreviewResponse, - previewError -} from './mobile-file-preview-response' +export { formatPreviewByteLength, previewError } from './mobile-file-preview-response' + export type { MobileFilePreviewResult, MobileFilePreviewTextKind @@ -35,17 +41,26 @@ export type MobileFilePreviewSource = } | MobileTerminalArtifactPreviewSource -export type MobileFilePreviewRequest = { - method: MobileFilePreviewReadMethod | MobileTerminalArtifactPreviewReadMethod - params: { - worktree: string - relativePath?: string - absolutePath?: string - grantId?: string - } -} +/** Which read the path selects, and the params that read takes. */ +export type MobileFilePreviewRequest = + | { + method: MobileFilePreviewReadMethod + params: { worktree: string; relativePath: string } + } + | { + method: MobileTerminalArtifactPreviewReadMethod + params: { worktree: string; absolutePath: string; grantId: string } + } + +/** + * A settled preview send. The refusal is carried rather than interpreted because the preview + * screen's fallback copy is the host's `code`, which no acceptance policy exposes, and the grant + * refresh reads the same code to decide whether a stale grant is worth re-minting. + */ +type MobileFilePreviewOutcome = + | { accepted: true; payload: unknown } + | { accepted: false; refusal: RpcFailure['error'] } -type MobileFilePreviewClient = Pick type TerminalArtifactSource = MobileTerminalArtifactPreviewSource type TerminalArtifactSaveOptions = TerminalArtifactRetryOptions & { baseContent?: string @@ -83,35 +98,80 @@ export function createMobileFilePreviewRequest( } } +async function sendMobileFilePreviewRead( + client: MobileFilePreviewRpcSender, + request: MobileFilePreviewRequest +): Promise { + switch (request.method) { + case 'files.read': + return settlePreviewSend( + await filePreviewTextRead.request(client, request.params), + filePreviewTextRead.interpret + ) + case 'files.readPreview': + return settlePreviewSend( + await filePreviewImageRead.request(client, request.params), + filePreviewImageRead.interpret + ) + case 'files.readTerminalArtifact': + return settlePreviewSend( + await terminalArtifactTextRead.request(client, request.params), + terminalArtifactTextRead.interpret + ) + case 'files.readTerminalArtifactPreview': + return settlePreviewSend( + await terminalArtifactImageRead.request(client, request.params), + terminalArtifactImageRead.interpret + ) + } +} + +function settlePreviewSend( + reply: RpcResponse, + interpret: (reply: RpcResponse) => RpcAcceptedResult +): MobileFilePreviewOutcome { + const verdict = interpret(reply) + return verdict.accepted + ? { accepted: true, payload: verdict.value } + : // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: this policy skips only a refusal, so an unaccepted reply is a failure envelope. + { accepted: false, refusal: (reply as RpcFailure).error } +} + export async function loadMobileFilePreview( - client: MobileFilePreviewClient, + client: MobileFilePreviewRpcSender, worktreeIdOrSource: string | MobileFilePreviewSource, relativePath?: string, options: TerminalArtifactRetryOptions = {} ): Promise { let source = worktreeIdOrSource - let request = createMobileFilePreviewRequest(source, relativePath) - let response = await client.sendRequest(request.method, request.params) - if (!response.ok && typeof source !== 'string' && source.source === 'terminalArtifact') { + let read = await sendMobileFilePreviewRead( + client, + createMobileFilePreviewRequest(source, relativePath) + ) + if (!read.accepted && typeof source !== 'string' && source.source === 'terminalArtifact') { const refreshed = await refreshTerminalArtifactSourceAfterGrantFailure( client, source, - response, + read.refusal, options ) if (refreshed) { source = refreshed options.onTerminalArtifactSourceRefreshed?.(refreshed) - request = createMobileFilePreviewRequest(source, relativePath) - response = await client.sendRequest(request.method, request.params) + read = await sendMobileFilePreviewRead( + client, + createMobileFilePreviewRequest(source, relativePath) + ) } } const previewPath = typeof source === 'string' ? relativePath! : previewPathForSource(source) - return normalizeMobileFilePreviewResponse(previewPath, response) + return read.accepted + ? normalizeMobileFilePreviewResult(previewPath, read.payload) + : previewErrorFromRefusal(read.refusal) } export async function saveMobileTerminalArtifactPreview( - client: MobileFilePreviewClient, + client: MobileFilePreviewRpcSender, source: TerminalArtifactSource, content: string, options: TerminalArtifactSaveOptions = {} @@ -135,26 +195,22 @@ export async function saveMobileTerminalArtifactPreview( options.onTerminalArtifactSourceRefreshed?.(verified.source) } } - let response = await writeTerminalArtifactPreview(client, writeSource, content) - if (response.ok) { + let write = await writeTerminalArtifactPreview(client, writeSource, content) + if (write.accepted) { return { status: 'saved' } } if (typeof options.baseContent !== 'string') { - return previewError( - (response as RpcFailure).error.message || (response as RpcFailure).error.code - ) + return previewErrorFromRefusal(write.refusal) } const refreshed = await refreshTerminalArtifactSourceAfterGrantFailure( client, writeSource, - response, + write.refusal, options ) if (!refreshed) { - return previewError( - (response as RpcFailure).error.message || (response as RpcFailure).error.code - ) + return previewErrorFromRefusal(write.refusal) } const verified = await verifyTerminalArtifactBaseContent(client, refreshed, options.baseContent, { refreshGrant: false @@ -164,17 +220,15 @@ export async function saveMobileTerminalArtifactPreview( } options.onTerminalArtifactSourceRefreshed?.(refreshed) writeSource = verified.source - response = await writeTerminalArtifactPreview(client, writeSource, content) - if (!response.ok) { - return previewError( - (response as RpcFailure).error.message || (response as RpcFailure).error.code - ) + write = await writeTerminalArtifactPreview(client, writeSource, content) + if (!write.accepted) { + return previewErrorFromRefusal(write.refusal) } return { status: 'saved' } } async function verifyTerminalArtifactBaseContent( - client: MobileFilePreviewClient, + client: MobileFilePreviewRpcSender, source: TerminalArtifactSource, baseContent: string, options: TerminalArtifactRetryOptions @@ -183,38 +237,26 @@ async function verifyTerminalArtifactBaseContent( | { status: 'error'; error: MobileFilePreviewResult } > { let readSource = source - let request = createMobileFilePreviewRequest(readSource) - let response = await client.sendRequest(request.method, request.params) + let read = await sendMobileFilePreviewRead(client, createMobileFilePreviewRequest(readSource)) let refreshed = false - if (!response.ok) { + if (!read.accepted) { const nextSource = await refreshTerminalArtifactSourceAfterGrantFailure( client, readSource, - response, + read.refusal, options ) if (!nextSource) { - return { - status: 'error', - error: previewError( - (response as RpcFailure).error.message || (response as RpcFailure).error.code - ) - } + return { status: 'error', error: previewErrorFromRefusal(read.refusal) } } readSource = nextSource refreshed = true - request = createMobileFilePreviewRequest(readSource) - response = await client.sendRequest(request.method, request.params) + read = await sendMobileFilePreviewRead(client, createMobileFilePreviewRequest(readSource)) } - if (!response.ok) { - return { - status: 'error', - error: previewError( - (response as RpcFailure).error.message || (response as RpcFailure).error.code - ) - } + if (!read.accepted) { + return { status: 'error', error: previewErrorFromRefusal(read.refusal) } } - const latest = normalizeMobileFilePreviewResponse(readSource.absolutePath, response) + const latest = normalizeMobileFilePreviewResult(readSource.absolutePath, read.payload) if (latest.status === 'error' || latest.status === 'waiting') { return { status: 'error', error: latest } } @@ -231,17 +273,20 @@ async function verifyTerminalArtifactBaseContent( return { status: 'ok', source: readSource, refreshed } } -function writeTerminalArtifactPreview( - client: MobileFilePreviewClient, +async function writeTerminalArtifactPreview( + client: MobileFilePreviewRpcSender, source: TerminalArtifactSource, content: string -): Promise { - return client.sendRequest('files.writeTerminalArtifact', { - worktree: `id:${source.worktreeId}`, - absolutePath: source.absolutePath, - grantId: source.grantId, - content - }) +): Promise { + return settlePreviewSend( + await terminalArtifactWrite.request(client, { + worktree: `id:${source.worktreeId}`, + absolutePath: source.absolutePath, + grantId: source.grantId, + content + }), + terminalArtifactWrite.interpret + ) } function terminalArtifactPreviewMatchesBase( diff --git a/mobile/src/files/mobile-file-preview-response.ts b/mobile/src/files/mobile-file-preview-response.ts index 0b7b1b23be8..fba691dd2c4 100644 --- a/mobile/src/files/mobile-file-preview-response.ts +++ b/mobile/src/files/mobile-file-preview-response.ts @@ -1,5 +1,5 @@ import { classifyMobileArtifact } from '../session/mobile-artifact-kind' -import type { RpcFailure, RpcResponse, RpcSuccess } from '../transport/types' +import type { RpcFailure } from '../transport/types' import { isMarkdownPath } from './file-tree' import { isTerminalArtifactGrantError } from './terminal-artifact-grant-error' @@ -37,23 +37,22 @@ export type MobileFilePreviewResult = reconnect: boolean } -export function normalizeMobileFilePreviewResponse( +/** The accepted arm, for a call site whose acceptance policy already admitted the payload. */ +export function normalizeMobileFilePreviewResult( relativePath: string, - response: RpcResponse + result: unknown ): MobileFilePreviewResult { - if (!response.ok) { - return previewError( - (response as RpcFailure).error.message || (response as RpcFailure).error.code - ) - } - - const result = (response as RpcSuccess).result if (classifyMobileArtifact(relativePath) === 'image') { return normalizeImagePreviewResult(result) } return normalizeTextPreviewResult(relativePath, result) } +/** The refused arm. The code is the fallback copy, which is why the refusal itself is needed. */ +export function previewErrorFromRefusal(error: RpcFailure['error']): MobileFilePreviewResult { + return previewError(error.message || error.code) +} + export function previewError(message: string): MobileFilePreviewResult { const normalized = message.toLowerCase() if (normalized === 'binary_file' || normalized.includes('binary_file')) { diff --git a/mobile/src/files/mobile-file-tab-doc-operations.ts b/mobile/src/files/mobile-file-tab-doc-operations.ts new file mode 100644 index 00000000000..244d44e5e39 --- /dev/null +++ b/mobile/src/files/mobile-file-tab-doc-operations.ts @@ -0,0 +1,47 @@ +import { bindDeferredRpcOperation, defineRpcOperation } from '../transport/rpc-operation' +import { rpcUncheckedPayloadReader } from '../transport/rpc-reader-payload' + +/** + * What a session file tab reads to render one document. + * + * All three throw the host's message on refusal, which is the opposite of the preview screen's + * policy on the same two file methods: a tab maps the throw to an error doc and keeps the tab, + * while the preview screen renders the refusal as body copy. Two policies, two families, named + * here and in mobile-file-preview-operations.ts so neither can drift onto the other. + * + * The payloads stay unchecked: the tab picks its projection from the path, and moving a shape + * check into a reader would reject replies the tab renders today. + */ + +export const fileTabDiffRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'git.file-tab-diff', + method: 'git.diff', + acceptance: 'require-result-or-throw-message', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('file-tab-diff') + }) +) + +export const fileTabTextRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'files.file-tab-text', + method: 'files.read', + acceptance: 'require-result-or-throw-message', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('file-tab-text') + }) +) + +export const fileTabImageRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'files.file-tab-image', + method: 'files.readPreview', + acceptance: 'require-result-or-throw-message', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('file-tab-image') + }) +) + +/** What a file tab reads with, named from an operation so no module names the raw port. */ +export type MobileFileTabDocRpcSender = Parameters[0] diff --git a/mobile/src/files/mobile-file-tab-doc.ts b/mobile/src/files/mobile-file-tab-doc.ts index 78977b5fd30..1e9d43abbba 100644 --- a/mobile/src/files/mobile-file-tab-doc.ts +++ b/mobile/src/files/mobile-file-tab-doc.ts @@ -1,11 +1,13 @@ import { buildImageDataUri } from '../../../src/shared/image-data-uri' import { classifyMobileArtifact } from '../session/mobile-artifact-kind' import { buildMobileDiffLines, type MobileDiffLine } from '../session/mobile-diff-lines' -import type { RpcClient } from '../transport/rpc-client' -import type { RpcFailure, RpcSuccess } from '../transport/types' import { mobileDiffImageDataUri, type MobileBinaryDiffResult } from './mobile-diff-image-preview' - -type FileTabDocClient = Pick +import { + fileTabDiffRead, + fileTabImageRead, + fileTabTextRead, + type MobileFileTabDocRpcSender +} from './mobile-file-tab-doc-operations' // The ready doc a session file tab renders. Mirrors the ready arm of the route's // FileDocState; kept in src so the loader stays testable without the route. @@ -24,21 +26,19 @@ export type MobileFileTabDocRequest = { // Throws 'binary_file'/'file_too_large'/the RPC error message; callers map those // to error docs. export async function resolveMobileFileTabDoc( - client: FileTabDocClient, + client: MobileFileTabDocRpcSender, request: MobileFileTabDocRequest ): Promise { const worktree = `id:${request.worktreeId}` const { relativePath } = request if (request.diffSource === 'staged' || request.diffSource === 'unstaged') { - const response = await client.sendRequest('git.diff', { + const reply = await fileTabDiffRead.request(client, { worktree, filePath: relativePath, staged: request.diffSource === 'staged' }) - if (!response.ok) { - throw new Error((response as RpcFailure).error.message) - } - const result = (response as RpcSuccess).result as + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + const result = fileTabDiffRead.interpret(reply) as | { kind: 'text'; originalContent: string; modifiedContent: string } | MobileBinaryDiffResult if (result.kind !== 'text') { @@ -56,11 +56,9 @@ export async function resolveMobileFileTabDoc( const artifactKind = classifyMobileArtifact(relativePath) if (artifactKind === 'image') { - const preview = await client.sendRequest('files.readPreview', { worktree, relativePath }) - if (!preview.ok) { - throw new Error((preview as RpcFailure).error.message) - } - const result = (preview as RpcSuccess).result as { + const preview = await fileTabImageRead.request(client, { worktree, relativePath }) + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + const result = fileTabImageRead.interpret(preview) as { content: string isImage?: boolean mimeType?: string @@ -72,11 +70,9 @@ export async function resolveMobileFileTabDoc( return { status: 'ready', kind: 'image', dataUri } } - const response = await client.sendRequest('files.read', { worktree, relativePath }) - if (!response.ok) { - throw new Error((response as RpcFailure).error.message) - } - const result = (response as RpcSuccess).result as { + const reply = await fileTabTextRead.request(client, { worktree, relativePath }) + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + const result = fileTabTextRead.interpret(reply) as { content: string truncated: boolean byteLength: number diff --git a/mobile/src/files/mobile-terminal-artifact-grant-refresh.ts b/mobile/src/files/mobile-terminal-artifact-grant-refresh.ts index cbe5ffdebd8..0e79764437b 100644 --- a/mobile/src/files/mobile-terminal-artifact-grant-refresh.ts +++ b/mobile/src/files/mobile-terminal-artifact-grant-refresh.ts @@ -1,10 +1,11 @@ import type { RuntimeNativeChatFileContext } from '../../../src/shared/runtime-types' -import type { RpcClient } from '../transport/rpc-client' -import type { RpcFailure, RpcResponse, RpcSuccess } from '../transport/types' +import type { RpcFailure } from '../transport/types' +import { + terminalArtifactPathResolve, + type MobileFilePreviewRpcSender +} from './mobile-file-preview-operations' import { isTerminalArtifactGrantError } from './terminal-artifact-grant-error' -type MobileFilePreviewClient = Pick - export type MobileTerminalArtifactPreviewSource = { source: 'terminalArtifact' worktreeId: string @@ -22,26 +23,28 @@ export type TerminalArtifactRetryOptions = { refreshGrant?: boolean } +/** Takes the refusal rather than the envelope: every caller already routed on its own acceptance. */ export async function refreshTerminalArtifactSourceAfterGrantFailure( - client: MobileFilePreviewClient, + client: MobileFilePreviewRpcSender, source: MobileTerminalArtifactPreviewSource, - response: RpcResponse, + refusal: RpcFailure['error'], options: TerminalArtifactRetryOptions = {} ): Promise { - if (response.ok || !isTerminalArtifactGrantFailure(response, options)) { + if (!isTerminalArtifactGrantFailure(refusal, options)) { return null } - const refreshed = await client.sendRequest('files.resolveTerminalPath', { + const reply = await terminalArtifactPathResolve.request(client, { worktree: `id:${source.worktreeId}`, pathText: source.pathText ?? source.absolutePath, ...(source.cwd ? { cwd: source.cwd } : {}), ...(source.terminalHandle ? { terminal: source.terminalHandle } : {}), ...(source.nativeChatContext ? { nativeChatContext: source.nativeChatContext } : {}) }) - if (!refreshed.ok) { + const resolved = terminalArtifactPathResolve.interpret(reply) + if (!resolved.accepted) { return null } - const result = (refreshed as RpcSuccess).result + const result = resolved.value if (!isTerminalArtifactResolution(result)) { return null } @@ -62,13 +65,13 @@ export async function refreshTerminalArtifactSourceAfterGrantFailure( } function isTerminalArtifactGrantFailure( - response: RpcFailure, + refusal: RpcFailure['error'], options: TerminalArtifactRetryOptions ): boolean { if (options.refreshGrant === false) { return false } - return isTerminalArtifactGrantError(`${response.error.code} ${response.error.message}`) + return isTerminalArtifactGrantError(`${refusal.code} ${refusal.message}`) } function isTerminalArtifactResolution(result: unknown): result is { diff --git a/mobile/src/home/mobile-home-host-operations.ts b/mobile/src/home/mobile-home-host-operations.ts new file mode 100644 index 00000000000..9bd77db3710 --- /dev/null +++ b/mobile/src/home/mobile-home-host-operations.ts @@ -0,0 +1,17 @@ +import { bindDeferredRpcOperation, defineRpcOperation } from '../transport/rpc-operation' +import { rpcUncheckedPayloadReader } from '../transport/rpc-reader-payload' + +/** + * The Home card's per-host counts. Decorative: a refused summary leaves the card on whatever it + * already showed, so refusal is a skip. Its glab and Linear probes are the task-tooling reads in + * ../tasks/mobile-task-runtime-operations.ts — the same question, asked by a second screen. + */ +export const homeHostStatsRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'stats.home-summary-or-skip', + method: 'stats.summary', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('home-stats-summary') + }) +) diff --git a/mobile/src/home/mobile-home-host-requests.ts b/mobile/src/home/mobile-home-host-requests.ts index cf4c45cf4a8..70ba1f93c20 100644 --- a/mobile/src/home/mobile-home-host-requests.ts +++ b/mobile/src/home/mobile-home-host-requests.ts @@ -1,6 +1,7 @@ import { settingsRead } from '../transport/settings-read-operations' import { decodeAccountsSnapshot, type AccountsSnapshot } from '../components/AccountUsage' import type { HomeStatsSummary } from '../stats/home-stats-total' +import { taskLinearStatusRead, taskPreflightRead } from '../tasks/mobile-task-runtime-operations' import { filterAvailableTaskProviders, normalizeVisibleTaskProviders, @@ -8,6 +9,7 @@ import { } from '../tasks/mobile-task-providers' import type { RpcClient } from '../transport/rpc-client' import { sendSingleFlightRequest } from '../transport/request-single-flight' +import { homeHostStatsRead } from './mobile-home-host-operations' type HomeTaskSettings = { visibleTaskProviders?: unknown @@ -39,12 +41,15 @@ export function fetchMobileHomeStats( setStats: HomeStatsSetter, disposed: () => boolean ): void { - sendSingleFlightRequest(client, hostId, 'stats.summary') - .then((response) => { - if (!disposed() && response.ok) { + homeHostStatsRead + .requestSingleFlight(client, hostId) + .then((reply) => { + const summary = homeHostStatsRead.interpret(reply) + if (!disposed() && summary.accepted) { setStats((previous) => ({ ...previous, - [hostId]: response.result as HomeStatsSummary + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + [hostId]: summary.value as HomeStatsSummary })) } }) @@ -75,8 +80,8 @@ export function fetchMobileHomeTaskProviders( ): void { Promise.all([ settingsRead.requestSingleFlight(client, hostId), - sendSingleFlightRequest(client, hostId, 'preflight.check'), - sendSingleFlightRequest(client, hostId, 'linear.status') + taskPreflightRead.requestSingleFlight(client, hostId), + taskLinearStatusRead.requestSingleFlight(client, hostId) ]) .then(([settingsResponse, preflightResponse, linearResponse]) => { if (disposed()) { @@ -87,10 +92,16 @@ export function fetchMobileHomeTaskProviders( ? // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. ((settingsResult.value ?? {}) as HomeTaskSettings) : {} - const preflight = preflightResponse.ok - ? (preflightResponse.result as HomePreflightStatus) + const preflightResult = taskPreflightRead.interpret(preflightResponse) + const preflight = preflightResult.accepted + ? // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + (preflightResult.value as HomePreflightStatus) + : null + const linearResult = taskLinearStatusRead.interpret(linearResponse) + const linear = linearResult.accepted + ? // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + (linearResult.value as HomeLinearStatus) : null - const linear = linearResponse.ok ? (linearResponse.result as HomeLinearStatus) : null const providers = filterAvailableTaskProviders( normalizeVisibleTaskProviders(settings.visibleTaskProviders), { diff --git a/mobile/src/host-screen/host-screen-operations.ts b/mobile/src/host-screen/host-screen-operations.ts new file mode 100644 index 00000000000..4c0d3e46055 --- /dev/null +++ b/mobile/src/host-screen/host-screen-operations.ts @@ -0,0 +1,106 @@ +import { bindDeferredRpcOperation, defineRpcOperation } from '../transport/rpc-operation' +import { + rpcUncheckedMemberReader, + rpcUncheckedPayloadReader +} from '../transport/rpc-reader-payload' + +// What the host screen reads to label its rows and to mirror the desktop's workspace view store. +// Every read here is decorative: a refusal leaves the screen on what it already has and the next +// refresh retries, so all of them skip rather than throw. + +export const hostRepoCatalogRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'repo.host-catalog-or-skip', + method: 'repo.list', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('repo-catalog') + }) +) + +/** Row labels for a catalog that spans hosts. Absent on a host that predates the method. */ +export const hostSshTargetSummariesRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'ssh.host-target-summaries-or-skip', + method: 'ssh.listTargetSummaries', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('ssh-target-summaries') + }) +) + +export const hostPlatformRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'host.platform-or-skip', + method: 'host.platform', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('host-platform') + }) +) + +/** + * The desktop's shared workspace view settings, a third family on ui.get. + * + * It keeps the Tasks screen's property-read throw on a null result — the screen's own try/catch is + * what that throw has always landed in — where the New Workspace drawer's reader degrades instead. + */ +export const hostViewSettingsRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'ui.host-view-settings-or-skip', + method: 'ui.get', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedMemberReader('ui-view-settings', 'ui') + }) +) + +/** Patching the same store. Best-effort: the local state already moved, and no reply is read. */ +export const hostViewSettingsWrite = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'ui.set-host-view-settings-or-skip', + method: 'ui.set', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('ui-view-settings-written') + }) +) + +/** + * The host list's three row mutations. + * + * All three skip on refusal, which is not the policy `worktree.set-review-link` uses on the same + * method in source-control: a review link throws so the composer can report it, where a pin write + * is optimistic and its `.catch` already swallowed everything. Two policies, both named. + */ +export const worktreePinWrite = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'worktree.set-pinned-or-skip', + method: 'worktree.set', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('pin-written') + }) +) + +/** Deleting a row. Only acceptance is read: a refusal is what puts the row back. */ +export const worktreeRemove = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'worktree.remove-or-skip', + method: 'worktree.rm', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('worktree-removed') + }) +) + +/** Telling the host which workspace the phone opened. Best-effort; navigation does not wait. */ +export const worktreeActivate = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'worktree.activate-or-skip', + method: 'worktree.activate', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('worktree-activated') + }) +) diff --git a/mobile/src/host-screen/use-host-repo-metadata.ts b/mobile/src/host-screen/use-host-repo-metadata.ts index 64ece7b700e..d87d917b467 100644 --- a/mobile/src/host-screen/use-host-repo-metadata.ts +++ b/mobile/src/host-screen/use-host-repo-metadata.ts @@ -2,32 +2,47 @@ import { optionalSettingsRead } from '../transport/settings-read-operations' import { useCallback } from 'react' import { getRepoExecutionHostId } from '../../../src/shared/execution-host' import { setCachedRepos } from '../cache/repo-cache' +import type { RpcAcceptedResult } from '../transport/rpc-accepted-result' import type { RpcClient } from '../transport/rpc-client' -import type { ConnectionState, RpcResponse, RpcSuccess } from '../transport/types' +import type { ConnectionState, RpcResponse } from '../transport/types' import type { RepoSummary } from '../worktree/host-worktree-rpc-types' import { repoColor } from '../worktree/repo-color' import { buildHostLabelById, buildRepoHostIdByRepoId } from '../worktree/worktree-host-context-labels' +import { + hostPlatformRead, + hostRepoCatalogRead, + hostSshTargetSummariesRead +} from './host-screen-operations' import type { HostScreenState } from './use-host-screen-state' const REPO_METADATA_REFRESH_MS = 60_000 type SshTargetSummaryRow = { id: string; label: string } -async function requestMetadataResponse( - client: RpcClient, - method: 'repo.list' | 'ssh.listTargetSummaries' | 'host.platform' -): Promise { +async function settledMetadataReply(send: () => Promise): Promise { try { - return await client.sendRequest(method) + return await send() } catch { // Best-effort: hosts that predate a method still list repos; labels degrade to host ids. return null } } +/** An accepted metadata payload, or null for a refusal or a send that never landed. */ +function acceptedMetadata( + reply: RpcResponse | null, + interpret: (reply: RpcResponse) => RpcAcceptedResult +): unknown { + if (!reply) { + return null + } + const verdict = interpret(reply) + return verdict.accepted ? verdict.value : null +} + function readSshTargets(result: unknown): SshTargetSummaryRow[] { const targets = (result as { targets?: unknown } | null)?.targets if (!Array.isArray(targets)) { @@ -93,15 +108,18 @@ export function useHostRepoMetadata(args: { try { do { fetchRepoMetadataPendingRef.current.delete(requestClient) - const repoResponse = await requestMetadataResponse(requestClient, 'repo.list') - if ( - clientRef.current !== requestClient || - hostId !== requestHostId || - !repoResponse?.ok - ) { + const repoReply = await settledMetadataReply(() => + hostRepoCatalogRead.request(requestClient) + ) + if (clientRef.current !== requestClient || hostId !== requestHostId) { return } - const repoResult = (repoResponse as RpcSuccess).result as { repos: RepoSummary[] } + const repos = repoReply && hostRepoCatalogRead.interpret(repoReply) + if (!repos || !repos.accepted) { + return + } + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + const repoResult = repos.value as { repos: RepoSummary[] } repoMetadataFetchedAtRef.current = Date.now() setCachedRepos(requestHostId, repoResult.repos) setRepoColorsByName( @@ -127,9 +145,9 @@ export function useHostRepoMetadata(args: { const hostIds = new Set(repoResult.repos.map((repo) => getRepoExecutionHostId(repo))) if (hostIds.size > 1) { const [sshTargets, hostSettings, hostPlatform] = await Promise.all([ - requestMetadataResponse(requestClient, 'ssh.listTargetSummaries'), + settledMetadataReply(() => hostSshTargetSummariesRead.request(requestClient)), optionalSettingsRead.request(requestClient).catch(() => null), - requestMetadataResponse(requestClient, 'host.platform') + settledMetadataReply(() => hostPlatformRead.request(requestClient)) ]) if (clientRef.current !== requestClient || hostId !== requestHostId) { return @@ -139,13 +157,17 @@ export function useHostRepoMetadata(args: { : null setHostLabelById( buildHostLabelById({ - sshTargets: readSshTargets(sshTargets?.ok ? sshTargets.result : null), + sshTargets: readSshTargets( + acceptedMetadata(sshTargets, hostSshTargetSummariesRead.interpret) + ), hostSettingOverrides: readHostSettingOverrides( hostSettingsResult?.accepted ? hostSettingsResult.value : undefined ) }) ) - setHostPlatform(readHostPlatform(hostPlatform?.ok ? hostPlatform.result : null)) + setHostPlatform( + readHostPlatform(acceptedMetadata(hostPlatform, hostPlatformRead.interpret)) + ) } } while (fetchRepoMetadataPendingRef.current.has(requestClient)) } catch { diff --git a/mobile/src/host-screen/use-host-view-settings.ts b/mobile/src/host-screen/use-host-view-settings.ts index 877aa5f3c9f..9fb192b76ab 100644 --- a/mobile/src/host-screen/use-host-view-settings.ts +++ b/mobile/src/host-screen/use-host-view-settings.ts @@ -1,6 +1,6 @@ import { useCallback, useEffect, useMemo } from 'react' import type { RpcClient } from '../transport/rpc-client' -import type { ConnectionState, RpcSuccess } from '../transport/types' +import type { ConnectionState } from '../transport/types' import { getMobileWorkspaceLineageGroupKey } from '../worktree/mobile-workspace-lineage' import { WORKSPACE_SORT_OPTIONS as SORT_OPTIONS } from '../worktree/workspace-list-picker-options' import { @@ -12,6 +12,7 @@ import { type WorkspaceViewSettings } from '../worktree/workspace-view-settings' import type { Worktree } from '../worktree/workspace-list-sections' +import { hostViewSettingsRead, hostViewSettingsWrite } from './host-screen-operations' import type { HostScreenState } from './use-host-screen-state' export function useHostViewSettings(args: { @@ -79,7 +80,7 @@ export function useHostViewSettings(args: { if (Object.keys(payload).length === 0) { return } - void client.sendRequest('ui.set', payload).catch(() => { + void hostViewSettingsWrite.request(client, payload).catch(() => { // Best-effort: view settings are a convenience preference. }) }, @@ -94,11 +95,16 @@ export function useHostViewSettings(args: { const requestClient = client const requestHostId = hostId try { - const response = await requestClient.sendRequest('ui.get') - if (clientRef.current !== requestClient || hostId !== requestHostId || !response.ok) { + const reply = await hostViewSettingsRead.request(requestClient) + if (clientRef.current !== requestClient || hostId !== requestHostId) { return } - const ui = ((response as RpcSuccess).result as { ui?: WorkspaceViewSettings }).ui + const settings = hostViewSettingsRead.interpret(reply) + if (!settings.accepted) { + return + } + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + const ui = settings.value as WorkspaceViewSettings | undefined if (!ui) { return } diff --git a/mobile/src/host-screen/use-host-worktree-actions.ts b/mobile/src/host-screen/use-host-worktree-actions.ts index 21f49a4f306..61956476209 100644 --- a/mobile/src/host-screen/use-host-worktree-actions.ts +++ b/mobile/src/host-screen/use-host-worktree-actions.ts @@ -11,6 +11,7 @@ import { setHostRouteNewWorktreeVisible } from '../host-route-action-state' import { leaveHostRoute } from '../host-route-exit' import { getWorktreeRowIdentity, removeWorktreeRow } from '../worktree/worktree-host-row-identity' import { isWorktreePinned, type Worktree } from '../worktree/workspace-list-sections' +import { worktreeActivate, worktreePinWrite, worktreeRemove } from './host-screen-operations' import type { HostScreenState } from './use-host-screen-state' export function useHostWorktreeActions(args: { @@ -101,8 +102,8 @@ export function useHostWorktreeActions(args: { updateLocalPins(worktreeId, newPinned) if (client) { - client - .sendRequest('worktree.set', { + worktreePinWrite + .request(client, { worktree: `id:${worktreeId}`, isPinned: newPinned }) @@ -123,11 +124,11 @@ export function useHostWorktreeActions(args: { setLastKnownWorktrees(removeFromList) try { - const response = await client.sendRequest('worktree.rm', { + const reply = await worktreeRemove.request(client, { worktree: `id:${item.worktreeId}`, force: true }) - if (!response.ok) { + if (!worktreeRemove.interpret(reply).accepted) { setWorktrees((prev) => [...prev, item]) setLastKnownWorktrees((prev) => [...prev, item]) } @@ -176,8 +177,8 @@ export function useHostWorktreeActions(args: { (item: Worktree) => { setOptimisticActiveWorktreeIdentity(getWorktreeRowIdentity(item)) if (client && connState === 'connected') { - void client - .sendRequest('worktree.activate', { + void worktreeActivate + .request(client, { worktree: `id:${item.worktreeId}`, notifyClients: false, navigation: 'caller' diff --git a/mobile/src/tasks/mobile-task-runtime-operations.ts b/mobile/src/tasks/mobile-task-runtime-operations.ts index c69651af666..bf77d496df6 100644 --- a/mobile/src/tasks/mobile-task-runtime-operations.ts +++ b/mobile/src/tasks/mobile-task-runtime-operations.ts @@ -7,8 +7,8 @@ import { // What the Tasks screen reads once per host to hydrate, and the preferences it writes back. /** - * status.get read for task hydration, the first of two policies on this method. A refused status - * stops hydration with the host's own message; the create-time probe in + * status.get read for task hydration, with its own policy on that method: a refused status stops + * hydration with the host's own message, where the create-time probe in * mobile-workspace-create-operations.ts degrades instead. One reader serves both. */ export const taskRuntimeStatusRead = bindDeferredRpcOperation( diff --git a/mobile/src/tasks/mobile-workspace-create-operations.ts b/mobile/src/tasks/mobile-workspace-create-operations.ts index 55cad2f373f..186d04b1498 100644 --- a/mobile/src/tasks/mobile-workspace-create-operations.ts +++ b/mobile/src/tasks/mobile-workspace-create-operations.ts @@ -46,9 +46,9 @@ export const worktreeMrBaseResolve = bindDeferredRpcOperation( ) /** - * status.get read for create-time capabilities, the second of two policies on this method. + * status.get read for create-time capabilities, with its own policy on that method. * - * Both policies named because the two callers disagree about what a refused status means: the + * Separately named because the callers disagree about what a refused status means: the * Tasks screen cannot hydrate without it and surfaces the host's message (`taskRuntimeStatusRead`), * while create-time capability probing degrades to "no capabilities" and creates anyway, so here a * refusal is a skip. One reader serves both — the payload is unchecked in each. diff --git a/mobile/src/test-support/rpc-recording/adapters/file-request-mount-adapters.ts b/mobile/src/test-support/rpc-recording/adapters/file-request-mount-adapters.ts new file mode 100644 index 00000000000..334ecde80ed --- /dev/null +++ b/mobile/src/test-support/rpc-recording/adapters/file-request-mount-adapters.ts @@ -0,0 +1,108 @@ +import type { MountAdapter } from '../recording-scenario' +import type { operationModuleLoader } from '../operation-module-loader' + +const WORKSPACE = 'workspace-1' +/** The artifact a scenario reads; the path decides which of the two artifact methods it asks. */ +function artifactSource(absolutePath: string) { + return { + source: 'terminalArtifact' as const, + worktreeId: WORKSPACE, + absolutePath, + grantId: 'grant-1', + terminalHandle: 'terminal-1', + pathText: absolutePath.slice(absolutePath.lastIndexOf('/') + 1), + cwd: '/logs' + } +} + +const ARTIFACT = artifactSource('/logs/run.txt') + +/** + * The file reads and writes a session file tab runs: ownership capture before a mutation, the + * preview loader with its terminal-artifact grant refresh, the artifact save, and the tab doc's + * three shapes. Each is an exported async function taking a client, so the recorded state is the + * function's own answer and no React host is needed. + */ +export function fileRequestMountAdapters( + modules: ReturnType +): Record { + return { + 'files.mutation-ownership': ({ client }) => { + const capture = modules.load( + 'mobile/src/files/mobile-file-mutation-ownership.ts' + ).captureMobileFileMutationOwnership + let ownership: unknown = 'uncaptured' + return { + action: () => + capture(client, `id:${WORKSPACE}`).then((value: unknown) => { + ownership = value + return value + }), + state: () => ({ ownership }), + dispose: () => {} + } + }, + 'files.preview-load': ({ client, effect }) => { + const load = modules.load( + 'mobile/src/files/mobile-file-preview-request.ts' + ).loadMobileFilePreview + let preview: unknown = 'unloaded' + return { + action(name, args) { + const request = + name === 'worktree' + ? load(client, WORKSPACE, String(args.path ?? 'docs/readme.md')) + : load(client, artifactSource(String(args.path ?? '/logs/run.txt')), undefined, { + onTerminalArtifactSourceRefreshed: (source: unknown) => + effect('artifact-source-refreshed', source) + }) + return request.then((value: unknown) => { + preview = value + return value + }) + }, + state: () => ({ preview }), + dispose: () => {} + } + }, + 'files.preview-save': ({ client, effect }) => { + const save = modules.load( + 'mobile/src/files/mobile-file-preview-request.ts' + ).saveMobileTerminalArtifactPreview + let saved: unknown = 'unsaved' + return { + action: (name) => + save(client, ARTIFACT, 'next', { + onTerminalArtifactSourceRefreshed: (source: unknown) => + effect('artifact-source-refreshed', source), + // The verified arm re-reads the artifact first; the blind arm writes straight away. + ...(name === 'blind' ? {} : { baseContent: 'base' }) + }).then((value: unknown) => { + saved = value + return value + }), + state: () => ({ saved }), + dispose: () => {} + } + }, + 'files.tab-doc': ({ client }) => { + const resolve = modules.load( + 'mobile/src/files/mobile-file-tab-doc.ts' + ).resolveMobileFileTabDoc + const docs: Record = {} + return { + action: (name) => + resolve(client, { + worktreeId: WORKSPACE, + relativePath: name === 'image' ? 'docs/logo.png' : 'docs/readme.md', + ...(name === 'diff' ? { diffSource: 'staged' as const } : {}) + }).then((value: unknown) => { + docs[name] = value + return value + }), + state: () => ({ ...docs }), + dispose: () => {} + } + } + } +} diff --git a/mobile/src/test-support/rpc-recording/adapters/host-screen-mount-adapters.ts b/mobile/src/test-support/rpc-recording/adapters/host-screen-mount-adapters.ts new file mode 100644 index 00000000000..6c10c79aa3f --- /dev/null +++ b/mobile/src/test-support/rpc-recording/adapters/host-screen-mount-adapters.ts @@ -0,0 +1,111 @@ +import type { MountAdapter } from '../recording-scenario' +import { hookMount, performHookAction } from '../hook-mount' +import { observableModel, projectObservable } from '../observable-model' +import type { operationModuleLoader } from '../operation-module-loader' + +const HOST = 'host-1' + +const INITIAL_VIEW_STATE = { + groupMode: 'none', + sortMode: 'recent', + hideSleeping: false, + hideDefaultBranch: false, + alwaysShowDefaultBranch: true, + filterRepoIds: [], + collapsedGroups: [], + workspaceStatuses: [] +} + +/** + * The host screen's shared view settings, and the Home card's per-host stats read. Both belong to + * the host list: one mirrors the desktop's workspace view store, the other fills the card's counts. + */ +export function hostScreenMountAdapters( + modules: ReturnType +): Record { + return { + 'host.view-settings': (context) => { + const useViewSettings = modules.load< + typeof import('../../../host-screen/use-host-view-settings') + >('mobile/src/host-screen/use-host-view-settings.ts').useHostViewSettings + const state = observableModel(context, { + clientRef: { current: context.client }, + collapsedGroups: new Set(), + filters: { + filterRepoIds: new Set(), + hideSleeping: false, + hideDefaultBranch: false, + alwaysShowDefaultBranch: true + }, + groupMode: 'none', + sortMode: 'recent', + viewStateRef: { current: { ...INITIAL_VIEW_STATE } }, + workspaceStatuses: [] + }) + let actions: ReturnType + const hook = hookMount(() => { + actions = useViewSettings({ + client: context.client, + connState: 'connected', + hostId: HOST, + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the recorder supplies only the members the hook reads. + state: state as unknown as Parameters[0]['state'] + }) + }) + return { + action(name) { + if (name === 'mount') { + return hook.mount() + } + if (name === 'sync') { + return actions.syncViewSettingsFromDesktop() + } + if (name === 'sort') { + return performHookAction(() => actions.handleSortChange('name')) + } + if (name === 'hide-sleeping') { + return performHookAction(() => actions.toggleHideSleeping()) + } + throw new Error(`Unknown view settings action: ${name}`) + }, + state: () => + projectObservable({ + groupMode: state.groupMode, + sortMode: state.sortMode, + filters: state.filters, + collapsed: state.collapsedGroups, + statuses: state.workspaceStatuses + }), + dispose: hook.unmount + } + }, + 'home.host-stats': (context) => { + const fetchStats = modules.load( + 'mobile/src/home/mobile-home-host-requests.ts' + ).fetchMobileHomeStats + let stats: Record = {} + let disposed = false + return { + action(name) { + if (name === 'unmount') { + disposed = true + return + } + return fetchStats( + context.client, + HOST, + (update: (value: Record) => Record) => { + stats = update(stats) + context.effect('stats', stats) + }, + () => disposed + ) + }, + state: () => ({ ...stats }), + dispose: () => { + disposed = true + } + } + } + } +} diff --git a/mobile/src/test-support/rpc-recording/adapters/host-worktree-action-mount-adapters.ts b/mobile/src/test-support/rpc-recording/adapters/host-worktree-action-mount-adapters.ts new file mode 100644 index 00000000000..562f642f039 --- /dev/null +++ b/mobile/src/test-support/rpc-recording/adapters/host-worktree-action-mount-adapters.ts @@ -0,0 +1,90 @@ +import type { MountAdapter } from '../recording-scenario' +import { hookMount, performHookAction } from '../hook-mount' +import { observableModel, projectObservable } from '../observable-model' +import type { operationModuleLoader } from '../operation-module-loader' + +const ROW = { + worktreeId: 'wt-1', + repoId: 'repo-1', + repo: 'marlin', + branch: 'feature/pin', + displayName: 'marlin', + path: '/repos/marlin/wt-1', + liveTerminalCount: 0, + hasAttachedPty: false, + preview: '', + unread: false, + isPinned: false, + linkedPR: null +} + +/** + * The host screen's three worktree mutations: pin, delete and open. + * + * Mounted with no hostId, which is the only thing that keeps the hook off native storage: the + * pinned-id write is the sole native call and it sits behind `if (hostId)`. + */ +export function hostWorktreeActionMountAdapters( + modules: ReturnType +): Record { + return { + 'host.worktree-actions': (context) => { + const useActions = modules.load< + typeof import('../../../host-screen/use-host-worktree-actions') + >('mobile/src/host-screen/use-host-worktree-actions.ts').useHostWorktreeActions + const state = observableModel(context, { + newWorktreeModalRef: { current: null }, + newWorktreeModalVisibleRef: { current: false }, + pinnedIds: new Set(), + worktrees: [ROW], + lastKnownWorktrees: [ROW], + confirmRemoveHost: false, + optimisticActiveWorktreeIdentity: null, + routeActionState: {} + }) + let actions: ReturnType + const hook = hookMount(() => { + actions = useActions({ + client: context.client, + connState: 'connected', + embedded: false, + fetchWorktrees: async () => {}, + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the hook only forwards this to host removal, which no scenario drives. + forgetHostClient: (() => {}) as unknown as Parameters< + typeof useActions + >[0]['forgetHostClient'], + hostId: undefined, + pathname: '/h/host-1', + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: navigation is observed through the recorded sends, not the router. + router: { push: () => {}, replace: () => {} } as unknown as Parameters< + typeof useActions + >[0]['router'], + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the recorder supplies only the members the hook reads. + state: state as unknown as Parameters[0]['state'] + }) + }) + return { + action(name) { + if (name === 'mount') { + return hook.mount() + } + if (name === 'toggle-pin') { + return performHookAction(() => actions.togglePin(ROW.worktreeId)) + } + if (name === 'delete') { + return performHookAction(() => actions.handleDeleteWorktree(ROW)) + } + if (name === 'open-session') { + return performHookAction(() => actions.openWorktreeSession(ROW)) + } + throw new Error(`Unknown worktree action: ${name}`) + }, + state: () => + projectObservable( + Object.fromEntries(Object.entries(state).filter(([key]) => !key.endsWith('Ref'))) + ), + dispose: hook.unmount + } + } + } +} diff --git a/mobile/src/test-support/rpc-recording/adapters/mounted-operation-modules.ts b/mobile/src/test-support/rpc-recording/adapters/mounted-operation-modules.ts index 137ee683f8e..516e941eaef 100644 --- a/mobile/src/test-support/rpc-recording/adapters/mounted-operation-modules.ts +++ b/mobile/src/test-support/rpc-recording/adapters/mounted-operation-modules.ts @@ -1,12 +1,17 @@ import { fileInventoryMountAdapters } from './file-inventory-mount-adapters' +import { fileRequestMountAdapters } from './file-request-mount-adapters' +import { hostScreenMountAdapters } from './host-screen-mount-adapters' +import { hostWorktreeActionMountAdapters } from './host-worktree-action-mount-adapters' import { hostedReviewMountAdapters } from './hosted-review-mount-adapters' import { newTabAgentMountAdapters } from './new-tab-agent-mount-adapters' +import { newWorkspaceMountAdapters } from './new-workspace-mount-adapters' import { settingsMountAdapters, settingsMountExposures } from './settings-mount-adapters' import { sourceControlMountAdapters } from './source-control-mount-adapters' import { taskMountAdapters } from './task-mount-adapters' import { taskWorkspaceHookMountAdapters } from './task-workspace-hook-mount-adapters' import { taskWorkspaceSenderMountAdapters } from './task-workspace-sender-mount-adapters' import { workspaceSettingsMounts } from './workspace-settings-mounts' +import { worktreeCatalogMountAdapters } from './worktree-catalog-mount-adapters' import type { MountedOperationModule } from '../mounted-operation-module' /** @@ -16,8 +21,15 @@ import type { MountedOperationModule } from '../mounted-operation-module' */ export const MOUNTED_OPERATION_MODULES: readonly MountedOperationModule[] = [ { source: 'file-inventory-mount-adapters.ts', mounts: fileInventoryMountAdapters }, + { source: 'file-request-mount-adapters.ts', mounts: fileRequestMountAdapters }, + { source: 'host-screen-mount-adapters.ts', mounts: hostScreenMountAdapters }, + { + source: 'host-worktree-action-mount-adapters.ts', + mounts: hostWorktreeActionMountAdapters + }, { source: 'hosted-review-mount-adapters.ts', mounts: hostedReviewMountAdapters }, { source: 'new-tab-agent-mount-adapters.ts', mounts: newTabAgentMountAdapters }, + { source: 'new-workspace-mount-adapters.ts', mounts: newWorkspaceMountAdapters }, { source: 'settings-mount-adapters.ts', mounts: settingsMountAdapters, @@ -33,5 +45,6 @@ export const MOUNTED_OPERATION_MODULES: readonly MountedOperationModule[] = [ source: 'task-workspace-sender-mount-adapters.ts', mounts: taskWorkspaceSenderMountAdapters }, - { source: 'workspace-settings-mounts.ts', mounts: workspaceSettingsMounts } + { source: 'workspace-settings-mounts.ts', mounts: workspaceSettingsMounts }, + { source: 'worktree-catalog-mount-adapters.ts', mounts: worktreeCatalogMountAdapters } ] diff --git a/mobile/src/test-support/rpc-recording/adapters/new-workspace-mount-adapters.ts b/mobile/src/test-support/rpc-recording/adapters/new-workspace-mount-adapters.ts new file mode 100644 index 00000000000..83195fa6c80 --- /dev/null +++ b/mobile/src/test-support/rpc-recording/adapters/new-workspace-mount-adapters.ts @@ -0,0 +1,107 @@ +import type { MountAdapter } from '../recording-scenario' +import { hookMount, performHookAction } from '../hook-mount' +import { projectObservable } from '../observable-model' +import type { operationModuleLoader } from '../operation-module-loader' + +const REPO = { id: 'repo-1', displayName: 'Repo' } + +/** + * The host screen's New Workspace drawer: the SSH/agent execution target, the repo's setup hook, + * and the Codex reset-credit capability probe the account rows gate on. The drawer's own repo list + * is absent because its hook also reads native storage, which no recording may reach. + */ +export function newWorkspaceMountAdapters( + modules: ReturnType +): Record { + // `connectionId` picks the arm the detection effect takes: an SSH repo detects remote agents, + // a repo without a connection detects local ones. + function executionTargetAdapter(connectionId: string | null): MountAdapter { + return ({ client }) => { + const useTarget = modules.load< + typeof import('../../../components/use-new-workspace-execution-target') + >( + 'mobile/src/components/use-new-workspace-execution-target.ts' + ).useNewWorkspaceExecutionTarget + let state: ReturnType + let visible = true + const hook = hookMount(() => { + state = useTarget({ client, connectionId, visible }) + }) + return { + action(name) { + if (name === 'mount' || name === 'remount') { + return hook.mount() + } + if (name === 'unmount') { + return hook.unmount() + } + if (name === 'blur') { + visible = false + return hook.update() + } + if (name === 'connect') { + return performHookAction(() => state.connect()) + } + throw new Error(`Unknown execution target action: ${name}`) + }, + state: () => + projectObservable({ + gate: state?.sshGate, + detected: state?.detectedAgentIds + }), + dispose: hook.unmount + } + } + } + + return { + 'components.execution-target': executionTargetAdapter('ssh-1'), + 'components.execution-target-local': executionTargetAdapter(null), + 'components.setup-script': ({ client }) => { + const useSetup = modules.load< + typeof import('../../../components/use-new-workspace-setup-script') + >('mobile/src/components/use-new-workspace-setup-script.ts').useNewWorkspaceSetupScript + let state: ReturnType + const hook = hookMount(() => { + state = useSetup({ + client, + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: the hook reads only the repo's id. + selectedRepo: REPO as Parameters[0]['selectedRepo'] + }) + }) + return { + action(name) { + if (name === 'mount') { + return hook.mount() + } + throw new Error(`Unknown setup script action: ${name}`) + }, + state: () => + projectObservable({ + command: state?.setupCommand, + source: state?.setupSource, + trust: state?.setupTrust, + runPolicy: state?.setupRunPolicy, + advanced: state?.showAdvanced, + run: state?.runSetup + }), + dispose: hook.unmount + } + }, + 'components.codex-reset-capability': ({ client }) => { + const read = modules.load( + 'mobile/src/components/codex-reset-credit-capability.ts' + ).readCodexResetCreditCapability + let supported: unknown = 'unprobed' + return { + action: () => + read(client).then((value: unknown) => { + supported = value + return value + }), + state: () => ({ supported }), + dispose: () => {} + } + } + } +} diff --git a/mobile/src/test-support/rpc-recording/adapters/worktree-catalog-mount-adapters.ts b/mobile/src/test-support/rpc-recording/adapters/worktree-catalog-mount-adapters.ts new file mode 100644 index 00000000000..41283b2a41d --- /dev/null +++ b/mobile/src/test-support/rpc-recording/adapters/worktree-catalog-mount-adapters.ts @@ -0,0 +1,89 @@ +import type { MountAdapter } from '../recording-scenario' +import { hookMount } from '../hook-mount' +import { projectObservable } from '../observable-model' +import type { operationModuleLoader } from '../operation-module-loader' + +const HOST = 'host-1' +const REPO = 'repo-1' + +/** + * The workspace catalog reads: the Home card's per-host summary, the snapshot client the host + * screen polls with, and the retired-name registry the create sheet asks for per repo. + */ +export function worktreeCatalogMountAdapters( + modules: ReturnType +): Record { + return { + 'worktree.home-catalog': (context) => { + const fetchInfo = modules.load( + 'mobile/src/worktree/home-host-worktree-fetch.ts' + ).fetchHomeHostWorktreeInfo + let info: Record = {} + let disposed = false + return { + action(name) { + if (name === 'unmount') { + disposed = true + return + } + return fetchInfo( + context.client, + HOST, + (update: (value: Record) => Record) => { + info = update(info) + context.effect('info', projectObservable(info)) + }, + () => disposed + ) + }, + state: () => projectObservable(info), + dispose: () => { + disposed = true + } + } + }, + 'worktree.catalog-snapshot': ({ client }) => { + const SnapshotClient = modules.load< + typeof import('../../../worktree/worktree-catalog-snapshot-client') + >('mobile/src/worktree/worktree-catalog-snapshot-client.ts').WorktreeCatalogSnapshotClient + const snapshots = new SnapshotClient() + let fetched: unknown = 'unfetched' + let admitted: unknown = 'unadmitted' + return { + action: () => + snapshots.fetch(client, HOST).then((result) => { + fetched = result + // Admitting is what advances the snapshot token a later poll sends back. + admitted = snapshots.admit(result.kind === 'response' ? result.pending : null) + return result + }), + state: () => projectObservable({ fetched, admitted }), + dispose: () => {} + } + }, + 'worktree.retired-names': ({ client }) => { + const useRetired = modules.load< + typeof import('../../../worktree/use-retired-worktree-names') + >('mobile/src/worktree/use-retired-worktree-names.ts').useRetiredWorktreeNames + let registry: unknown + let refreshKey = 1 + const hook = hookMount(() => { + registry = useRetired(client, REPO, refreshKey) + }) + return { + action(name) { + if (name === 'mount') { + return hook.mount() + } + if (name === 'refresh') { + refreshKey++ + return hook.update() + } + throw new Error(`Unknown retired names action: ${name}`) + }, + state: () => projectObservable({ registry }), + dispose: hook.unmount + } + } + } +} diff --git a/mobile/src/transport/rpc-accepted-result.ts b/mobile/src/transport/rpc-accepted-result.ts new file mode 100644 index 00000000000..a21f2a229e2 --- /dev/null +++ b/mobile/src/transport/rpc-accepted-result.ts @@ -0,0 +1,8 @@ +// Its own module because a consumer that only names this verdict is not an operation +// implementation: importing rpc-operation-contract would pull it into the cast fence's region +// and ban the assertions it legitimately still makes on the raw envelope. + +/** A skip-policy verdict: refusal is distinct from an accepted null/undefined payload. */ +export type RpcAcceptedResult = + | { readonly accepted: false } + | { readonly accepted: true; readonly value: Value } diff --git a/mobile/src/transport/rpc-operation-contract.ts b/mobile/src/transport/rpc-operation-contract.ts index 23bc012319c..2c60546d3b7 100644 --- a/mobile/src/transport/rpc-operation-contract.ts +++ b/mobile/src/transport/rpc-operation-contract.ts @@ -1,6 +1,9 @@ +import type { RpcAcceptedResult } from './rpc-accepted-result' import type { RpcMethodName } from './rpc-params-contract' import type { RpcFailure, RpcResponse, RpcSuccess } from './types' +export type { RpcAcceptedResult } + // An operation descriptor fixes the method, the acceptance policy and the interpretation // barrier at definition time. Per-call freedom over those three is what produced acceptance // drift and settlement-order drift across mobile's RPC call sites, so none of them is a @@ -157,11 +160,6 @@ export type StreamOpenerRpcDefinition< read?: never } -/** Refusal is distinct from an accepted null/undefined payload. */ -export type RpcAcceptedResult = - | { readonly accepted: false } - | { readonly accepted: true; readonly value: Value } - export type RpcReaderAcceptance = | 'require-result-or-throw' | 'object-result-or-null' diff --git a/mobile/src/transport/rpc-operation.ts b/mobile/src/transport/rpc-operation.ts index 97f27143e93..8bdce8ebd88 100644 --- a/mobile/src/transport/rpc-operation.ts +++ b/mobile/src/transport/rpc-operation.ts @@ -248,18 +248,25 @@ export async function interpretAtRpcBarrier< } /** - * Preserves omitted sender arguments as well as explicit undefined. + * Whether a sender may omit the params argument entirely. * - * A params type with no required field may be omitted too, because the raw port always allowed it - * and several hosts' schemas are entirely optional (`preflight.check`). Forcing `{}` there would - * put a new object on the wire where main sent no params at all. + * A params type with no required field may be omitted as well as `void`, because the raw port + * always allowed it and several hosts' schemas are entirely optional (`preflight.check`). Forcing + * `{}` there would put a new object on the wire where main sent no params at all. Shared by both + * send helpers, so single-flight and direct sends cannot disagree about which methods that covers. */ -type RpcSendArguments = +type RpcParamsOmittable = void extends RpcSendParams - ? [params?: RpcSendParams, options?: SendRequestOptions] + ? true : Record extends RpcSendParams - ? [params?: RpcSendParams, options?: SendRequestOptions] - : [params: RpcSendParams, options?: SendRequestOptions] + ? true + : false + +/** Preserves omitted sender arguments as well as explicit undefined. */ +type RpcSendArguments = + RpcParamsOmittable extends true + ? [params?: RpcSendParams, options?: SendRequestOptions] + : [params: RpcSendParams, options?: SendRequestOptions] /** Binds sending and interpretation while preserving the transport promise identity. */ export function bindDeferredRpcOperation< @@ -277,7 +284,7 @@ export function bindDeferredRpcOperation< requestSingleFlight( client: RpcClient, hostId: string, - ...args: void extends RpcSendParams + ...args: RpcParamsOmittable extends true ? [params?: RpcSendParams] : [params: RpcSendParams] ) { diff --git a/mobile/src/transport/unvalidated-rpc-request-port-inventory.ts b/mobile/src/transport/unvalidated-rpc-request-port-inventory.ts index 722c4e58310..6fb2f460611 100644 --- a/mobile/src/transport/unvalidated-rpc-request-port-inventory.ts +++ b/mobile/src/transport/unvalidated-rpc-request-port-inventory.ts @@ -12,6 +12,11 @@ * step-4 migration backlog and shares one reason, stated once here instead of 144 times: * the call site predates the typed contract and still picks its own method string, its own * acceptance rule and its own decoding. Replacing one with an RpcOperation deletes its line. + * + * Where a group below names a blocker, it is a recording blocker, not a migration blocker. + * Pointing a site at an operation is mechanical; the golden recorded against the old code before + * the refactor is the only parity proof this migration has. So a site the recorder cannot mount + * cannot be recorded, and unrecorded sites do not migrate. */ export type UnvalidatedRpcRequestPortEntry = { readonly file: string @@ -60,37 +65,43 @@ export const UNVALIDATED_RPC_REQUEST_PORT_PENDING: readonly UnvalidatedRpcReques { file: 'src/browser/use-mobile-browser-commands.ts', references: 5 }, { file: 'src/browser/use-mobile-browser-request.ts', references: 1 }, - // src/components/ — shared widgets that fetch their own data - { file: 'src/components/codex-reset-credit-capability.ts', references: 2 }, + // src/components/ — shared widgets that fetch their own data. The New Workspace drawer's + // execution target, setup hook, runtime context and Codex capability probe migrated in step 4: + // see new-workspace-operations.ts, codex-reset-credit-capability-operations.ts, and the SSH and + // agent-detection operations in tasks/mobile-workspace-source-operations.ts. Two remain, neither + // recordable. codex-reset-credit.ts loads under the module loader; its attempt-journal access + // throws on async-storage at call time, before the send, and nothing guards it away. The repo + // list fails one module further out: it renders use-last-visited-worktree-repo.ts, whose default + // import of async-storage is a property read the loader's proxy refuses. { file: 'src/components/codex-reset-credit.ts', references: 3 }, - { file: 'src/components/use-new-workspace-execution-target.ts', references: 4 }, { file: 'src/components/use-new-workspace-repositories.ts', references: 1 }, - { file: 'src/components/use-new-workspace-runtime-context.ts', references: 3 }, - { file: 'src/components/use-new-workspace-setup-script.ts', references: 1 }, // src/dictation/ — dictation session control { file: 'src/dictation/mobile-dictation-setup.ts', references: 10 }, - // src/files/ — file read, write and preview - { file: 'src/files/mobile-file-mutation-ownership.ts', references: 3 }, - { file: 'src/files/mobile-file-preview-request.ts', references: 6 }, - { file: 'src/files/mobile-file-tab-doc.ts', references: 4 }, - { file: 'src/files/mobile-terminal-artifact-grant-refresh.ts', references: 2 }, + // src/files/ — file read, write and preview. The preview loader, the terminal-artifact grant + // refresh and save, the session file tab and the mutation-ownership capture migrated in step 4: + // see mobile-file-preview-operations.ts, mobile-file-tab-doc-operations.ts and + // mobile-file-ownership-operations.ts. The explorer panel's two sends sit inline in a React + // Native screen, which the recorder cannot mount and so cannot record. { file: 'src/files/MobileFileExplorerPanel.tsx', references: 2 }, - // src/home/ — home screen host reads - { file: 'src/home/mobile-home-host-requests.ts', references: 5 }, + // src/home/ — home screen host reads. The stats card and both task-provider probes migrated in + // step 4 (mobile-home-host-operations.ts, plus the shared task-tooling reads in + // tasks/mobile-task-runtime-operations.ts). The accounts read stays: its decoder is re-exported + // through a React Native screen module, which no recording can load. + { file: 'src/home/mobile-home-host-requests.ts', references: 2 }, // src/hooks/ — cross-screen data hooks { file: 'src/hooks/mobile-dictation-audio-chunk.ts', references: 1 }, { file: 'src/hooks/mobile-dictation-desktop-start.ts', references: 4 }, { file: 'src/hooks/use-mobile-dictation.ts', references: 4 }, - // src/host-screen/ — host screen catalog and actions + // src/host-screen/ — host screen catalog and actions. The repo and label metadata reads, the + // desktop view-settings mirror and the list's pin, remove and activate mutations migrated in + // step 4; see host-screen-operations.ts. What is left sends from inside a React Native screen, + // which the recorder cannot mount. { file: 'src/host-screen/host-screen-overlays.tsx', references: 1 }, - { file: 'src/host-screen/use-host-repo-metadata.ts', references: 1 }, - { file: 'src/host-screen/use-host-view-settings.ts', references: 2 }, - { file: 'src/host-screen/use-host-worktree-actions.ts', references: 3 }, // src/notifications/ — push registration and delivery { file: 'src/notifications/mobile-notifications.ts', references: 1 }, @@ -146,7 +157,8 @@ export const UNVALIDATED_RPC_REQUEST_PORT_PENDING: readonly UnvalidatedRpcReques { file: 'src/session/use-mobile-terminal-paste.ts', references: 1 }, { file: 'src/session/use-quick-commands.ts', references: 2 }, - // src/settings/ — settings screen actions + // src/settings/ — settings screen actions. Its one reference is the client parameter it forwards + // to dictation/mobile-dictation-setup.ts, so it can only drop when that file migrates. { file: 'src/settings/native-voice-settings-operations.ts', references: 1 }, // src/settings/ — notification display probe @@ -210,10 +222,5 @@ export const UNVALIDATED_RPC_REQUEST_PORT_PENDING: readonly UnvalidatedRpcReques { file: 'src/transport/pairing-candidate-race.ts', references: 1 }, { file: 'src/transport/pairing-relay-candidate.ts', references: 4 }, { file: 'src/transport/pre-profile-pairing-coordinator.ts', references: 2 }, - { file: 'src/transport/runtime-capability-probe.ts', references: 2 }, - - // src/worktree/ — worktree activation and resume - { file: 'src/worktree/home-host-worktree-fetch.ts', references: 2 }, - { file: 'src/worktree/use-retired-worktree-names.ts', references: 1 }, - { file: 'src/worktree/worktree-catalog-snapshot-client.ts', references: 1 } + { file: 'src/transport/runtime-capability-probe.ts', references: 2 } ] diff --git a/mobile/src/worktree/home-host-worktree-fetch.ts b/mobile/src/worktree/home-host-worktree-fetch.ts index 72b9e572ba1..5e119518a7d 100644 --- a/mobile/src/worktree/home-host-worktree-fetch.ts +++ b/mobile/src/worktree/home-host-worktree-fetch.ts @@ -1,5 +1,4 @@ import { setCachedWorktrees } from '../cache/worktree-cache' -import { sendSingleFlightRequest } from '../transport/request-single-flight' import type { RpcClient } from '../transport/rpc-client' import { isLogicalClientCutoverError } from '../transport/stable-logical-rpc-client' import { @@ -8,6 +7,7 @@ import { type HostWorktreeInfo } from './home-worktree-info' import { pickResumeWorktree } from './resume-worktree' +import { worktreeCatalogRead } from './worktree-catalog-operations' import { WORKTREE_PS_FULL_LIMIT } from './worktree-catalog-snapshot-client' const ACTIVE_STATUSES = new Set(['working', 'active', 'permission']) @@ -36,16 +36,19 @@ export function fetchHomeHostWorktreeInfo( } const attempt = (cutoverRetriesLeft: number): Promise => - sendSingleFlightRequest(client, hostId, 'worktree.ps', { limit: WORKTREE_PS_FULL_LIMIT }) - .then((response) => { + worktreeCatalogRead + .requestSingleFlight(client, hostId, { limit: WORKTREE_PS_FULL_LIMIT }) + .then((reply) => { if (disposed()) { return } - if (!response.ok) { + const catalog = worktreeCatalogRead.interpret(reply) + if (!catalog.accepted) { markUnavailable() return } - const result = response.result as { worktrees?: HomeWorktreeSummary[] } + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: Preserve the established response shape at this boundary. + const result = catalog.value as { worktrees?: HomeWorktreeSummary[] } const worktrees = result.worktrees ?? [] setCachedWorktrees(hostId, worktrees, { proven: true }) const active = worktrees.filter((w) => w.status && ACTIVE_STATUSES.has(w.status)) diff --git a/mobile/src/worktree/mobile-worktree-activation-source.test.ts b/mobile/src/worktree/mobile-worktree-activation-source.test.ts index 6d6497de67f..d7eaddfacfd 100644 --- a/mobile/src/worktree/mobile-worktree-activation-source.test.ts +++ b/mobile/src/worktree/mobile-worktree-activation-source.test.ts @@ -5,7 +5,6 @@ const source = readFileSync( new URL('../host-screen/use-host-worktree-actions.ts', import.meta.url), 'utf8' ) - function sliceBetween(startPattern: string, endPattern: string): string { const start = source.indexOf(startPattern) expect(start).toBeGreaterThanOrEqual(0) @@ -21,8 +20,10 @@ describe('mobile worktree activation', () => { 'const openFloatingWorkspace = useCallback' ) - expect(openSession).toContain("sendRequest('worktree.activate'") + expect(openSession).toContain('worktreeActivate') expect(openSession).toContain('notifyClients: false') expect(openSession).toContain("navigation: 'caller'") + // The method is no longer in this file: tsc pins the params to worktreeActivate's shape and + // the host-worktree-actions-pin-open-delete golden pins the bytes. }) }) diff --git a/mobile/src/worktree/use-retired-worktree-names.test.tsx b/mobile/src/worktree/use-retired-worktree-names.test.tsx index 660b2f018d9..848353e8592 100644 --- a/mobile/src/worktree/use-retired-worktree-names.test.tsx +++ b/mobile/src/worktree/use-retired-worktree-names.test.tsx @@ -55,7 +55,12 @@ function mountNames() { retiredNameTiersByRepo: Record = {} ) { await act(async () => { - pending[index]!.resolve({ result: { retiredNamesByRepo, retiredNameTiersByRepo } }) + // `ok` is what the host always sends and what the read's acceptance policy routes on; + // a reply without it read as a refusal, which is not a shape any host produces. + pending[index]!.resolve({ + ok: true, + result: { retiredNamesByRepo, retiredNameTiersByRepo } + }) await Promise.resolve() }) }, diff --git a/mobile/src/worktree/use-retired-worktree-names.ts b/mobile/src/worktree/use-retired-worktree-names.ts index 3158110f82c..5da29f4cb26 100644 --- a/mobile/src/worktree/use-retired-worktree-names.ts +++ b/mobile/src/worktree/use-retired-worktree-names.ts @@ -7,6 +7,7 @@ import { } from '../../../src/shared/worktree/retired-name-cache' import type { RetiredNameRegistry } from '../../../src/shared/worktree/retired-name-registry' import type { RpcClient } from '../transport/rpc-client' +import { retiredWorktreeNamesRead } from './worktree-catalog-operations' export function buildRetiredWorktreeNamesRefreshKey( existingWorktreePaths: readonly string[] | undefined @@ -42,13 +43,16 @@ export function useRetiredWorktreeNames( setLoaded((previous) => retiredNamesAfterRefresh(previous, activeRepoId, registry)) } } - void client - .sendRequest('worktree.listRetiredNames', { repo: `id:${activeRepoId}` }) - .then((response) => + void retiredWorktreeNamesRead + .request(client, { repo: `id:${activeRepoId}` }) + .then((reply) => { + const names = retiredWorktreeNamesRead.interpret(reply) + // A refusal is not a failure here: it settles as an empty registry, which un-retires the + // repo's names until the next refresh. Preserved from main, not repaired. settle( - readRetiredNameRegistryForRepo((response as { result?: unknown }).result, activeRepoId) + readRetiredNameRegistryForRepo(names.accepted ? names.value : undefined, activeRepoId) ) - ) + }) .catch(() => settle(null)) return () => { cancelled = true diff --git a/mobile/src/worktree/worktree-catalog-operations.ts b/mobile/src/worktree/worktree-catalog-operations.ts new file mode 100644 index 00000000000..067f5ef3773 --- /dev/null +++ b/mobile/src/worktree/worktree-catalog-operations.ts @@ -0,0 +1,35 @@ +import { bindDeferredRpcOperation, defineRpcOperation } from '../transport/rpc-operation' +import { rpcUncheckedPayloadReader } from '../transport/rpc-reader-payload' + +// The two workspace-catalog reads, both best-effort: a refused catalog leaves the last proven +// counts and the last confirmed rows in place rather than rendering a host as empty (STA-3123). + +/** + * worktree.ps. One family for both readers — the Home card's summary and the host screen's + * snapshot poll — because they ask the same question with the same acceptance. The payload stays + * unchecked: the snapshot client admits an `unchanged` envelope the card never sees. + */ +export const worktreeCatalogRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'worktree.catalog-or-skip', + method: 'worktree.ps', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('worktree-catalog') + }) +) + +/** + * Names already spent in one repo. The payload is unchecked because the call site projects it + * through `readRetiredNameRegistryForRepo`, which reads a refusal as an empty registry — the + * behaviour a skip preserves, and not the same thing as the failure a rejection means here. + */ +export const retiredWorktreeNamesRead = bindDeferredRpcOperation( + defineRpcOperation({ + name: 'worktree.retired-names-or-skip', + method: 'worktree.listRetiredNames', + acceptance: 'success-result-or-skip', + barrier: 'after-caller-barrier', + read: rpcUncheckedPayloadReader('retired-names') + }) +) diff --git a/mobile/src/worktree/worktree-catalog-snapshot-client.ts b/mobile/src/worktree/worktree-catalog-snapshot-client.ts index 9e804c39b34..13de6453a6d 100644 --- a/mobile/src/worktree/worktree-catalog-snapshot-client.ts +++ b/mobile/src/worktree/worktree-catalog-snapshot-client.ts @@ -1,6 +1,7 @@ import type { RpcClient } from '../transport/rpc-client' -import type { RpcFailure, RpcSuccess } from '../transport/types' +import type { RpcFailure } from '../transport/types' import type { Worktree } from './workspace-list-sections' +import { worktreeCatalogRead } from './worktree-catalog-operations' // Why: worktree.ps silently truncates at 200; use a high cap so large hosts don't drop workspaces. export const WORKTREE_PS_FULL_LIMIT = 10_000 @@ -71,12 +72,15 @@ export class WorktreeCatalogSnapshotClient { this.confirmedWorktrees = null } const requestedSnapshotId = this.snapshotId - const response = await client.sendRequest('worktree.ps', { + const reply = await worktreeCatalogRead.request(client, { limit: WORKTREE_PS_FULL_LIMIT, afterSnapshotId: requestedSnapshotId }) - if (!response.ok) { - const code = (response as RpcFailure).error?.code + const catalog = worktreeCatalogRead.interpret(reply) + if (!catalog.accepted) { + // The refusal code the caller reports lives on the envelope; no acceptance policy carries it. + // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: this policy skips only a refusal, so an unaccepted reply is a failure envelope. + const code = (reply as RpcFailure).error?.code return { kind: 'request_failed', code: typeof code === 'string' && code.length > 0 ? code : 'request_failed' @@ -85,10 +89,7 @@ export class WorktreeCatalogSnapshotClient { return { kind: 'response', pending: { - admission: admitWorktreeCatalogResponse( - (response as RpcSuccess).result, - requestedSnapshotId - ), + admission: admitWorktreeCatalogResponse(catalog.value, requestedSnapshotId), client, hostId }